]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/java/ChangeLog
move many gc hashtab to hash_table
[thirdparty/gcc.git] / gcc / java / ChangeLog
CommitLineData
2a22f99c
TS
12014-10-12 Trevor Saunders <tsaunders@mozilla.com>
2
3 * class.c, decl.c, except.c, expr.c, java-tree.h, lang.c: Use
4 hash_table instead of hashtab.
5
59b41b69
MP
62014-10-07 Marek Polacek <polacek@redhat.com>
7
8 * jvgenmain.c (main): Provide declarations for JvRunMain{,Name}.
9
676c36d8
MW
102014-07-08 Mark Wielaard <mjw@redhat.com>
11
12 * builtins.c (putVolatile_builtin): Use build_qualified_type
13 instead of build_type_variant.
14 (getVolatile_builtin): Likewise.
15 (build_classdollar_field): Likewise.
16
c203e8a7
TS
172014-06-24 Trevor Saunders <tsaunders@mozilla.com>
18
19 * jcf-io.c: Adjust.
20
f961457f
JH
212014-06-11 Jan Hubicka <hubicka@ucw.cz>
22
23 * java/class.c (build_utf8_ref): Update handling for section names
24 that are no longer trees.
25 (emit_register_classes_in_jcr_section): Update.
26
24d047a3
JH
272014-06-07 Jan Hubicka <hubicka@ucw.cz>
28
29 * class.c (build_utf8_ref): Use set_decl_section_name.
30 (emit_register_classes_in_jcr_section): Likewise.
31 (emit_register_classes_in_jcr_section): Likewise.
32
766090c2
TS
332014-05-17 Trevor Saunders <tsaunders@mozilla.com>
34
35 * class.c (add_method_1): Adjust.
36 (java_treetreehash_new): Likewise.
37 * constants.c (set_constant_entry): Likewise.
38 (cpool_for_class): Likewise.
39 * decl.c (make_binding_level): Likewise.
40 (java_dup_lang_specific_decl): Likewise.
41 * expr.c (add_type_assertion): Likewise.
42 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
43 (lang_decl): don't use variable_size gty attribute.
44 (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Adjust.
45 (lang_type): Don't use variable_size gty attribute.
46 * jcf-parse.c (java_parse_file): Adjust.
47 (process_zip_dir): Likewise.
48 * jcf.h: Remove usage of variable_size gty attribute.
49 * jcf-reader.c (jcf_parse_constant_pool): Adjust.
50 (jcf_parse_bootstrap_methods): Likewise.
51
231120e5
TS
522014-05-17 Trevor Saunders <tsaunders@mozilla.com>
53
54 * constants.c (set_constant_entry): Adjust.
55
ebe9df67
RS
562014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
57
58 * boehm.c (mark_reference_fields): Don't update the mask when
59 setting pointer_after_end.
60
1d60af08
KZ
612014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
62 Mike Stump <mikestump@comcast.net>
63 Richard Sandiford <rdsandiford@googlemail.com>
64
65 * boehm.c: Include wide-int.h.
66 (mark_reference_fields): Use a wide_int mask.
67 (get_boehm_type_descriptor): Use wide-int interfaces.
68 * expr.c: Include wide-int.h.
69 (build_newarray): Remove bogus "== INTEGER_CST".
70 (expand_java_pushc): Use real_from_integer.
71 (build_field_ref): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
72 * jcf-parse.c: Include wide-int.h.
73 (get_constant): Use wide-int interfaces.
74
23a5b65a
RS
752014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
76
77 Update copyright years
78
98db73df 792014-01-02 Tobias Burnus <burnus@net-b.de>
9f8e43c0
JJ
80
81 * jcf-dump.c (version): Update copyright notice dates.
98db73df 82 * gcj.texi: Bump @copying's copyright year.
0ffc0b3b
JJ
83
842013-12-19 Jakub Jelinek <jakub@redhat.com>
85
86 PR other/59545
87 * class.c (hashUtf8String): Compute hash in unsigned type.
88 * javaop.h (WORD_TO_INT): Avoid signed integer overflow.
89
902013-11-22 Andrew MacLeod <amacleod@redhat.com>
91
92 * java-gimplify.c: Add required include files from gimple.h.
93
942013-11-22 David Malcolm <dmalcolm@redhat.com>
95
96 * class.c (maybe_layout_super_class): Update comment.
97 * decl.c (java_add_stmt): Remove use of input_filename macro.
98 * jcf-parse.c (set_source_filename): Remove use of
99 input_filename macro.
100 (parse_class_file): Remove use of input_line and input_filename
101 macros.
102 (java_parse_file): Remove use of input_filename macro.
103
1042013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
105
106 * class.c, expr.c: Replace tree_low_cst (..., 0) with tree_to_shwi
107 throughout.
108
1092013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
110
111 * class.c, expr.c: Replace host_integerp (..., 0) with
112 tree_fits_shwi_p throughout.
113
1142013-11-14 Andrew MacLeod <amacleod@redhat.com>
115
116 * java-gimplify.c: Include only gimplify.h and gimple.h as needed.
117
1182013-11-14 Diego Novillo <dnovillo@google.com>
119
120 * builtins.c: Include stor-layout.h.
121 Include stringpool.h.
122 * class.c: Include stringpool.h.
123 Include stor-layout.h.
124 Include varasm.h.
125 * constants.c: Include stringpool.h.
126 Include stor-layout.h.
127 * decl.c: Include stor-layout.h.
128 Include stringpool.h.
129 Include varasm.h.
130 * except.c: Include stringpool.h.
131 Include stor-layout.h.
132 * expr.c: Include stringpool.h.
133 Include stor-layout.h.
134 * jcf-parse.c: Include stringpool.h.
135 * mangle.c: Include stringpool.h.
136 * resource.c: Include stringpool.h.
137 Include stor-layout.h.
138 * typeck.c: Include stor-layout.h.
139 Include stringpool.h.
140 * verify-glue.c: Include stringpool.h.
141
1422013-11-12 Andrew MacLeod <amacleod@redhat.com>
143
144 * java-gimplify.c: Include gimplify.h.
145
1462013-11-07 Jeff Law <law@redhat.com>
147
148 * builtins.c (initialize_builtins): Provide __builtin_trap.
149
1502013-10-29 David Malcolm <dmalcolm@redhat.com>
151
152 Patch autogenerated by refactor_symtab.py from
153 https://github.com/davidmalcolm/gcc-refactoring-scripts
154 revision 58bb219cc090b2f4516a9297d868c245495ee622
155
156 * decl.c (java_mark_decl_local): Update for conversion of symtab types
157 to a true class hierarchy.
158
1592013-10-14 David Malcolm <dmalcolm@redhat.com>
160
161 * lang.c (java_handle_option): Update for introduction of
162 gcc::dump_manager.
163
1642013-09-25 Tom Tromey <tromey@redhat.com>
165
166 * Make-lang.in (jvspec.o): Remove.
167 (CFLAGS-java/jvspec.o): New variable.
168 ($(XGCJ)$(exeext), java_OBJS): Use java/jvspec.o
169 (java/jvspec.o-warn): Rename from jvspec.o-warn.
170 (JAVA_TREE_H, java/jcf-dump.o, java/boehm.o, java/builtins.o)
171 (java/class.o, java/constants.o, java/decl.o, java/except.o)
172 (java/expr.o, java/jcf-depend.o, java/jcf-parse.o)
173 (java/jvgenmain.o, java/lang.o, java/mangle.o, java/mangle_name.o)
174 (java/resource.o java/typeck.o, java/win32-host.o)
175 (java/verify-glue.o, java/verify-impl.o, java/zextract.o)
176 (java/java-gimplify.o, java/jcf-io.o, java/jcf-path.o): Remove.
177
1782013-09-25 Tom Tromey <tromey@redhat.com>
179
180 * Make-lang.in (jvspec.o): Don't use subshell.
181
1822013-06-05 Jan Hubicka <jh@suse.cz>
183
184 * class.c (emit_register_classes_in_jcr_section): Use DECL_PRESERVE_P
185 instead of mark_decl_referenced.
186
1872013-05-29 Jan Hubicka <jh@suse.cz>
188
189 * decl.c (java_mark_decl_local): Update for new symtab flags.
190
1912013-05-22 Matthias Klose <doko@ubuntu.com>
192
193 * jvspec.c (jvgenmain_spec): Add %I to cc1 call.
194
1952013-05-16 Jason Merrill <jason@redhat.com>
196
197 * Make-lang.in (jc1$(exeext)): Use link mutex.
198
1992013-05-06 Jakub Jelinek <jakub@redhat.com>
200
201 PR libgcj/57074
202 * class.c (emit_symbol_table): Use array type of the
203 right size for the_syms_decl and its DECL_INITIAL, instead
204 of symbols_array_type. Set TREE_TYPE (the_syms_decl) to it.
205 (emit_assertion_table): Use array type of the right size
206 for table_decl and its DECL_INITIAL.
207
2082013-04-15 Gerald Pfeifer <gerald@pfeifer.com>
209
210 * gcj.texi (Configure-time Options): Refer to GCC, not gcc.
211 (Resources): Adjust reference to Mauve.
212 Remove link to java.sun.com.
213 Refer to GCC, not gcc.
214
2152013-04-09 Richard Biener <rguenther@suse.de>
216
217 * expr.c (build_java_binop): Pass a type to build_int_cst.
218
2192013-03-22 Kai Tietz <ktietz@redhat.com>
220
221 * lang.c (put_decl_node): Don't iterate over end_params_node.
222
2232013-01-03 Jakub Jelinek <jakub@redhat.com>
224
225 * jcf-dump.c (version): Update copyright notice dates.
226
2272012-11-16 Diego Novillo <dnovillo@google.com>
228
229 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
230
231 * boehm.c: Use new vec API in vec.h.
232 * class.c: Likewise.
233 * constants.c: Likewise.
234 * decl.c: Likewise.
235 * expr.c: Likewise.
236 * java-tree.h: Likewise.
237 * jcf-parse.c: Likewise.
238 * resource.c: Likewise.
239 * verify-glue.c: Likewise.
240
2412012-11-15 Jan Hubicka <jh@suse.cz>
242
243 * builtins.c (define_builtin): Accept ECF flags and
244 use set_call_expr_flags.
245 (initialize_builtins): Update.
246
2472012-10-01 Lawrence Crowl <crowl@google.com>
248
249 * Make-lang.in (JAVA_OBJS): Add dependence on hash-table.o.
250 (JCFDUMP_OBJS): Add dependence on hash-table.o.
251 (jcf-io.o): Add dependence on hash-table.h.
252 * jcf-io.c (memoized_class_lookups): Change to use type-safe hash table.
253
2542012-09-24 Lawrence Crowl <crowl@google.com>
255
256 * decl.c (java_init_decl_processing): Change to new double_int API.
257 * jcf-parse.c (get_constant): Likewise.
258 * boehm.c (mark_reference_fields): Likewise.
259 (get_boehm_type_descriptor): Likewise.
260
2612012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
262
263 * jcf.h (CPool): Use the "atomic" GTY option for the tags field.
264 (bootstrap_method): Likewise for the bootstrap_arguments field.
265
2662012-07-16 Steven Bosscher <steven@gcc.gnu.org>
267
268 * java-gimplify.c: Include dumpfile.h instead of tree-dump.h
269 * Make-lang.in: Fix dependencies.
270
2712012-07-11 Steven Bosscher <steven@gcc.gnu.org>
272
273 * java-tree.h (force_evaluation_order): Remove prototype.
274 * expr.c (force_evaluation_order): Remove unused function.
275
2762012-07-11 Steven Bosscher <steven@gcc.gnu.org>
277
278 * decl.c: Do not include libfuncs.h.
279 * class.c: Do not include defaults.h.
280 * jvgenmain.c: Likewise.
281 * magnle.c: Likewise.
282 * Make-lang.in (decl.o): Fix dependencies.
283
2842012-07-08 Steven Bosscher <steven@gcc.gnu.org>
285
286 * verify.h: Do not include system.h and coretypes.h here.
287 * verify-impl.c: Include them here instead.
288
2892012-07-05 Uros Bizjak <ubizjak@gmail.com>
290
291 * jcf-io.c (read_zip_member): Initialize d_stream.
292
2932012-05-31 Steven Bosscher <steven@gcc.gnu.org>
294
295 * resource.c: Do not include output.h.
296
2972012-05-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
298
299 PR java/52815
300 * class.c (emit_register_classes_in_jcr_section): Revise placement
301 of #ifdef JCR_SECTION_NAME.
302
3032012-04-22 Jan Hubicka <jh@suse.cz>
304
305 * class.c (build_utf8_ref): Do not mark varpool node as needed.
306
3072012-04-20 Jan Hubicka <jh@suse.cz>
308
309 * class.c (make_local_function_alias): Do not mark symbol referenced.
310
3112012-04-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
312
313 * jcf-dump.c (print_constant): Cast JPOOL_USHORT2, JPOOL_USHORT1
314 results to long to match formats.
315
3162012-04-11 Andrew Haley <aph@redhat.com>
317
318 * jcf-reader.c (jcf_parse_bootstrap_methods): Add
319 ATTRIBUTE_UNUSED.
320
3212012-04-11 Andrew Haley <aph@redhat.com>
322
323 * jcf.h (bootstrap_method): New.
324 (BootstrapMethods): New.
325 (JCF): Add BootstrapMethods.
326 (enum cpool_tag): Add MethodHandle, MethodType, and InvokeDynamic.
327 * jcf-reader.c (jcf_parse_bootstrap_methods): New.
328 (jcf_parse_constant_pool): Handlers for MethodHandle, MethodType,
329 and InvokeDynamic.
330 (jcf_parse_bootstrap_methods): New.
331 * javaop.def (invokedynamic): New opcode.
332 * jcf-parse.c (get_constant): An unknown constant type should not
333 be an internal error, but a fatal one. Make it so.
334 * jcf-dump.c (HANDLE_BOOTSTRAP_METHODS_ATTRIBUTE): New.
335 (HANDLE_END_BOOTSTRAP_METHODS): New.
336 (print_constant): Handlers for MethodHandle, MethodType, and
337 InvokeDynamic.
338
3392012-04-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
340
341 * class.c (emit_register_classes_in_jcr_section): Set DECL_USER_ALIGN.
342 Clear TREE_READONLY.
343
3442012-03-29 Steven Bosscher <steven@gcc.gnu.org>
345
346 PR java/52730
347 * class.c (emit_register_classes_in_jcr_section): New function.
348 (emit_Jv_RegisterClass_calls): New function, split out from ...
349 (emit_register_classes): ... here. Reorganize. Do not call
350 output_constant.
351
3522012-01-23 Andreas Schwab <schwab@linux-m68k.org>
353
354 * lang.c (java_init_options_struct): Set
355 frontend_set_flag_trapping_math.
356
3572012-01-01 Jakub Jelinek <jakub@redhat.com>
358
359 * jcf-dump.c (version): Update copyright notice dates.
360
3612011-12-03 Matthias Klose <doko@ubuntu.com>
362
363 * expr.c (SPECIAL_WIDE): Fix typo in message.
364
3652011-11-23 Jeffrey A Law (law@cygnus.com)
366
367 * lang.c (java_init_options_struct): Disable optimizations
368 which assume a NULL pointer dereference will cause a fault.
369
3702011-11-07 Richard Henderson <rth@redhat.com>
371
372 * builtins.c (compareAndSwapInt_builtin): Use can_compare_and_swap_p.
373 (compareAndSwapLong_builtin): Likewise.
374 (compareAndSwapObject_builtin): Likewise.
375 (VMSupportsCS8_builtin): Likewise.
376
3772011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
378
379 * Make-lang.in (jvspec.o): Pass SHLIB instead of SHLIB_LINK.
380
3812011-10-15 Tom Tromey <tromey@redhat.com>
382 Dodji Seketeli <dodji@redhat.com>
383
384 * jcf-parse.c (set_source_filename): Adjust to the new map API.
385
3862011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
387
388 * class.c (build_static_field_ref): Delete old interface with two
389 parallel arrays to hold standard builtin declarations, and replace
390 it with a function based interface that can support creating
391 builtins on the fly in the future. Change all uses, and poison
392 the old names. Make sure 0 is not a legitimate builtin index.
393 * decl.c (java_init_decl_processing): Ditto.
394 * except.c (compareAndSwapLong_builtin): Ditto.
395 (compareAndSwapObject_builtin): Ditto.
396 (putVolatile_builtin): Ditto.
397 (define_builtin): Ditto.
398 (check_for_builtin): Ditto.
399 * expr.c (rewrite_arglist_getcaller): Ditto.
400 (expand_java_field_op): Ditto.
401
4022011-08-24 Joseph Myers <joseph@codesourcery.com>
403
404 * Make-lang.in (CFLAGS-java/jcf-io.o, CFLAGS-java/jcf-path.o):
405 New.
406 (java/jcf-io.o, java/jcf-path.o): Remove explicit compilation
407 rules.
408
4092011-08-18 Peter Collingbourne <peter@pcc.me.uk>
410
411 * expr.c (expand_invoke) Use the type of the method rewrite
412 target.
413
4142011-08-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
415
416 * jcf-dump.c (print_constant): Cast first frexp arg.
417
4182011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
419
420 * Make-lang.in ($(XGCJ)$(exeext)): Add $(EXTRA_GCC_LIBS).
421
4222011-07-19 Richard Guenther <rguenther@suse.de>
423
424 * builtins.c (static): Use fold_build_pointer_plus.
425 * class.c (make_class_data): Likewise.
426 (build_symbol_entry): Likewise.
427 * except.c (build_exception_object_ref): Likewise.
428 * expr.c (build_java_arrayaccess): Likewise.
429 (build_field_ref): Likewise.
430 (build_known_method_ref): Likewise.
431 (build_invokevirtual): Likewise.
432
4332011-07-06 Richard Guenther <rguenther@suse.de>
434
435 * decl.c (java_init_decl_processing):
436 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
437
4382011-06-21 Andrew MacLeod <amacleod@redhat.com>
439
440 * builtins.c: Add sync_ or SYNC__ to builtin names.
441 * expr.c: Add sync_ or SYNC__ to builtin names.
442
4432011-06-07 Richard Guenther <rguenther@suse.de>
444
445 * decl.c (java_init_decl_processing): Call build_common_nodes,
446 build_common_nodes_2 at the beginning. Remove then duplicate
447 initializations.
448
4492011-06-07 Richard Guenther <rguenther@suse.de>
450
451 * decl.c (java_init_decl_processing): Properly initialize
452 size_type_node.
453
4542011-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
455
456 PR middle-end/46500
457 * expr.c: Include "tm.h" .
458
4592011-05-26 Nathan Froyd <froydnj@codesourcery.com>
460
461 * decl.c (poplevel): Don't access TREE_TYPE of BLOCKs.
462 * expr.c (build_jni_stub): Likewise.
463
4642011-05-24 Joseph Myers <joseph@codesourcery.com>
465
466 * Make-lang.in ($(XGCJ)$(exeext)): Use libcommon-target.a instead
467 of prefix.o.
468
4692011-05-20 Joseph Myers <joseph@codesourcery.com>
470
471 * Make-lang.in ($(XGCJ)$(exeext)): Don't explicitly use intl.o and
472 version.o.
473 (JCFDUMP_OBJS): Remove errors.o, version.o and intl.o.
474 (JVGENMAIN_OBJS): Remove errors.o and intl.o.
475 (java/jcf-dump.o, java/jvgenmain.o): Depend in $(DIAGNOSTIC_H).
476 * jcf-dump.c: Include diagnostic.h.
477 (main): Initialize diagnostics.
478 * jvgenmain.c: Include diagnostic.h.
479 (main): Initialize diagnostics.
480
4812011-05-11 Nathan Froyd <froydnj@codesourcery.com>
482
483 * java-tree.h (TYPE_ARGUMENT_SIGNATURE): Use TYPE_MINVAL.
484
4852011-05-07 Eric Botcazou <ebotcazou@adacore.com>
486
487 * java-tree.h (global_bindings_p): Adjust prototype.
488 * decl.c (global_bindings_p): Return bool.
489
4902011-05-05 Nathan Froyd <froydnj@codesourcery.com>
491
492 * expr.c (expand_java_switch): Call build_case_label.
493 (expand_java_add_case): Likewise.
494
4952011-04-29 Richard Guenther <rguenther@suse.de>
496
497 PR middle-end/48819
498 * constants.c (build_constants_constructor): Use ptr_type_node for
499 temp.
500
5012011-04-20 Jim Meyering <meyering@redhat.com>
502
503 * jcf-parse.c (java_parse_file): Remove useless if-before-free.
504
5052011-04-18 Jim Meyering <meyering@redhat.com>
506
507 * jcf-parse.c: Fix typo in comment.
508
5092011-04-14 Nathan Froyd <froydnj@codesourcery.com>
510
511 * decl.c (poplevel): Use BLOCK_CHAIN and block_chainon.
512
5132011-04-12 Nathan Froyd <froydnj@codesourcery.com>
514
515 * java-tree.h (union lang_tree_node): Check for TS_COMMON before
516 calling TREE_CHAIN.
517
5182011-04-11 Martin Jambor <mjambor@suse.cz>
519
520 * decl.c (java_mark_decl_local): Call cgraph_get_node instead of
521 cgraph_node and handle returned NULL.
522
5232011-03-25 Kai Tietz <ktietz@redhat.com>
524
525 * jcf-parse.c (java_read_sourcefilenames): Use filename_cmp
526 instead of strcmp.
527 (set_source_filename): Likewise.
528 * win32-host.c (jcf_open_exact_case): Likewise.
529
5302011-03-21 Kai Tietz <ktietz@redhat.com>
531
532 PR target/12171
533 * lang.c (java_attribute_table): Adjust table.
534
5352011-02-13 Joseph Myers <joseph@codesourcery.com>
536
537 * jvspec.c (jvgenmain_spec): Remove %{a*}.
538
5392011-01-21 Kai Tietz <kai.tietz@onevision.com>
540
541 PR bootstrap/47215
542 * decl.c (java_init_decl_processing): Remove
543 va_list_type_node related type initializations.
544
5452011-01-11 Kai Tietz <kai.tietz@onevision.com>
546
547 PR bootstrap/47215
548 * decl.c (java_init_decl_processing): Initialize
549 long_integer_type_node.
550
5512011-01-07 Kai Tietz <kai.tietz@onevision.com>
552
553 PR bootstrap/47215
554 * decl.c (java_init_decl_processing): Initialize unsigned_type_node.
555
5562011-01-07 Kai Tietz <kai.tietz@onevision.com>
557
558 * decl.c (java_init_decl_processing): Setup va_list_type_node.
559
5602011-01-03 Jakub Jelinek <jakub@redhat.com>
561
562 * jcf-dump.c (version): Update copyright notice dates.
563
5642010-12-15 Dave Korn <dave.korn.cygwin@gmail.com>
565
566 * decl.c (java_init_decl_processing): Initialise integer_three_node.
567 * lang.c (put_decl_node): Handle nested function decls.
568
5692010-12-07 Joseph Myers <joseph@codesourcery.com>
570
571 * jcf-parse.c: Don't include assert.h.
572 (java_parse_file): Use gcc_assert.
573
5742010-12-03 Joseph Myers <joseph@codesourcery.com>
575
576 * lang.opt (static-libgcj): New option.
577
5782010-12-01 Joseph Myers <joseph@codesourcery.com>
579
580 * jcf-parse.c: Don't include toplev.h.
581 * Make-lang.in (java/jcf-parse.o): Don't depend on toplev.h.
582
5832010-11-30 Joseph Myers <joseph@codesourcery.com>
584
585 * boehm.c: Don't include toplev.h.
586 * Make-lang.in (java/boehm.o): Don't depend on toplev.h.
587
5882010-11-30 Joseph Myers <joseph@codesourcery.com>
589
590 * expr.c, lang.c, mangle.c, mangle_name.c, typeck.c,
591 verify-glue.c: Don't include toplev.h.
592 * Make-lang.in: Dependencies for above files changed to remove
593 toplev.h.
594
5952010-11-29 Joseph Myers <joseph@codesourcery.com>
596
597 * boehm.c: Include "config.h" instead of <config.h>.
598 * builtins.c: Don't include <stdarg.h>.
599 * class.c: Don't include "stdio.h".
600 (O_BINARY): Don't define here.
601 * jcf-depend.c: Don't include <assert.h>.
602 (jcf_dependency_set_dep_file, jcf_dependency_init,
603 jcf_dependency_write): Use gcc_assert.
604 * jcf-io.c (O_BINARY): Don't define here.
605 * jcf-path.c: Don't include "tm.h".
606 (jcf_path_init): Use getenv instead of GET_ENVIRONMENT.
607 * resource.c: Don't include "stdio.h".
608 (O_BINARY): Don't define here.
609 * verify-impl.c: Don't include <stdio.h>.
610
6112010-11-17 Joseph Myers <joseph@codesourcery.com>
612
613 * jcf-parse.c (java_parse_file): Take no arguments.
614 * java-tree.h (java_parse_file): Update prototype.
615
6162010-11-09 Joern Rennecke <amylaar@spamcop.net>
617 Andrew Haley <aph@redhat.com>
618
619 PR java/46386
620 * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
621
6222010-11-12 Joseph Myers <joseph@codesourcery.com>
623
624 * Make-lang.in (jvspec.o, java/lang.o): Use $(OPTS_H).
625 * lang.c (java_handle_option): Take location_t parameter.
626
6272010-11-10 Joseph Myers <joseph@codesourcery.com>
628
629 * expr.c (expand_java_field_op): Use %' in diagnostic.
630 * jcf-parse.c (java_parse_file): Use %' in diagnostics.
631 * jvspec.c (lang_specific_driver): Use %' in diagnostic.
632 * lang.c (java_post_options): Use %' in diagnostics.
633
6342010-11-06 Joern Rennecke <amylaar@spamcop.net>
635
636 PR middle-end/46314
637 * class.c: Include target.h.
638 (make_local_function_alias):
639 Use targetm.asm_out.generate_internal_label.
640 * expr.c (lookup_label, generate_name): Likewise.
641
6422010-11-03 Joern Rennecke <joern.rennecke@embecosm.com>
643
644 PR bootstrap/44335
645 * jfc-parse.c (target.h): Include.
646 (handle_constant): Use targetm.words_big_endian and
647 targetm.float_words_big_endian.
648 (get_constant): Use targetm.float_words_big_endian.
649
6502010-10-13 Richard Henderson <rth@redhat.com>
651
652 * lang.c (java_eh_personality): Update call to
653 build_personality_function.
654
6552010-10-12 Joseph Myers <joseph@codesourcery.com>
656
657 * Make-lang.in (java/lang.o): Use $(OPTIONS_H) instead of
658 options.h.
659
6602010-10-11 Nathan Froyd <froydnj@codesourcery.com>
661
662 * decl.c (java_init_decl_processing): Use build_function_type_list
663 instead of build_function_type.
664 * jcf-parse.c (java_emit_static_constructor): Likewise.
665 * builtins.c (initialize_builtins): Likewise.
666
6672010-10-08 Joseph Myers <joseph@codesourcery.com>
668
669 * lang.c (java_init_options_struct): New. Split out from
670 java_init_options.
671 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
672
6732010-10-04 Andi Kleen <ak@linux.intel.com>
674
675 * Make-lang.in (xgcj, jc1, jcf-dump, jvgenmain):
676 Add + to build rule.
677
6782010-09-29 Joseph Myers <joseph@codesourcery.com>
679
680 * lang.opt: Don't use VarExists.
681
6822010-09-29 Joseph Myers <joseph@codesourcery.com>
683
684 * java-tree.h (flag_filelist_file, flag_assert, flag_jni,
685 flag_force_classes_archive_check, flag_redundant, flag_newer,
686 flag_use_divide_subroutine, flag_use_atomic_builtins,
687 flag_use_boehm_gc, flag_hash_synchronization,
688 flag_check_references, flag_optimize_sci, flag_indirect_classes,
689 flag_indirect_dispatch, flag_store_check,
690 flag_reduced_reflection): Remove.
691 * jcf-dump.c (flag_newer): Remove.
692 * jcf.h (quiet_flag): Remove.
693 * parse.h (quiet_flag): Remove.
694
6952010-09-28 Richard Henderson <rth@redhat.com>
696
697 * lang.c: Include "target.h".
698 (java_eh_personality): Use targetm.except_unwind_info.
699 * Make-lang.in (lang.o): Update deps.
700
7012010-09-27 Andrew Haley <aph@redhat.com>
702
703 PR java/45773
704 * jvgenmain.c (main): Fix arg processing.
705
7062010-09-22 Joseph Myers <joseph@codesourcery.com>
707
708 * jvspec.c (lang_specific_driver): Handle OPT__help instead of
709 OPT_fhelp.
710 * lang.opt (-CLASSPATH, -all-warnings, -bootclasspath, -classpath,
711 -dependencies, -encoding, -extdirs, -include-directory,
712 -include-directory=, -output-class-directory,
713 -output-class-directory=, -resource, -resource=,
714 -user-dependencies): New.
715
7162010-09-16 Richard Guenther <rguenther@suse.de>
717
718 * jcf-parse.c (current_file_list): Remove.
719 (java_parse_file): Use build_translation_unit_decl. Adjust.
720
7212010-09-03 Joseph Myers <joseph@codesourcery.com>
722
723 * lang.opt (d): New.
724
7252010-09-03 H.J. Lu <hongjiu.lu@intel.com>
726
727 PR java/45504
728 * jvgenmain.c (main): Check "-D XXX=YYY".
729
7302010-09-02 Joseph Myers <joseph@codesourcery.com>
731
732 * jvspec.c (jvgenmain_spec): Don't handle -fnew-verifier.
733
7342010-09-02 Joseph Myers <joseph@codesourcery.com>
735
736 * lang.opt (CLASSPATH, bootclasspath, classpath, encoding,
737 fCLASSPATH=): Mark as Java options and as aliases.
738 * jvspec.c (jvgenmain_spec): Don't handle -fCLASSPATH*.
739 (lang_specific_driver): Don't handle options marked as aliases.
740 * lang.c (java_handle_option): Don't handle OPT_fCLASSPATH_.
741
7422010-08-22 Joseph Myers <joseph@codesourcery.com>
743
744 * Make-lang.in (jvspec.o): Update dependencies.
745 * jvspec.c: Include opts.h.
746 (PARAM_ARG): Remove.
747 (find_spec_file): Do not add leading -specs=.
748 (lang_specific_driver): Use cl_decoded_option structures.
749 * lang.opt (C, CLASSPATH, D, bootclasspath, classpath, encoding,
750 extdirs, fmain=, s-bc-abi): New options.
751
7522010-08-20 Nathan Froyd <froydnj@codesourcery.com>
753
754 * class.c: Use FOR_EACH_VEC_ELT.
755 * expr.c: Likewise.
756 * jcf-parse.c: Likewise.
757 * resource.c: Likewise.
758
7592010-08-16 Joseph Myers <joseph@codesourcery.com>
760
761 * lang.opt (MD_, MMD_, version): Mark RejectDriver.
762
7632010-08-05 David Daney <ddaney@caviumnetworks.com>
764
765 * class.c (build_utf8_ref): Fix code formatting from previous commit.
766
7672010-08-05 David Daney <ddaney@caviumnetworks.com>
768
769 * class.c (build_utf8_ref): Make decl DECL_USER_ALIGN.
770
7712010-07-27 Joseph Myers <joseph@codesourcery.com>
772
773 * lang.c (java_handle_option): Update prototype and return value
774 type.
775
7762010-07-27 Joseph Myers <joseph@codesourcery.com>
777
778 * lang.c (java_option_lang_mask): New.
779 (java_init_options): Update prototype.
780 (LANG_HOOKS_OPTION_LANG_MASK): Define.
781
7822010-07-15 Nathan Froyd <froydnj@codesourcery.com>
783
784 * java-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN.
785 * boehm.c: Likewise.
786 * class.c: Likewise.
787 * decl.c: Likewise.
788 * expr.c: Likewise.
789 * jcf-parse.c: Likewise.
790 * typeck.c: Likewise.
791 * verify-glue.c: Likewise.
792
7932010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
794
795 * boehm.c: Include diagnostic-core.h in every file that includes
796 toplev.h.
797 * class.c: Likewise.
798 * constants.c: Likewise.
799 * decl.c: Likewise.
800 * except.c: Likewise.
801 * expr.c: Likewise.
802 * jcf-parse.c: Likewise.
803 * mangle.c: Likewise.
804 * mangle_name.c: Likewise.
805 * resource.c: Likewise.
806 * typeck.c: Likewise.
807 * verify-glue.c: Likewise.
808
8092010-07-05 Nathan Froyd <froydnj@codesourcery.com>
810
811 PR bootstrap/44825
812 * class.c (make_class_data): Cast result of VEC_length calls to int.
813
8142010-07-05 Nathan Froyd <froydnj@codesourcery.com>
815
816 * constants.c (build_constants_constructor): Use build_constructor
817 instead of build_constructor_from_list.
818 * class.c (make_method_value): Likewise.
819 (get_dispatch_table): Likewise.
820 (make_class_data): Likewise.
821 (emit_indirect_register_classes): Likewise.
822 (emit_symbol_table): Likewise.
823 (add_assertion_table_entry): Likewise.
824 (emit_assertion_table): Likewise.
825 (make_field_value): Use build_constructor_single instead of
826 build_constructor_from_list.
827
8282010-06-28 Nathan Froyd <froydnj@codesourcery.com>
829
830 * java-tree.h (struct lang_type) [catch_classes]: Change type to a
831 VEC.
832 * except.c (prepare_eh_table_type): Call CONSTRUCTOR_APPEND_ELT
833 instead of tree_cons.
834 * class.c (make_class): Add dummy entry to TYPE_CATCH_CLASSES.
835 (emit_catch_table): Adjust for new type of TYPE_CATCH_CLASSES.
836
8372010-06-28 Steven Bosscher <steven@gcc.gnu.org>
838
839 * lang.c: Do not include except.h
840 * except.c: Likewise.
841 (doing_eh): New, moved from except.c (in gcc/) but removed the
842 do_warning flag.
843 (maybe_start_try): Update doing_eh call.
844 * Make-lang.in: Update dependencies.
845
8462010-06-23 Anatoly Sokolov <aesok@post.ru>
847
848 * decl.c (java_init_decl_processing): Use double_int_to_tree instead
849 of build_int_cst_wide.
850 * boehm.c (set_bit): Remove.
851 (mark_reference_fields): Use double_int type for 'mask' argument.
852 Use double_int_setbit instead of set_bit.
853 (get_boehm_type_descriptor): Use double_int_setbit instead of
854 set_bit. Use double_int_to_tree instead of build_int_cst_wide.
855
8562010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
857
858 * gcj.texi: Move to GFDL version 1.3. Fix copyright years.
859
8602010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
861
862 * jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation.
863
864 * jcf-parse.c (java_parse_file): Likewise.
865 (process_zip_dir): Likewise.
866
867 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
868 (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
869
870 * expr.c (add_type_assertion): Likewise.
871
872 * decl.c (make_binding_level): Likewise.
873 (java_dup_lang_specific_decl): Likewise.
874
875 * constants.c (set_constant_entry): Likewise.
876 (cpool_for_class): Likewise.
877
878 * class.c (add_method_1): Likewise.
879 (java_treetreehash_new): Likewise.
880
881 * java-tree.h (struct lang_type): Add variable_size GTY option.
882 (struct lang_decl): Likewise.
883
884 * jch.h (struct cpool_entry): Likewise.
885
886 * java-tree.h (java_treetreehash_create): Remove parameter ggc.
887
888 * except.c (prepare_eh_table_type): Update
889 java_treetreehash_create call.
890
891 * class.c (add_method_1): Update java_treetreehash_create call.
892 (java_treetreehash_create): Remove parameter gc. Use
893 htab_create_ggc.
894
8952010-06-04 Joseph Myers <joseph@codesourcery.com>
896
897 * jvspec.c (lang_specific_driver): Use GCC-specific formats in
898 diagnostics.
899
9002010-05-30 Steven Bosscher <steven@gcc.gnu.org>
901
902 * except.c: Include tm.h.
903
9042010-05-28 Joseph Myers <joseph@codesourcery.com>
905
906 * jvspec.c (lang_specific_driver): Use fatal_error instead of
907 fatal. Use warning instead of error for warnings.
908
9092010-05-28 Nathan Froyd <froydnj@codesourcery.com>
910
911 * expr.c (get_symbol_table_index): Add spaces in expression.
912
9132010-05-28 Nathan Froyd <froydnj@codesourcery.com>
914
915 * java-tree.h (method_entry): Declare. Declare VECs containing it.
916 (struct lang_type): Change type of otable_methods, atable_methods, and
917 itable_methods to VECs. Fix comment for atable_methods.
918 (emit_symbol_table): Take a VEC instead of a tree.
919 (get_symbol_table_index): Take a VEC * instead of a tree *.
920 * class.c (add_table_and_syms): Take a VEC instead of a tree.
921 (emit_symbol_table): Update for changed parameter type.
922 * expr.c (get_symbol_table_index): Likewise.
923
9242010-05-27 Steven Bosscher <steven@gcc.gnu.org>
925
926 * buildings.c: Pretend to be a backend file by undefining
927 IN_GCC_FRONTEND (still need rtl.h here).
928
9292010-05-26 Nathan Froyd <froydnj@codesourcery.com>
930
931 * java-tree.h (struct lang_decl_func): Change type of throws_list
932 field to a VEC.
933 * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): Adjust for changed type
934 of DECL_FUNCTION_THROWS.
935 * class.c (make_method_value): Likewise.
936
9372010-05-26 Nathan Froyd <froydnj@codesourcery.com>
938
939 * class.c (utf8_decl_list): Delete.
940 (build_utf8_ref): Remove references to it.
941 * java-tree.h (all_class_list): Delete.
942 (predef_filenames): Delete.
943 (enum java_tree_index) [JTI ALL_CLASS_LIST,JTI_PREDEF_FILENAMES]:
944 Delete.
945 * jcf-parse.c (parse_roots): Decrease size to 2.
946 (current_file_list): Convert to a VEC.
947 (all_class_list): Declare.
948 (jcf_parse): Adjust for new type of all_class_list.
949 (java_layout_seen_class_methods): Likewise.
950 (predefined_filenames): Declare.
951 (add_predefined_file): Use it.
952 (predefined_filename_p): Likewise.
953 (java_parse_file): Adjust for new type of current_file_list.
954
9552010-05-25 Jakub Jelinek <jakub@redhat.com>
956
957 * lang.c (java_classify_record): Return RECORD_IS_INTERFACE
958 for interfaces.
959
960 PR debug/43260
961 * java-tree.h (pending_static_fields): New extern declaration.
962 (java_write_globals): New prototype.
963 * lang.c (LANG_HOOKS_WRITE_GLOBALS): Define.
964 * decl.c (java_mark_class_local): When clearing DECL_EXTERNAL
965 of a static field push it into pending_static_fields vector.
966 * class.c (pending_static_fields): New variable.
967 (add_field): If static field is not DECL_EXTERNAL, push it into
968 pending_static_fields vector.
969 (java_write_globals): New function.
970
9712010-05-24 Nathan Froyd <froydnj@codesourcery.com>
972
973 * expr.c (quick_stack): Change type to a VEC. Update comment.
974 (tree_list_free_list): Delete.
975 (flush_quick_stack): Update for quick_stack type change.
976 (push_value): Likewise.
977 (pop_value): Likewise.
978
9792010-05-23 Steven Bosscher <steven@gcc.gnu.org>
980
981 * java-gimplify.c: Do not include tm.h, toplev.h.
982 * typeck.c: Do not include tm.h.
983 * mangle_name.c: Do not include tm.h.
984 * jcf-dump.c: Do not include tm.h, ggc.h.
985 * class.c: Do not include rtl.h, tm_p.h, target.h, except.h, cgraph.h.
986 * decl.c: Do not include tm.h, rtl.h, function.h, expr.h, except.h,
987 and timevar.h.
988 * jcf-parse.c: Do not include tm.h and tm_p.h.
989 * resource.c: Do not include tm.h, rtl.h, flags.h, obstack.h,
990 target.h, and expr.h.
991 * except.c: Do not include tm.h, rtl.h, function.h.
992 * builtins.c: Do not include convert.h. Explain why RTL headers
993 have to be included here.
994 * verify-glue.c: Do not include tm.h.
995 * jcf-depend.c: Do not include tm.h.
996 * jcf-reader.c: Include ggc.h.
997 * jcf-io.c: Do not include tm.h, toplev.h.
998 * expr.c: Do not include tm.h, rtl.h, expr.h, except.h, tm_p.h,
999 gimple.h.
1000 * lang.c: Do not include rtl.h, expr.h.
1001 * Make-lang.in: Update dependencies.
1002
10032010-05-23 Steven Bosscher <steven@gcc.gnu.org>
1004
1005 * jcf-parse.c: Include bitmap.h.
1006 * Make-lang.in: Update dependencies.
1007
10082010-05-20 Jakub Jelinek <jakub@redhat.com>
1009
1010 PR debug/43521
1011 * decl.c (start_java_method): Set DECL_ARTIFICIAL on the 'this'
1012 PARM_DECL.
1013
10142010-05-19 Anatoly Sokolov <aesok@post.ru>
1015
1016 * jcf-parse.c (get_constant): Use double_int_to_tree instead of
1017 build_int_cst_wide_type.
1018
10192010-05-18 Nathan Froyd <froydnj@codesourcery.com>
1020
1021 * expr.c (pop_arguments): Fix use of undeclared variable.
1022
10232010-05-18 Nathan Froyd <froydnj@codesourcery.com>
1024
1025 * expr.c (expand_java_multianewarray): Use build_call_vec instead of
1026 build_call_list.
1027 (pop_arguments): Return a VEC instead of a tree. Take a method type
1028 rather than a list of argument types.
1029 (rewrite_rule): Change signature. of rewrite_arglist member.
1030 (rewrite_arglist_getcaller): Update signature.
1031 (rewrite_arglist_getclass): Likewise.
1032 (maybe_rewrite_invocation): Update for rewrite_arglist change.
1033 (build_known_method_ref): Take a VEC instead of a tree.
1034 (invoke_build_dtable): Likewise.
1035 (expand_invoke): Update calls to pop_arguments. Use build_call_vec
1036 instead of build_call_list.
1037 (build_jni_stub): Use build_call_vec instead of build_call_list.
1038 * java-tree.h (maybe_rewrite_invocation): Update declaration.
1039 (build_known_method_ref): Likewise.
1040 (invoke_build_dtable): Likewise.
1041
10422010-05-14 Nathan Froyd <froydnj@codesourcery.com>
1043
1044 PR 44103
1045 * java-tree.h (START_RECORD_CONSTRUCTOR): Change first argument to a
1046 vector. Move call to build_constructor...
1047 (FINISH_RECORD_CONSTRUCTOR): ...here. Add necessary arguments. Clear
1048 TREE_CONSTANT on the constructor.
1049 (PUSH_SUPER_VALUE): Change first argument to a vector.
1050 (PUSH_FIELD_VALUE): Likewise.
1051 * resource.c (compile_resource_data): Update calls to above macros.
1052 * constants.c (build_constants_constructor): Likewise.
1053 * class.c (build_utf8_ref): Likewise.
1054 (make_field_value): Likewise.
1055 (make_method_value): Likewise.
1056 (add_table_and_syms): New function.
1057 (make_class_data): Call it. Update calls to above macros.
1058 (build_symbol_table_entry): New function.
1059 (build_symbol_entry): Call it. Update calls to above macros.
1060 (emit_symbol_table): Likewise.
1061 (make_catch_class_record): Update calls to above macros.
1062 (build_assertion_table_entry): New function.
1063 (add_assertion_table_entry): Call it.
1064 (emit_assertion_table): Likewise.
1065
10662010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
1067
1068 PR 40989
1069 * lang.c (java_handle_option): Add argument kind.
1070
10712010-04-18 Eric Botcazou <ebotcazou@adacore.com>
1072
1073 * decl.c (java_init_decl_processing): Remove argument in call to
1074 initialize_sizetypes
1075
10762010-04-07 Jakub Jelinek <jakub@redhat.com>
1077
1078 * exception.cc (_Jv_Throw): Avoid set but not used warning.
1079 * include/java-assert.h (JvAssertMessage, JvAssert): Use argument in
1080 sizeof to avoid set but not used warnings.
1081
10822010-01-20 Joern Rennecke <amylaar@spamcop.net>
1083
1084 * lang.c (java_post_options): Constify variable "dot".
1085
1086 * jcf-parse.c (set_source_filename): Constify variable "dot".
1087 (load_class): Constify variable "separator".
1088 Use get_identifier_with_length.
1089
1090 * jvspec.c (lang_specific_driver): Constify two variables named "p".
1091
10922010-01-09 Jakub Jelinek <jakub@redhat.com>
1093
1094 * jcf-dump.c (version): Update copyright notice dates.
1095
10962009-11-28 Jakub Jelinek <jakub@redhat.com>
1097
1098 * jvspec.c (lang_specific_driver): Remove unused
1099 saw_verbose_flag variable.
1100 * jcf-dump.c (main): Remove unused general_purpose_bits
1101 variable.
1102 * builtins.c (initialize_builtins): Remove unused float_ftype_float
1103 variable.
1104 * expr.c (java_stack_pop): Remove unused val variable.
1105 (build_jni_stub): Remove unused res_type variable.
1106 * verify-impl.c (check_field_constant): Remove unused len variable.
1107
11082009-10-20 Joel Dice <dicej@mailsnare.net>
1109
1110 PR java/28474
1111 * mangle_name.c (append_unicode_mangled_name): Fix mangling
1112 of names with multiple underscores and "U".
1113 (unicode_mangling_length): Likewise.
1114
11152009-10-03 Simon Baldwin <simonb@google.com>
1116
1117 * config-lang.in (lang_dirs): Remove zlib.
1118
11192009-09-28 Richard Henderson <rth@redhat.com>
1120
1121 * builtins.c (initialize_builtins): Update call to
1122 build_common_builtin_nodes.
1123 * lang.c (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
1124
11252009-09-14 Richard Henderson <rth@redhat.com>
1126
1127 * builtins.c (initialize_builtins): Update call to
1128 build_common_builtin_nodes.
1129 * decl.c (java_init_decl_processing): Don't call
1130 default_init_unwind_resume_libfunc.
1131 * except.c: Include tree-iterator.h.
1132 (build_exception_object_var): New.
1133 (build_exception_object_ref): Use it.
1134 (expand_end_java_handler): Initialize it from __builtin_eh_pointer.
1135 Attach all CATCH_EXPRs to a single TRY_CATCH_EXPR.
1136 * java-tree.h (DECL_FUNCTION_EXC_OBJ): New.
1137
11382009-09-13 Richard Guenther <rguenther@suse.de>
1139 Rafael Avila de Espindola <espindola@google.com>
1140
1141 * decl.c (do_nothing): Remove.
1142 (java_init_decl_processing): Do not set lang_eh_runtime_type.
1143 * Make-lang.in (lang.o): Add $(EXCEPT_H) dependency.
1144 * lang.c (java_eh_personality): New.
1145 (java_eh_personality_decl): Likewise.
1146 (LANG_HOOKS_EH_PERSONALITY): Define.
1147
11482009-09-03 Diego Novillo <dnovillo@google.com>
1149
1150 * lang.c (lang_hooks): Remove const qualifier.
1151
11522009-09-01 Jakub Jelinek <jakub@redhat.com>
1153
1154 * boehm.c (mark_reference_fields): Compute % in HOST_WIDE_INT
1155 type.
1156
11572009-09-01 Richard Guenther <rguenther@suse.de>
1158
1159 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
1160 * java-tree.h (java_mark_addressable): Likewise.
1161 * typeck.c (java_mark_addressable): Likewise.
1162
11632009-08-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1164
1165 * Make-lang.in (java.install-pdf): Install gcj.pdf in
1166 $(pdfdir)/gcc, alongside the other manuals.
1167
11682009-08-12 Andrew Haley <aph@redhat.com>
1169
1170 * builtins.c (compareAndSwapInt_builtin): Use
1171 flag_use_atomic_builtins.
1172 (compareAndSwapLong_builtin): Likewise.
1173 (compareAndSwapObject_builtin): Likewise.
1174 * jvspec.c: Add flag_use_atomic_builtins.
1175 * gcj.texi: Likewise.
1176 * java-tree.h: Likewise.
1177 * lang.opt: Likewise.
1178
11792009-08-11 Dodji Seketeli <dodji@redhat.com>
1180
1181 PR debug/40990
1182 * lang.c (put_decl_node): Outputs different level of information
1183 depending on the verbosity level.
1184
11852009-07-31 Andrew Haley <aph@redhat.com>
1186
1187 PR java/40867
1188 * decl.c (java_replace_references): Set EXPR_LOCATION on all
1189 generated expressions.
1190 (binding_level.loc): new field.
1191 (clear_binding_level): Initialize loc.
1192 (set_input_location): New function.
1193 (pushlevel): Set new binding_level.loc.
1194 (poplevel): Set EXPR_LOCATION on the new BIND_EXPR_BODY.
1195 (start_java_method): Set DECL_SOURCE_LOCATION of this new method.
1196 (java_add_stmt): Set the EXPR_LOCATION on all subtrees of new_stmt.
1197
11982009-07-17 Richard Guenther <rguenther@suse.de>
1199
1200 PR c/40401
1201 * java-gimplify.c (java_genericize): Do not gimplify here.
1202 But replace all local references.
1203 (java_gimplify_expr): Do not replace local references here.
1204 (java_gimplify_modify_expr): Likewise.
1205 * jcf-parse.c (java_parse_file): Do not finalize the CU or
1206 optimize the cgraph here.
1207 * decl.c (java_replace_reference): Make static.
1208 (java_replace_references): New function.
1209 (end_java_method): Clear base_decl_map.
1210 * java-tree.h (java_replace_references): Declare.
1211 (java_replace_reference): Remove.
1212
12132009-07-14 Taras Glek <tglek@mozilla.com>
1214 Rafael Espindola <espindola@google.com>
1215
1216 * Make-lang.in (java.install-plugin): New target for
1217 installing plugin headers.
1218
12192009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
1220
1221 * class.c: Replace %J by an explicit location. Update all calls.
1222
12232009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
1224
1225 * jcf-parse.c: Replace %H by an explicit location. Update all calls.
1226
12272009-06-29 Andrew Haley <aph@redhat.com>
1228
1229 PR java/40590
1230 * java-tree.h (cxx_keyword_p): New declaration.
1231 * mangle_name.c (utf8_cmp): Move here from mangle.c.
1232 (cxx_keywords): Likewise.
1233 (cxx_keyword_p): Likewise.
1234 (MANGLE_CXX_KEYWORDS): New macro.
1235 (append_gpp_mangled_name): Use MANGLE_CXX_KEYWORDS.
1236 (append_gpp_mangled_name): Likewise.
1237 * mangle.c: Move code to mangle_name.c.
1238 (mangle_member_name): Don't call cxx_keyword_p.
1239
12402009-06-12 Aldy Hernandez <aldyh@redhat.com>
1241
1242 * java-gimplify.c (java_gimplify_block): New argument to
1243 build_empty_stmt.
1244 * expr.c (force_evaluation_order): Same.
1245 * typeck.c: Add location to build_decl or PUSH_FIELD calls.
1246 * class.c: Same.
1247 * decl.c: Same.
1248 * jcf-parse.c: Same.
1249 * constants.c: Same.
1250 * resource.c: Same.
1251 * except.c: Same.
1252 * builtins.c: Same.
1253 * expr.c: Same.
1254 * java-tree.h (PUSH_FIELD): Add location field.
1255
12562009-06-09 Ian Lance Taylor <iant@google.com>
1257
1258 * verify.h: Remove extern "C".
1259
12602009-06-07 Ian Lance Taylor <iant@google.com>
1261
1262 * jcf-parse.c (handle_constant): Change local variable 'kind' to
1263 unsigned int.
1264
12652009-06-01 Ian Lance Taylor <iant@google.com>
1266
1267 * jcf-io.c (find_class): Use CONST_CAST.
1268
12692009-05-27 Ian Lance Taylor <iant@google.com>
1270
1271 * Make-lang.in ($(XGCJ)$(exeext)): Change $(COMPILER) to
1272 $(LINKER).
1273 (jc1$(exeext), jcf-dump$(exeext), jvgenmain$(exeext)): Likewise.
1274
12752009-05-26 Ian Lance Taylor <iant@google.com>
1276
1277 * Make-lang.in (jvspec.o): Use $(COMPILER).
1278 ($(XGCJ)$(exeext), jc1$(exeext), jcf-dump$(exeext)): Likewise.
1279 (jvgenmain$(exeext), java/jcf-io.o, java/jcf-path.o): Likewise.
1280
12812009-05-12 Alexandre Oliva <aoliva@redhat.com>
1282
1283 * Make-lang.in (GCJ): Renamed to...
1284 (XGCJ): ... this.
1285
12862009-04-27 Ian Lance Taylor <iant@google.com>
1287
1288 * builtins.c (java_builtins): Add casts to enum type.
1289 * verify-impl.c (check_class_constant): Add cast to enum type.
1290 (check_constant, check_wide_constant): Likewise.
1291
12922009-04-27 Richard Guenther <rguenther@suse.de>
1293
1294 PR java/38374
1295 * constants.c (build_constants_constructor): Retain the old
1296 pointer type as valid TYPE_POINTER_TO after patching the
1297 type of the constant pool decl.
1298
12992009-04-24 Ian Lance Taylor <iant@google.com>
1300
1301 * jcf-parse.c (handle_constant): Add cast to enum type.
1302
13032009-04-21 Taras Glek <tglek@mozilla.com>
1304
1305 * builtins.c: Update GTY annotations to new syntax
1306 * decl.c: Likewise
1307 * java-tree.h: Likewise
1308 * jcf.h: Likewise
1309 * lang.c: Likewise
1310
13112009-04-21 Joseph Myers <joseph@codesourcery.com>
1312
1313 * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
1314 license notices.
1315
13162009-04-18 Ian Lance Taylor <iant@google.com>
1317
1318 * verify-impl.c (verify_instructions_0): Add cast to enum type.
1319
13202009-04-09 Paolo Bonzini <bonzini@gnu.org>
1321
1322 * builtins.c (compareAndSwapLong_builtin,
1323 compareAndSwapInt_builtin, compareAndSwapObject_builtin,
1324 VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc.
1325
13262009-03-31 Richard Guenther <rguenther@suse.de>
1327
1328 * java-gimplify.c (java_gimplify_expr): Do not manually gimplify
1329 the first operand of binary and comaprison expressions.
1330
13312009-03-30 Joseph Myers <joseph@codesourcery.com>
1332
1333 PR rtl-optimization/323
1334 * lang.c (java_post_options): Set flag_excess_precision_cmdline.
1335 Give an error for -fexcess-precision=standard for processors where
1336 the option is significant.
1337
13382009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1339
1340 * lang.opt: Unify help text for -Wdeprecated.
1341
13422009-02-03 Jakub Jelinek <jakub@redhat.com>
1343
1344 * jcf-dump.c (version): Update copyright notice dates.
1345
13462009-01-16 Richard Guenther <rguenther@suse.de>
1347
1348 PR tree-optimization/38835
1349 PR middle-end/36227
1350 * builtins.c (build_addr_sum): Use POINTER_PLUS_EXPR.
1351
13522008-12-05 Sebastian Pop <sebastian.pop@amd.com>
1353
1354 PR bootstrap/38262
1355 * Make-lang.in (jc1): Add BACKENDLIBS, remove GMPLIBS.
1356
13572008-11-04 Andrew Haley <aph@redhat.com>
1358
1359 PR java/37068
1360 * jcf-parse.c (java_emit_static_constructor): Don't call
1361 cgraph_build_static_cdtor. Rewrite.
1362
13632008-10-24 Jakub Jelinek <jakub@redhat.com>
1364
1365 * Make-lang.in (check-java-subtargets): New target.
1366
13672008-10-16 David Edelsohn <edelsohn@gnu.org>
1368
1369 PR target/35483
1370 * Make-lang.in (class.o): Depend on $(TM_P_H).
1371 (expr.o): Same.
1372 * class.c: Include tm_p.h.
1373 * expr.c: Include tm_p.h.
1374
13752008-10-14 Andrew Haley <aph@redhat.com>
1376
1377 * constants.c (build_constant_data_ref): Make sure we only build
1378 one copy of the decl for the constant pool.
1379
13802008-09-22 Andrew Haley <aph@redhat.com>
1381
1382 * expr.c (rules): Add new rule for
1383 gnu.java.lang.VMCPStringBuilder.toString.
1384 (rewrite_rule.new_classname): New field.
1385 (maybe_rewrite_invocation): Use new_classname field instead of
1386 DECL_CONTEXT (*method_p).
1387 Allow rewrite_arglist to be NULL.
1388
13892008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
1390
1391 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
1392 (java_get_callee_fndecl): Kill.
1393
13942008-09-17 Jan Hubicka <jh@suse.cz>
1395
1396 PR c++/18071
1397 * class.c (add_method_1): Do not initialize DECL_INLINE.
1398 (make_local_function_alias): Likewise.
1399 * expr.c (rewrite_arglist_getcaller): Set DECL_UNINLINABLE.
1400 * lang.c (java_decl_ok_for_sibcall): Use DECL_UNINLINABLE.
1401
14022008-09-09 Richard Guenther <rguenther@suse.de>
1403
1404 * decl.c (build_result_decl): Remove no longer applicable
1405 promotion.
1406
14072008-09-05 David Daney <ddaney@avtrex.com>
1408
1409 * gcj.texi (-freduced-reflection): Clarify option's restrictions.
1410
14112008-08-21 David Daney <ddaney@avtrex.com>
1412
1413 * class.c (make_class_data): Don't add field_index when
1414 flag_reduced_reflection set.
1415
14162008-08-12 Ulrich Weigand <uweigand@de.ibm.com>
1417
1418 * typeck.c (convert): Do not check for TARGET_FLOAT_FORMAT.
1419
14202008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1421
1422 PR 28875
1423 * lang.c (java_handle_option): Replace set_Wunused with
1424 warn_unused.
1425
14262008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1427
1428 * gcj.texi: Update copyright years. Do not list GPL as
1429 Invariant Section.
1430
14312008-07-29 Jakub Jelinek <jakub@redhat.com>
1432
1433 * class.c (build_utf8_ref): Set DECL_SIZE and DECL_SIZE_UNIT
1434 from ctype's sizes.
1435
1436 * class.c (build_utf8_ref): Pad initializer string to utf8const_type's
1437 alignment.
1438
14392008-07-29 Jan Hubicka <jh@suse.cz>
1440
1441 * lang.c (java_post_options): Remove handling of flag_no_inline.
1442
14432008-07-28 Richard Guenther <rguenther@suse.de>
1444
1445 Merge from gimple-tuples-branch.
1446
1447 2008-07-18 Richard Guenther <rguenther@suse.de>
1448
1449 * expr.c: Include tree-iterator.h.
1450 * Make-lang.in (expr.o): Add tree-iterator.h dependency.
1451
1452 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
1453
1454 * java-gimplify.c: Include gimple.h instead of tree-gimple.h.
1455 * expr.c: Same.
1456
1457 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
1458
1459 * java-gimplify.c (java_gimplify_expr): Same.
1460 (java_gimplify_modify_expr): Same.
1461 * java-tree.h: Rename GENERIC_NEXT to TREE_CHAIN.
1462
1463 2008-05-02 Diego Novillo <dnovillo@google.com>
1464
1465 * expr.c (build_java_throw_out_of_bounds_exception): Fix
1466 mixed declarations and code.
1467
1468 2008-05-02 Doug Kwan <dougkwan@google.com>
1469
1470 * expr.c (build_java_throw_out_of_bounds_exception ): Wrap call to
1471 _Jv_ThrowBadArrayIndex with a COMPOUND_EXPR to return 0.
1472
1473 2008-02-19 Diego Novillo <dnovillo@google.com>
1474
1475 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
1476
1477 * java-gimplify.c (java_gimplify_self_mod_expr): Change
1478 gimple_seq arguments to gimple_seq *. Update all users.
1479
1480 2007-11-26 Aldy Hernandez <aldyh@redhat.com>
1481
1482 * java-gimplify.c (java_gimplify_expr): Make pre_p and post_p
1483 sequences.
1484 (java_gimplify_self_mod_expr): Same.
1485 * java-tree.h (java_gimplify_expr): Make pre_p and post_p
1486 sequences.
1487
14882008-07-24 Jan Hubicka <jh@suse.cz>
1489
1490 * java/decl.c: Include cgraph.h
1491 (end_java_method): Remove non-unit-at-a-time code.
1492 (java_mark_decl_local): Likewise; sanity check that we don't touch
1493 finalized nodes.
1494
14952008-07-15 Jan Hubicka <jh@suse.cz>
1496
1497 * lang.c (java_init_options): Enable unit-at-a-time by default.
1498
14992008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1500
1501 * Make-lang.in (jvspec.o): Fix dependencies.
1502
15032008-07-06 Tom Tromey <tromey@redhat.com>
1504
1505 * Make-lang.in (java/parse.o-warn): Remove.
1506 (java/jcf-io.o-warn): Remove.
1507
15082008-07-05 Tom Tromey <tromey@redhat.com>
1509
1510 * jcf-io.c: Don't include fnmatch.h. Don't use JCF_USE_SCANDIR.
1511 (compare_path): Remove.
1512 (java_or_class_file): Likewise.
1513 (memoized_dirlist_entry): Likewise.
1514 (memoized_dirlist_hash): Likewise.
1515 (memoized_dirlist_lookup_eq): Likewise.
1516 (memoized_dirlists): Likewise.
1517 (caching_stat): Likewise.
1518 (find_class): Use stat.
1519 * jcf.h (JCF_USE_SCANDIR): Remove.
1520
15212008-06-30 Joshua Sumali <jsumali@redhat.com>
1522
1523 * Make-lang.in (JAVA_MANFILES): Add doc/aot-compile.1 and
1524 doc/rebuild-gcj-db.1
1525 (java.uninstall): Likewise.
1526 (java.maintainer-clean): Likewise.
1527 (aot-compile.pod): New rule.
1528 (rebuild-gcj-db.pod): New rule.
1529 (java.install-man): Install doc/aot-compile.1 and doc/rebuild-gcj-db.1
1530 * gcj.texi: Add new sections for aot-compile and rebuild-gcj-db.
1531
15322008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1533
1534 * Make-lang.in (java/jcf-io.o-warn): New.
1535
15362008-06-24 Tom Tromey <tromey@redhat.com>
1537
1538 * jcf-path.c (jcf_path_init): Don't name variable 'try'.
1539 * expr.c (add_type_assertion): Rename argument.
1540 (build_java_arrayaccess): Don't name variable 'throw'.
1541 (ARRAY_NEW_MULTI): Don't name variable 'class'.
1542 * jcf-io.c (find_class): Don't name variable 'class'.
1543 * mangle.c (compression_table_add): Don't name variable 'new'.
1544 * constants.c (cpool_for_class): Rename argument.
1545 (alloc_constant_fieldref): Likewise.
1546 * jcf-parse.c (handle_innerclass_attribute): Don't name variable
1547 'class'.
1548 (read_class): Likewise.
1549 (parse_zip_file_entries): Likewise.
1550 (process_zip_dir): Likewise.
1551 * decl.c (java_mark_class_local): Rename argument.
1552 * class.c (GEN_TABLE): Use type_name, not typename.
1553 (gen_indirect_dispatch_tables): Likewise.
1554 (add_field): Rename argument.
1555 (is_compiled_class): Likewise.
1556 (safe_layout_class): Likewise.
1557 (emit_assertion_table): Likewise.
1558 * typeck.c (has_method): Rename argument.
1559
15602008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1561
1562 * class.c (ident_subst, mangled_classname, unmangle_classname,
1563 gen_indirect_dispatch_tables, add_method_1,
1564 build_fieldref_cache_entry, make_local_function_alias,
1565 layout_class, java_treetreehash_find, java_treetreehash_new,
1566 split_qualified_name): Fix for -Wc++-compat.
1567 * constants.c (set_constant_entry, cpool_for_class): Likewise.
1568 * decl.c (make_binding_level, java_dup_lang_specific_decl,
1569 start_java_method): Likewise.
1570 * except.c (prepare_eh_table_type): Likewise.
1571 * expr.c (type_assertion_hash, note_instructions): Likewise.
1572 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC,
1573 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
1574 * jcf-io.c (jcf_filbuf_from_stdio, opendir_in_zip, find_class):
1575 Likewise.
1576 * jcf-parse.c (reverse, java_read_sourcefilenames,
1577 annotation_grow, rewrite_reflection_indexes, java_parse_file,
1578 process_zip_dir): Likewise.
1579 * jcf-path.c (add_entry, add_path, jcf_path_init,
1580 jcf_path_extdirs_arg): Likewise.
1581 * jcf-reader.c (jcf_parse_constant_pool): Likewise.
1582 * jvgenmain.c (do_mangle_classname): Likewise.
1583 * lang.c (put_decl_string): Likewise.
1584 * verify-impl.c (make_state_copy, make_state, add_new_state):
1585 Likewise.
1586
15872008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1588
1589 * gcj.texi: Expand TABs, remove whitespace from blank lines.
1590
15912008-06-14 Tom Tromey <tromey@redhat.com>
1592
1593 PR java/36247:
1594 * class.c (build_class_ref): Initialize this_classdollar when
1595 needed.
1596
15972008-05-23 Andrew Haley <aph@redhat.com>
1598
1599 * jcf-parse.c (give_name_to_class): Call find_sourcefile to find full
1600 pathname of source file.
1601
16022008-05-12 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1603
1604 * jcf-dump.c (print_constant): Use
1605 HOST_LONG_LONG_FORMAT.
1606
16072008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1608
1609 * decl.c (java_init_decl_processing): Change DECL_IS_PURE to
1610 DECL_PURE_P.
1611
16122008-04-23 Paolo Bonzini <bonzini@gnu.org>
1613
1614 * class.c (build_utf8_ref): Don't set TREE_INVARIANT.
1615 (build_classdollar_field): Don't set TREE_INVARIANT.
1616 (get_dispatch_table): Don't set TREE_INVARIANT.
1617 (make_class_data): Don't set TREE_INVARIANT.
1618 (build_symbol_entry): Don't set TREE_INVARIANT.
1619 (emit_symbol_table): Don't set TREE_INVARIANT.
1620 * constants.c (build_constant_data_ref): Don't set TREE_INVARIANT.
1621 (build_ref_from_constant_pool): Don't set TREE_INVARIANT.
1622 * resource.c (compile_resource_data): Don't set TREE_INVARIANT.
1623 * expr.c (cache_cpool_data_ref): Don't set TREE_INVARIANT.
1624
16252008-04-03 Tom Tromey <tromey@redhat.com>
1626
1627 * Make-lang.in (java_OBJS): New variable.
1628
16292008-04-03 Paolo Bonzini <bonzini@gnu.org>
1630
1631 * java-tree.h (insert_block): Kill.
1632 * decl.c (insert_block): Kill.
1633
16342008-04-01 Joseph Myers <joseph@codesourcery.com>
1635
1636 * gcj.texi: Include gpl_v3.texi instead of gpl.texi
1637 * Make-lang.in (TEXI_JAVA_FILES): Include gpl_v3.texi instead of
1638 gpl.texi.
1639
16402008-03-27 Tom Tromey <tromey@redhat.com>
1641
1642 * Make-lang.in: Revert automatic dependency patch.
1643
16442008-03-25 Tom Tromey <tromey@redhat.com>
1645
1646 * Make-lang.in: Removed most explicit .o targets.
1647 (java/jvspec.o): Reduce to variable setting. Moved to java/.
1648 ($(GCJ)$(exeext)): Update.
1649 (JAVA_OBJS): New variable.
1650 (JCFDUMP_OBJS): Reformat.
1651 (java_OBJS): New variable.
1652 (java/jvspec.o-warn): Update.
1653 (java/parse.o-warn): Remove.
1654 (JAVA_TREE_H): Remove.
1655 (java/jcf-io.o): Reduce to variable setting.
1656 (ALL_CPPFLAGS): Likewise.
1657
16582008-03-12 Paolo Bonzini <bonzini@gnu.org>
1659
1660 * mangle.c (java_mangle_decl): Remove dead check.
1661
16622008-03-11 Paolo Bonzini <bonzini@gnu.org>
1663
1664 * jcf-parse.c (java_parse_file): Assert binding levels are
1665 left in order.
1666 * lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, java_clear_binding_stack):
1667 Delete.
1668
16692008-03-02 Jakub Jelinek <jakub@redhat.com>
1670
1671 * jcf-dump.c (version): Update copyright notice dates.
1672
16732008-02-29 Tom Tromey <tromey@redhat.com>
1674
1675 * expr.c (expand_byte_code): Set DECL_FUNCTION_LAST_LINE on
1676 method.
1677 * java-tree.h (struct lang_decl_func): Remove obsolete comment.
1678
16792008-02-26 Tom Tromey <tromey@redhat.com>
1680
1681 * lang.c (java_post_options): Remove conditional.
1682 * expr.c (expand_byte_code): Remove old location code.
1683 * jcf-parse.c (set_source_filename): Remove old location code.
1684 (give_name_to_class): Likewise.
1685 (jcf_parse): Likewise.
1686 (duplicate_class_warning): Likewise.
1687 (parse_class_file): Likewise.
1688 (java_parse_file): Likewise.
1689 * decl.c (finish_method): Remove old location code.
1690 * class.c (push_class): Remove old location code.
1691
16922008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1693
1694 PR other/35107
1695 * Make-lang.in (jc1): Add $(GMPLIBS).
1696
16972008-01-23 David Daney <ddaney@avtrex.com>
1698
1699 * class.c (hide) Rename to...
1700 (java_hide_decl) ... this throughout, and make public.
1701 * resource.c (Jr_count): Remove.
1702 (compile_resource_data): Call java_mangle_resource_name to generate
1703 decl name. Make resource decl public and hidden.
1704 * mangle.c (java_mangle_resource_name): New function.
1705 * java-tree.h (java_hide_decl, java_mangle_resource_name): Declare
1706 functions.
1707
17082008-01-04 Andrew Haley <aph@redhat.com>
1709
1710 PR java/17779
1711 * jcf-parse.c (parse_zip_file_entries): Move decl to compile on
1712 C90.
1713
17142008-01-03 Andrew Haley <aph@redhat.com>
1715
1716 PR java/17779
1717 * jcf-parse.c (parse_zip_file_entries): Unset TYPE_ALIAS_SET if
1718 we're about to re-layout the type.
1719
17202007-12-20 Alexandre Oliva <aoliva@redhat.com>
1721
1722 * lang.c (java_classify_record): Don't return
1723 RECORD_IS_INTERFACE for now.
1724
17252007-12-18 Andrew Haley <aph@redhat.com>
1726
1727 PR java/27643
1728 * jcf-parse.c (java_parse_file): Remove call to
1729 java_mark_class_local.
1730 (parse_class_file): Reinstate call to java_mark_class_local here.
1731 * decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is
1732 already set, call java_mangle_decl() and make_decl_rtl() to
1733 rewrite its name as a hidden alias.
1734
17352007-12-15 Alexandre Oliva <aoliva@redhat.com>
1736
1737 PR debug/7081
1738 * lang.c (java_classify_record): New.
1739 (LANG_HOOKS_CLASSIFY_RECORD): Override.
1740
17412007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
1742
1743 PR 34081/C++
1744 * decl.c (finish_method): Pass 'false' for the new
1745 allocate_struct_function parameter.
1746
17472007-11-26 Alexandre Oliva <aoliva@redhat.com>
1748
1749 * expr.c (build_jni_stub): Use the computed jni func type for
1750 variable meth.
1751
17522007-11-26 Alexandre Oliva <aoliva@redhat.com>
1753
1754 * class.c (JAVA_TREEHASHHASH_H): Use TYPE_UID.
1755
17562007-11-26 Alexandre Oliva <aoliva@redhat.com>
1757
1758 * expr.c (type_assertion_hash): Hash type uids rather than
1759 tree pointers.
1760
17612007-11-17 David Daney <ddaney@avtrex.com>
1762 Andrew Haley <aph@redhat.com>
1763
1764 * constants.c (build_constants_constructor): Use POINTER_SIZE
1765 insead of BITS_PER_WORD in big-endian work around.
1766
17672007-11-07 Tom Tromey <tromey@redhat.com>
1768
1769 PR java/34019:
1770 * gcj.texi (Input Options): Add missing noun.
1771
17722007-11-02 Tom Tromey <tromey@redhat.com>
1773
1774 PR java/33765:
1775 * jcf-parse.c (java_parse_file): Ignore ZIPEMPTYMAGIC files.
1776 * zipfile.h (ZIPEMPTYMAGIC): New define.
1777
17782007-11-01 Tom Tromey <tromey@redhat.com>
1779
1780 * Make-lang.in (java/jcf-dump.o): Depend on zipfile.h.
1781 (java/jcf-parse.o): Depend on jcf-reader.c, zipfile.h, and jcf.h.
1782 (java/jcf-io.o): Depend on zipfile.h.
1783
17842007-10-17 Richard Guenther <rguenther@suse.de>
1785
1786 * Make-lang.in (java/builtins.o): Add $(OPTABS_H) and $(EXPR_H)
1787 dependencies.
1788
17892007-10-03 Andrew Haley <aph@redhat.com>
1790
1791 PR java/33639
1792 * class.c (mangled_classname): Detect and replace illegal
1793 characters in assembly language symbols.
1794 (gen_indirect_dispatch_tables): Call mangled_classname() on
1795 the type.
1796
17972007-09-27 Jakub Jelinek <jakub@redhat.com>
1798
1799 * lang.c (java_print_error_function): Add third argument.
1800
18012007-09-15 Tom Tromey <tromey@redhat.com>
1802
1803 * java-tree.h (struct lang_decl_func) <function_decl_body>:
1804 Remove.
1805 <init_final>: Likewise.
1806 * lang.c (java_dump_tree): Update.
1807 * java-tree.h (DECL_FUNCTION_BODY): Remove.
1808
18092007-09-11 Jan Hubicka <jh@suse.cz>
1810
1811 * decl.c (java_expand_body): Kill.
1812 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
1813
18142007-09-06 Tom Tromey <tromey@redhat.com>
1815
1816 * jcf-parse.c (parse_class_file): Re-enter the current file.
1817
18182007-09-07 Roman Zippel <zippel@linux-m68k.org>
1819
1820 * boehm.c (mark_reference_fields): Move misaligned pointer check
1821 after JREFERENCE_TYPE_P test
1822
18232007-09-06 Roman Zippel <zippel@linux-m68k.org>
1824
1825 * boehm.c (mark_reference_fields): Don't use bitmap as gc_descr
1826 if pointer is misaligned.
1827
18282007-09-06 Tom Tromey <tromey@redhat.com>
1829
1830 * lang.c (java_post_options): Update.
1831 * jcf-parse.c (set_source_filename): Update.
1832 (give_name_to_class): Update.
1833 (jcf_parse): Update.
1834 (duplicate_class_warning): Update.
1835 (parse_class_file): Update.
1836 (java_parse_file): Update.
1837 * expr.c (expand_byte_code): Update.
1838
18392007-09-05 Sandra Loosemore <sandra@codesourcery.com>
1840
1841 * decl.c (finish_method): Use set_cfun.
1842
18432007-09-04 Andrew Haley <aph@redhat.com>
1844
1845 * decl.c (java_init_decl_processing): Call "__cxa_end_cleanup"
1846 when using the ARM EABI.
1847
18482007-09-03 Daniel Jacobowitz <dan@codesourcery.com>
1849
1850 * Make-lang.in (jvspec.o): Remove SHLIB_MULTILIB.
1851
18522007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1853
1854 * jcf-parse.c (read_class, java_parse_file): Supply a TYPE for
1855 CONST_CAST.
1856 * jcf.h (JCF_FINISH): Likewise.
1857
18582007-08-28 Tom Tromey <tromey@redhat.com>
1859
1860 * Make-lang.in (java.tags): Don't tag '*.y' files.
1861
18622007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1863
1864 * lang.c (java_decl_ok_for_sibcall): Likewise.
1865
18662007-08-21 Paul Brook <paul@codesourcery.com>
1867 Nathan Sidwell <nathan@codesourcery.com>
1868 Mark Mitchell <mark@codesourcery.com>
1869 Joseph Myers <joseph@codesourcery.com>
1870
1871 * jcf-dump.c (version): Use pkgversion_string. Update copyright
1872 date.
1873
18742007-08-20 Richard Guenther <rguenther@suse.de>
1875
1876 * lang.c (java_tree_inlining_walk_subtrees): Remove.
1877 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Remove.
1878
18792007-08-17 Tom Tromey <tromey@redhat.com>
1880
1881 * typeck.c (find_method_in_interfaces): Update.
1882 * jcf-parse.c (load_class): Update.
1883 * java-gimplify.c (java_gimplify_component_ref): Removed.
1884 (java_gimplify_modify_expr): Update. Removed pre_p and post_p
1885 arguments.
1886 (java_gimplify_expr): Update.
1887 * decl.c (java_init_decl_processing): Update.
1888 * class.c (set_constant_value): Update.
1889 (make_class_data): Update.
1890 (finish_class): Update.
1891 (build_static_field_ref): Update.
1892 (is_compiled_class): Update.
1893 (maybe_layout_super_class): Update.
1894 (layout_class): Update.
1895 (layout_class_method): Update.
1896 * java-tree.h (CAN_COMPLETE_NORMALLY): Removed.
1897 (lang_decl_var) <am, final_iud, cif>: Removed fields.
1898 (lang_decl_func) <init_calls_this>: Removed field.
1899 (lang_type) <dot_class, verify_method>: Removed fields.
1900 (FIELD_NESTED_ACCESS): Removed.
1901 (FIELD_NESTED_ACCESS_P): Removed.
1902 (DECL_FIELD_FINAL_IUD): Removed.
1903 (DECL_LOCAL_FINAL_IUD): Removed
1904 (LOCAL_FINAL_P): Removed.
1905 (FINAL_VARIABLE_P): Removed.
1906 (CLASS_FINAL_VARIABLE_P): Removed.
1907 (DECL_BIT_INDEX): Removed.
1908 (DECL_INIT_CALLS_THIS): Removed.
1909 (FIELD_LOCAL_ALIAS): Removed.
1910 (FIELD_LOCAL_ALIAS_USED): Removed.
1911 (FIELD_THISN): Removed.
1912 (DECL_FUNCTION_INIT_TEST_CLASS): Removed.
1913 (LOCAL_CLASS_INITIALIZATION_FLAG): Removed.
1914 (LOCAL_CLASS_INITIALIZATION_FLAG_P): Removed.
1915 (TYPE_DOT_CLASS): Removed.
1916 (TYPE_VERIFY_METHOD): Removed.
1917 (ID_CLASSDOLLAR_P): Removed.
1918 (enum java_tree_index) <JTI_CLASSDOLLAR_IDENTIFIER_NODE>:
1919 Removed.
1920 (classdollar_identifier_node): Removed.
1921 (TYPE_UNKNOWN): Removed.
1922 (CLASS_FROM_SOURCE_P): Removed.
1923 * expr.c (build_jni_stub): Update.
1924 (force_evaluation_order): Update.
1925 (build_java_empty_stmt): Update.
1926 (build_class_init): Update.
1927 (java_stack_swap): Update.
1928 (build_jni_stub): Update.
1929
19302007-08-17 Tom Tromey <tromey@redhat.com>
1931
1932 * java-tree.h (LABEL_TYPE_STATE): Removed.
1933 (load_type_state): Removed.
1934 (LABEL_PC): Removed.
1935 (LABEL_VERIFIED): Removed.
1936 (type_states): Declare.
1937 * expr.c (type_states): New global.
1938 (load_type_state): Now static. Use type_states. Changed
1939 argument.
1940 (lookup_label): Don't set LABEL_PC.
1941 (expand_byte_code): Don't use LABEL_VERIFIED.
1942 (note_instructions): Initialize type_states.
1943 * verify-glue.c (vfy_note_stack_depth): Rewrote.
1944 (vfy_note_stack_type): Use type_states.
1945 (vfy_note_local_type): Likewise.
1946
19472007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1948
1949 * jcf-parse.c (read_class, java_parse_file): Use CONST_CAST.
1950 * jcf.h (JCF_FINISH): Likewise.
1951
19522007-07-31 Nick Clifton <nickc@redhat.com>
1953
1954 * java-gimplify.c: Change copyright header to refer to version 3
1955 of the GNU General Public License and to point readers at the
1956 COPYING3 file and the FSF's license web page.
1957 * typeck.c, lang-specs.h, mangle_name.c, jcf-dump.c, class.c,
1958 decl.c, config-lang.in, jcf-parse.c, constants.c, Make-lang.in,
1959 resource.c, except.c, builtins.c, jvspec.c, java-tree.def,
1960 javaop.def, jcf-path.c, verify-glue.c, jcf-depend.c, lang.opt,
1961 jcf-reader.c, mangle.c, zextract.c, jcf-io.c, jcf.h, zipfile.h,
1962 verify.h, java-except.h, win32-host.c, expr.c, jvgenmain.c,
1963 parse.h, lang.c, java-tree.h, javaop.h, boehm.c: Likewise.
1964
19652007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1966
1967 * jcf-io.c (find_class): Fix -Wcast-qual warnings.
1968
19692007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1970
1971 * lang.c (java_get_callee_fndecl): Constify.
1972
19732007-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1974
1975 * mangle.c (set_type_package_list): Constify.
1976 * verify-glue.c (vfy_make_string): Delete.
1977 * verify.h (vfy_make_string): Likewise.
1978
19792007-07-26 Tom Tromey <tromey@redhat.com>
1980
1981 * java-tree.h (push_labeled_block, pop_labeled_block): Remove.
1982 (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
1983 EXIT_BLOCK_LABELED_BLOCK): Likewise.
1984 * lang.c (java_tree_inlining_walk_subtrees): Update.
1985 (java_dump_tree): Likewise.
1986 * java-tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRY_EXPR):
1987 Remove.
1988 * decl.c (push_labeled_block, pop_labeled_block): Remove.
1989 * java-gimplify.c (java_gimplify_labeled_block_expr,
1990 java_gimplify_exit_block_expr, java_gimplify_try_expr): Remove.
1991 (java_gimplify_expr): Update.
1992
19932007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1994
1995 * class.c (java_treetreehash_hash, java_treetreehash_compare):
1996 Constify.
1997 * expr.c (type_assertion_eq): Likewise.
1998 * jcf-io.c (compare_path): Likewise.
1999 * jcf-parse.c (cmpstringp): Likewise.
2000 * verify-impl.c (get_one_type, compute_argument_types,
2001 compute_return_type): Likewise.
2002
20032007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2004
2005 PR target/32462
2006 PR libgcj/32465
2007 * class.c (hide): Wrap in HAVE_GAS_HIDDEN.
2008
20092007-07-12 Richard Guenther <rguenther@suse.de>
2010
2011 * expr.c (expand_java_return): RETURN_EXPR has void type.
2012 (build_jni_stub): Likewise. Use a comparison against zero
2013 for null-pointer test in COND_EXPR.
2014 (build_field_ref): Build POINTER_PLUS_EXPR with correct
2015 type. Convert result instead.
2016 (build_invokevirtual): Likewise.
2017
20182007-07-09 Geoffrey Keating <geoffk@apple.com>
2019
2020 PR 32617
2021 * lang.c (java_init): Remove setting of force_align_functions_log.
2022 * class.c (add_method_1): Set DECL_ALIGN of non-static method
2023 to cope with ptrmemfunc_vbit_in_pfn.
2024
20252007-07-03 David Daney <ddaney@avtrex.com>
2026
2027 * java/Make-lang.in (doc/gcj.info): Add $(gcc_docdir) to
2028 include path.
2029 (doc/gcj.dvi): Same.
2030 (doc/gcj.pdf): Same.
2031 (java/index.html): Same.
2032
20332007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
2034
2035 * class.c (make_class_data): Build the index in sizetype.
2036 Use POINTER_PLUS_EXPR instead of PLUS_EXPR when
2037 adding to a pointer type.
2038 (build_symbol_entry): Likewise.
2039 * expr.c (build_java_arrayaccess): Likewise.
2040 (build_field_ref): Likewise.
2041 (build_known_method_ref): Likewise.
2042 (build_invokevirtual): Likewise.
2043 * except.c (build_exception_object_ref): Do a
2044 NEGATIVE and then a POINTER_PLUS_EXPR instead
2045 of a MINUS_EXPR.
2046
20472007-06-11 Rafael Ávila de Espíndola <espindola@google.com>
2048
2049 * typeck.c (java_signed_type): Remove.
2050 * lang.c (LANG_HOOKS_SIGNED_TYPE): Remove.
2051 * java-tree.h (java_signed_type): Remove.
2052
20532007-05-18 Geoffrey Keating <geoffk@apple.com>
2054
2055 * jcf-dump.c (HANDLE_MAGIC): Use 'unsigned long' for %lx.
2056 (print_constant): Likewise.
2057
20582007-05-14 Rafael Ávila de Espíndola <espindola@google.com>
2059
2060 * expr.c (build_java_binop): Use unsigned_type_for instead of
2061 java_unsigned_type.
2062 * java-tree.h (java_unsigned_type): Remove.
2063 * lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
2064 * typeck.c (java_unsigned_type): Remove.
2065
20662007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
2067
2068 * java-tree.h (lang_tree_node): Use GENERIC_NEXT
2069 instead of checking GIMPLE_STMT_P in chain_next.
2070
20712007-04-06 Colin Walters <walters@redhat.com>
2072
2073 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161701
2074 * jcf-io.c (open_class): Copy 'filename'.
2075
20762007-04-03 Andrew Haley <aph@redhat.com>
2077
2078 * jvgenmain.c (main): Change main to use class$, not class$$.
2079 (do_mangle_classname): Likewise.
2080 * class.c (hide): New function.
2081 (add_field): Hide everything that shouldn't be visible outside a
2082 DSO.
2083 (build_static_class_ref): Likewise.
2084 (build_classdollar_field): Likewise.
2085 (make_class_data): Likewise.
2086 (layout_class_method): Likewise.
2087 * expr.c (special_method_p): New function.
2088
2089 * class.c (push_class): Don't bogusly guess the source filename.
2090 * jcf-parse.c (give_name_to_class): Don't set input_location from
2091 DECL_ARTIFICIAL decls.
2092
20932007-03-30 Rafael Ávila de Espíndola <espindola@google.com>
2094
2095 * typeck.c (java_signed_or_unsigned_type): Removed.
2096 (java_signed_type): use get_signed_or_unsigned_type instead of
2097 java_signed_or_unsigned_type.
2098 (java_unsigned_type): Ditto.
2099 * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Removed.
2100 * java-tree.h (java_signed_or_unsigned_type): Removed.
2101
21022007-03-26 Tom Tromey <tromey@redhat.com>
2103
2104 * Make-lang.in (JAVA_MANFILES): Removed grmiregistry.1.
2105 (java.maintainer-clean): Likewise.
2106 (java.install-man): Likewise.
2107 (.INTERMEDIATE): Removed grmiregistry.pod.
2108 (grmiregistry.pod): Removed.
2109 * gcj.texi (Invoking gcjh): Removed.
2110 (Invoking gjnih): Likewise.
2111 (Invoking grmiregistry): Likewise.
2112 (direntry): Updated.
2113 (Top): Likewise.
2114 (which-gcj): Removed.
2115
21162007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2117
2118 * Make-lang.in: Add install-pdf target as copied from
2119 automake v1.10 rules.
2120
21212007-02-27 Brooks Moses <brooks.moses@codesourcery.com>
2122
2123 * gcj.texi: Standardize title page.
2124
21252007-02-18 Kazu Hirata <kazu@codesourcery.com>
2126
2127 * class.c: Fix a comment typo.
2128
21292007-02-15 Sandra Loosemore <sandra@codesourcery.com>
2130 Brooks Moses <brooks.moses@codesourcery.com>
2131 Lee Millward <lee.millward@codesourcery.com>
2132
2133 * java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
2134 of build3.
2135 (BUILD_MONITOR_EXIT): Likewise.
2136
2137 * java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
2138 (java_gimplify_modify_expr): Likewise.
2139
2140 * class.c (cache_this_class_ref): Use build_call_expr.
2141 (build_static_field_ref): Likewise.
2142 (emit_indirect_register_classes): Likewise.
2143 (emit_register_classes): Likewise.
2144
2145 * resource.c (write_resource_constructor): Use build_call_expr.
2146
2147 * builtins.c (builtin_creator_function): Change interpretation of
2148 the second parameter to be the whole CALL_EXPR instead of the arglist.
2149 (max_builtin): Tweak parameter list. Use new CALL_EXPR accessors.
2150 (min_builtin): Likewise.
2151 (abs_builtin): Likewise.
2152 (java_build_function_call_expr): Likewise.
2153 (convert_real): Likewise.
2154 (UNMARSHAL3): Likewise.
2155 (UNMARSHAL4): Likewise.
2156 (UNMARSHAL5): Likewise.
2157 (build_arglist_for_builtin): Delete. Fix callers to use
2158 build_call_expr instead.
2159 (putObject_builtin): Tweak parameter list. Use new CALL_EXPR
2160 accessors.
2161 (compareAndSwapInt_builtin): Likewise.
2162 (compareAndSwapLong_builtin): Likewise.
2163 (compareAndSwapObject_builtin): Likewise.
2164 (putVolatile_builtin): Likewise.
2165 (getVolatile_builtin): Likewise.
2166 (VMSupportsCS8_builtin): Likewise.
2167 (check_for_builtin): Pass entire CALL_EXPR to builtin expander
2168 instead of arglist.
2169
2170 * expr.c (build_java_athrow): Use build_call_nary instead of build3.
2171 (build_java_throw_out_of_bounds_exception): Likewise.
2172 (java_check_reference): Likewise.
2173 (build_java_arraystore_check): Likewise.
2174 (build_newarray): Likewise.
2175 (build_anewarray): Likewise.
2176 (expand_java_multinewarray): Use build_call_list instead of build3.
2177 (build_java_monitor): Use build_call_nary instead of build3.
2178 (java_create_object): Likewise.
2179 (expand_java_NEW): Likewise.
2180 (build_instanceof): Likewise.
2181 (expand_java_CHECKCAST): Likewise.
2182 (build_java_soft_divmod): Likewise.
2183 (build_java_binop): Likewise.
2184 (build_field_ref): Likewise.
2185 (build_class_init): Likewise.
2186 (rewrite_arglist_getcaller): Use build_call_expr.
2187 (build_invokeinterface): Use build_call_nary instead of build3.
2188 (expand_invoke): Use build_call_list instead of build3.
2189 (build_jni_stub): Use build_call_nary, build_call_list, or
2190 build_call_expr instead of build3.
2191 (expand_java_field_op): Use build_call_expr instead of build3.
2192 (force_evaluation_order): Use new CALL_EXPR accessors.
2193
2194 * lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
2195
21962007-02-15 David Daney <ddaney@avtrex.com>
2197
2198 * Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1.
2199 (java.maintainer-clean):Add gc-analyze.1.
2200 (.INTERMEDIATE): Add gc-analyze.pod.
2201 (gc-analyze.pod): New rule.
2202 (java.install-man): Install gc-analyze.1
2203 * gcj.texi: Add new section for the gc-analyze program.
2204
22052007-02-07 Andrew Haley <aph@redhat.com>
2206
2207 * class.c (uncache_this_class_ref): New.
2208 * expr.c (build_jni_stub): Initialize the class.
2209 (expand_byte_code): Call uncache_this_class_ref after generating
2210 code.
2211
22122007-02-06 Tom Tromey <tromey@redhat.com>
2213
2214 PR java/30714:
2215 * jvspec.c (lang_specific_driver): Check for the '-' in '-I'.
2216
22172007-02-03 Kazu Hirata <kazu@codesourcery.com>
2218
2219 * java-tree.h, javaop.def, jcf-parse.c: Fix comment typos.
2220
22212007-02-02 Andrew Haley <aph@redhat.com>
2222
2223 * expr.c (expand_byte_code): Call cache_this_class_ref() and
2224 cache_cpool_data_ref().
2225 Set TYPE_CPOOL_DATA_REF.
2226 (cache_cpool_data_ref): New function.
2227 * constants.c (build_ref_from_constant_pool): Remove special-case
2228 code for flag_indirect_classes.
2229 (build_constant_data_ref): Move special-case code for
2230 flag_indirect_classes here from build_ref_from_constant_pool.
2231 * decl.c (finish_method): Move class initialization from here to
2232 cache_this_class_ref.
2233 * class.c (cache_this_class_ref): New function.
2234 (build_class_ref): Use this_classdollar for the ouput class.
2235
22362007-02-02 David Daney <ddaney@avtrex.com>
2237
2238 * class.c (is_compiled_class): Move check to avoid reloading
2239 current class.
2240 (layout_class_method): Don't calculate DECL_EXTERNAL if it is
2241 already set.
2242
22432007-02-01 Andrew Haley <aph@redhat.com>
2244
2245 PR java/30641
2246 * jcf-parse.c (jcf_parse): Clear the field_offsets bitmap.
2247
22482007-01-31 Kazu Hirata <kazu@codesourcery.com>
2249
2250 * class.c, jcf-parse.c: Fix comment typos.
2251
22522007-01-30 Tom Tromey <tromey@redhat.com>
2253
2254 * gcj.texi (Strings): Fix documentation for JvNewString.
2255
22562007-01-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2257
2258 * gcj.texi (Invoking gcjh, Invoking gjnih, Arrays): Fix some
2259 typos.
2260
22612007-01-30 Ben Elliston <bje@au.ibm.com>
2262
2263 * jvspec.c (lang_specific_driver): Remove unused classpath_args.
2264
22652007-01-29 Tom Tromey <tromey@redhat.com>
2266
2267 PR java/30607:
2268 * jvspec.c (lang_specific_driver): Handle separate -I argument.
2269 * lang.opt (-I): Add 'Separate'.
2270
22712007-01-29 Andrew Haley <aph@redhat.com>
2272
2273 * class.c (add_method_1): Mark fndecl as external unless we are
2274 compiling it into this object file.
2275
22762007-01-24 Andrew Haley <aph@redhat.com>
2277
2278 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): current_class is a
2279 type node, not a decl, so use TYPE_SYNTHETIC not CLASS_SYNTHETIC.
2280
22812007-01-22 Andrew Haley <aph@redhat.com>
2282
2283 * builtins.c (VMSupportsCS8_builtin): New function.
2284
22852007-01-23 Andrew Pinski <pinskia@gmail.com>
2286
2287 PR java/30454
2288 * jcf-io.c (opendir_in_zip): Close the file
2289 and free zipf before returning after an error.
2290
22912007-01-16 Tom Tromey <tromey@redhat.com>
2292
2293 * java-tree.def: Added copyright header.
2294
22952007-01-15 Tom Tromey <tromey@redhat.com>
2296
2297 * lang.c (dump_compound_expr) <EXPR_WITH_FILE_LOCATION>: Removed
2298 case.
2299 * java-gimplify.c (java_gimplify_expr) <EXPR_WITH_FILE_LOCATION>:
2300 Removed case.
2301 * java-tree.h (EXPR_WFL_EMIT_LINE_NOTE): Removed.
2302 (EXPR_WFL_NODE): Likewise.
2303 (EXPR_WFL_LINECOL): Likewise.
2304 (EXPR_WFL_FILENAME): Likewise.
2305 (EXPR_WFL_LINENO): Likewise.
2306 (build_expr_wfl, expr_add_location): Don't declare.
2307 (build_unknown_wfl): Removed.
2308 (EXPR_WFL_FILENAME_NODE): Removed.
2309 (EXPR_WFL_COLNO): Removed.
2310 (EXPR_WFL_SET_LINECOL): Removed.
2311 (DECL_FUNCTION_WFL): Removed.
2312 (DECL_FIELD_FINAL_WFL): Removed.
2313 (struct lang_decl_func) <wfl>: Removed field.
2314 <called_constructor>: Likewise.
2315 <inner_access>: Likewise.
2316 (struct lang_decl_var) <wfl>: Removed field.
2317 (DECL_CONSTRUCTOR_CALLS): Removed.
2318 (DECL_FUNCTION_ACCESS_DECL): Likewise.
2319 (DECL_FUNCTION_INNER_ACCESS): Likewise.
2320 (DECL_SPECIFIC_COUNT): Likewise.
2321 * java-tree.def (EXPR_WITH_FILE_LOCATION): Removed.
2322 * expr.c (build_expr_wfl): Removed.
2323 (expr_add_location): Likewise.
2324
23252007-01-12 Tom Tromey <tromey@redhat.com>
2326
2327 * jcf-dump.c (main): Updated call to find_class.
2328 * lang.c (java_init): Removed dead code.
2329 * jcf-parse.c (read_class): Don't use java_source field. Removed
2330 dead code.
2331 (parse_zip_file_entries): Don't use java_source field.
2332 (process_zip_dir): Likewise.
2333 (jcf_parse): Removed dead code.
2334 (java_parse_file): Likewise.
2335 (read_class): Updated call to find_class.
2336 * jcf-io.c (find_class): Don't use java_source field. Removed
2337 'source_ok' argument, .java logic.
2338 * jcf.h (JCF) <java_source>: Removed field.
2339 (JCF_ZERO): Updated. (find_class): Updated.
2340 * decl.c: Removed dead code.
2341 * class.c: Removed dead code.
2342
23432007-01-11 Tom Tromey <tromey@redhat.com>
2344
2345 * typeck.c (convert): Don't use flag_emit_class_files.
2346 * lang.c (java_post_options): Don't use flag_emit_class_files.
2347 (java_handle_option): Don't use flag_extraneous_semicolon or
2348 flag_redundant.
2349 * jcf-parse.c (HANDLE_CONSTANTVALUE): Don't use
2350 flag_emit_class_files.
2351 (load_class): Likewise.
2352 * java-tree.h (flag_emit_class_files): Don't declare.
2353 (STATIC_CLASS_INIT_OPT_P): Don't use flag_emit_class_files.
2354 (flag_extraneous_semicolon): Don't declare.
2355 (flag_not_overriding): Likewise.
2356 (flag_static_local_jdk1_1): Likewise.
2357 (flag_redundant): Likewise.
2358 * expr.c (build_newarray): Don't use flag_emit_class_files.
2359 * class.c (DEFAULT_ENABLE_ASSERT): Don't use
2360 flag_emit_class_files.
2361 (build_class_ref): Likewise.
2362 * builtins.c (check_for_builtin): Don't use
2363 flag_emit_class_files.
2364
23652007-01-10 Tom Tromey <tromey@redhat.com>
2366
2367 * lang.c (java_can_use_bit_fields_p): Removed.
2368 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
2369
23702007-01-09 Andrew Haley <aph@redhat.com>
2371
2372 * expr.c (build_java_arrayaccess): Rewrite to generate array
2373 access in canonical form.
2374 (expand_java_arraystore): Use build_fold_addr_expr() on address of
2375 array access.
2376
23772007-01-03 Andrew Haley <aph@redhat.com>
2378
2379 PR java/28754
2380 * expr.c (expand_java_field_op): If we're initializing a field's
2381 declaring interface we should not also initialize the class
2382 context in which it was referenced.
2383
23842007-01-02 Tom Tromey <tromey@redhat.com>
2385
2386 * java-tree.h (compiling_from_source, current_encoding,
2387 JTI_FINIT_IDENTIFIER_NODE, JTI_INSTINIT_IDENTIFIER_NODE,
2388 JTI_LENGTH_IDENTIFIER_NODE, JTI_SUPER_IDENTIFIER_NODE,
2389 JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE,
2390 JTI_WFL_OPERATOR): Removed
2391 (finit_identifier_node, instinit_identifier_node,
2392 length_identifier_node, super_identifier_node,
2393 continue_identifier_node, access0_identifier_node, wfl_operator):
2394 Removed.
2395 (cyclic_inheritance_report,
2396 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND,
2397 DECL_FUNCTION_NAP, DECL_FUNCTION_SYNTHETIC_CTOR,
2398 DECL_FIXED_CONSTRUCTOR_P): Removed.
2399 (struct lang_decl_func) <smic, nap, synthetic_ctor, fixed_ctor>:
2400 Removed.
2401 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST, TYPE_II_STMT_LIST,
2402 TYPE_IMPORT_LIST, TYPE_IMPORT_DEMAND_LIST): Removed.
2403 (struct lang_type) <finit_stmt_list, clinit_stmt_list, ii_block,
2404 import_list, import_demand_list>: Removed.
2405 (java_layout_seen_class_methods, init_jcf_parse, init_src_parse,
2406 cxx_keyword_p): Removed.
2407 (DECL_FINIT_P, DECL_INSTINIT_P, ID_FINIT_P, ID_INSTINIT_P,
2408 TYPE_UNUSED, TYPE_UNDERFLOW, TYPE_UNEXPECTED,
2409 CLASS_ACCESS0_GENERATED_P, CLASS_HAS_FINIT_P,
2410 IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
2411 IS_AN_IMPORT_ON_DEMAND_P, COMPOUND_ASSIGN_P, SWITCH_HAS_DEFAULT,
2412 PRIMARY_P, MODIFY_EXPR_FROM_INITIALIZATION_P,
2413 CLASS_METHOD_CHECKED_P, FOR_LOOP_P, ANONYMOUS_CLASS_P,
2414 LOCAL_CLASS_P, ARG_FINAL_P, SUPPRESS_UNREACHABLE_ERROR,
2415 RESOLVE_PACKAGE_NAME_P, RESOLVE_TYPE_NAME_P, IS_BREAK_STMT_P,
2416 IS_CRAFTED_STRING_BUFFER_P, IS_INIT_CHECKED, CALL_USING_SUPER,
2417 NESTED_FIELD_ACCESS_IDENTIFIER_P, TOPLEVEL_CLASS_DECL_P,
2418 PURE_INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
2419 CALL_CONSTRUCTOR_P, CALL_EXPLICIT_CONSTRUCTOR_P,
2420 CALL_THIS_CONSTRUCTOR_P, CALL_SUPER_CONSTRUCTOR_P,
2421 FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, BLOCK_IS_IMPLICIT,
2422 BLOCK_EMPTY_P, IS_UNCHECKED_EXCEPTION_P, java_error_count,
2423 java_parse_abort_on_error, extract_field_decl): Removed.
2424 (finput): Declare.
2425 * lang.c: (compiling_from_source, current_encoding): Removed.
2426 (java_handle_option): Ignore -fencoding.
2427 * parse.h: Don't include lex.h.
2428 (java_error_count, int_fits_type_p, stabilize_reference, RULE,
2429 RECOVERED, DRECOVERED, RECOVER, DRECOVER, YYERROR_NOW,
2430 YYNOT_TWICE, CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
2431 INTERFACE_MODIFIERS, INTERFACE_INNER_MODIFIERS,
2432 INTERFACE_METHOD_MODIFIERS, INTERFACE_FIELD_MODIFIERS,
2433 MODIFIER_WFL, THIS_MODIFIER_ONLY, parse_error_context,
2434 ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, exit_java_complete_class,
2435 CLASS_OR_INTERFACE, GET_REAL_TYPE, GET_TYPE_NAME,
2436 OBSOLETE_MODIFIER_WARNING, OBSOLETE_MODIFIER_WARNING2,
2437 BUILD_PTR_FROM_NAME, INCOMPLETE_TYPE_P,
2438 JAVA_MAYBE_GENERATE_DEBUG_INFO, JBSC_TYPE_P, JSTRING_P,
2439 JNULLP_TYPE_P, JDECL_P, TYPE_INTERFACE_P, TYPE_CLASS_P,
2440 IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS,
2441 MANGLE_OUTER_LOCAL_VARIABLE_NAME,
2442 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID,
2443 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING,
2444 SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
2445 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP,
2446 AIPL_FUNCTION_CREATION, AIPL_FUNCTION_DECLARATION,
2447 AIPL_FUNCTION_CTOR_INVOCATION, AIPL_FUNCTION_FINIT_INVOCATION,
2448 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
2449 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED,
2450 LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
2451 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
2452 LOOP_EXPR_BODY_BODY_EXPR, PUSH_LABELED_BLOCK, POP_LABELED_BLOCK,
2453 PUSH_LOOP, POP_LOOP, PUSH_EXCEPTIONS, POP_EXCEPTIONS,
2454 IN_TRY_BLOCK_P, EXCEPTIONS_P, ANONYMOUS_ARRAY_BASE_TYPE,
2455 ANONYMOUS_ARRAY_DIMS_SIG, ANONYMOUS_ARRAY_INITIALIZER,
2456 INVOKE_STATIC, INVOKE_NONVIRTUAL, INVOKE_SUPER, INVOKE_INTERFACE,
2457 INVOKE_VIRTUAL, jdep_code, struct _jdep, JDEP_DECL, JDEP_DECL_WFL,
2458 JDEP_KIND, JDEP_WFL, JDEP_MISC, JDEP_ENCLOSING, JDEP_CLASS,
2459 JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, JDEP_TO_RESOLVE,
2460 JDEP_RESOLVED_DECL, JDEP_RESOLVED, JDEP_RESOLVED_P, struct
2461 jdeplist_s, jdeplists, CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN,
2462 JDEP_INSERT, SET_TYPE_FOR_RESOLUTION, WFL_STRIP_BRACKET,
2463 STRING_STRIP_BRACKETS, PROMOTE_RECORD_IF_COMPLETE,
2464 BLOCK_CHAIN_DECL, GET_CURRENT_BLOCK, EXPR_WFL_GET_LINECOL,
2465 EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION, QUAL_DECL_TYPE,
2466 GET_SKIP_TYPE, COMPLETE_CHECK_OP, COMPLETE_CHECK_OP_0,
2467 COMPLETE_CHECK_OP_1, COMPLETE_CHECK_OP_2, BUILD_APPEND,
2468 BUILD_STRING_BUFFER, BUILD_THROW, SET_WFL_OPERATOR,
2469 PATCH_METHOD_RETURN_ERROR, CHECK_METHODS, CLEAR_DEPRECATED,
2470 CHECK_DEPRECATED_NO_RESET, CHECK_DEPRECATED, REGISTER_IMPORT,
2471 CURRENT_OSB, struct parser_ctxt, GET_CPC_LIST, CPC_INNER_P,
2472 GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, GET_CPC_DECL_NODE,
2473 GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
2474 GET_ENCLOSING_CPC_CONTEXT, INNER_ENCLOSING_SCOPE_CHECK, PUSH_CPC,
2475 PUSH_ERROR, POP_CPC, DEBUG_CPC, CPC_INITIALIZER_LIST,
2476 CPC_STATIC_INITIALIZER_LIST, CPC_INSTANCE_INITIALIZER_LIST,
2477 CPC_INITIALIZER_STMT, CPC_STATIC_INITIALIZER_STMT,
2478 CPC_INSTANCE_INITIALIZER_STMT, SET_CPC_INITIALIZER_STMT,
2479 SET_CPC_STATIC_INITIALIZER_STMT,
2480 SET_CPC_INSTANCE_INITIALIZER_STMT, JAVA_NOT_RADIX10_FLAG,
2481 java_complete_class, java_check_circular_reference,
2482 java_fix_constructors, java_layout_classes, java_reorder_fields,
2483 java_method_add_stmt, java_get_line_col, reset_report,
2484 java_init_lex, yyparse, java_parse, yyerror, java_expand_classes,
2485 java_finish_classes, ctxp, ctxp_for_generation,
2486 ctxp_for_generation_last): Removed.
2487 * expr.c (force_evaluation_order): Don't mention NEW_CLASS_EXPR.
2488 * mangle.c (utf8_cmp): New function.
2489 (cxx_keywords): New global.
2490 (cxx_keyword_p): New function.
2491 * jvspec.c (JAVA_START_CHAR): Removed obsolete comment.
2492 * java-tree.def (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR,
2493 NEW_ANONYMOUS_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
2494 CASE_EXPR, DEFAULT_EXPR, JAVA_CATCH_EXPR, SYNCHRONIZED_EXPR,
2495 THROW_EXPR, CONDITIONAL_EXPR, INSTANCEOF_EXPR, NEW_ARRAY_INIT,
2496 CLASS_LITERAL, JAVA_EXC_OBJ_EXPR): Removed.
2497 * Make-lang.in (java.srcextra): Do nothing.
2498 (parse.c, keyword.h, gt-java-parse.h): Removed targets.
2499 (JAVA_OBJS): Don't mention deleted files.
2500 (java.mostlyclean): Likewise.
2501 (java.clean): Likewise.
2502 (JAVA_LEX_C): Removed.
2503 (buffer.o, check-init.o, parse.o): Remove unused targets.
2504 (typeck.o): Updated.
2505 * jcf-parse.c (read_class): Comment out unused code.
2506 (java_layout_seen_class_methods): New function.
2507 (parse_source_file_1, parse_source_file_2, parse_source_file_3):
2508 Removed.
2509 (java_parse_file): Comment out unused code. Don't use 'ctxp'.
2510 (init_jcf_parse): Removed.
2511 * config-lang.in (gtfiles): Remove deleted files.
2512 * decl.c (java_init_decl_processing): Don't initialize
2513 finit_identifier_node, instinit_identifier_node,
2514 length_identifier_node, super_identifier_node,
2515 continue_identifier_node, access0_identifier_node. Don't call
2516 init_jcf_parse.
2517 * class.c (cyclic_inheritance_report): New global.
2518 (add_method_1): Don't use
2519 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND.
2520 (maybe_layout_super_class): Comment out code.
2521 (safe_layout_class): New function.
2522 * java-gimplify.c (java_gimplify_expr): Removed CASE_EXPR,
2523 DEFAULT_EXPR, NEW_ARRAY_INIT, JAVA_CATCH_EXPR, JAVA_EXC_OBJ_EXPR,
2524 UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_ANONYMOUS_ARRAY_EXPR,
2525 NEW_CLASS_EXPR, SYNCHRONIZED_EXPR, CONDITIONAL_EXPR,
2526 INSTANCEOF_EXPR, CLASS_LITERAL, THIS_EXPR.
2527 (java_gimplify_case_expr): Removed.
2528 (java_gimplify_default_expr): Likewise.
2529 (java_gimplify_new_array_init): Likewise.
2530 * parse.y: Removed.
2531 * keyword.gperf, keyword.h: Removed.
2532 * chartables.h: Removed.
2533 * check-init.c: Removed.
2534 * buffer.c, buffer.h: Removed.
2535 * convert.h: Removed.
2536 * gen-table.pl: Removed.
2537 * lex.c, lex.h: Removed.
2538
25392007-01-02 Andrew Haley <aph@redhat.com>
2540
2541 * expr.c (expand_java_arraystore): Make sure we perform a bounds
2542 check at runtime before we perform a type check.
2543
25442006-12-19 Andrew Haley <aph@redhat.com>
2545
2546 * decl.c: Bump minor BC ABI version.
2547
25482006-12-13 Gary Benson <gbenson@redhat.com>
2549
2550 * jcf-depend.c (jcf_dependency_add_file): Mark filename unused.
2551
25522006-12-12 Tom Tromey <tromey@redhat.com>
2553
2554 * lang-specs.h: Pass -M options to jc1.
2555 * jcf-depend.c (jcf_dependency_add_file): Don't emit
2556 dependencies.
2557
25582006-12-07 Mohan Embar <gnustuff@thisiscool.com>
2559
2560 * jcf-path.c (jcf_path_compute): Use platform PATH_SEPARATOR.
2561
25622006-12-06 Mohan Embar <gnustuff@thisiscool.com>
2563
2564 * lang-specs.h: Pass '%U'-based options as separate arguments.
2565
25662006-12-05 Tom Tromey <tromey@redhat.com>
2567
2568 PR java/29495:
2569 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Mark fields and
2570 classes as well.
2571 * class.c (add_field): Handle ACC_SYNTHETIC.
2572 (add_method_1): Likewise. Handle bridge and varargs.
2573 (get_access_flags_from_decl): Handle synthetic, bridge, varargs,
2574 annotation.
2575 (set_class_decl_access_flags): Handle synthetic and annotation.
2576 * java-tree.h (METHOD_BRIDGE): New macro.
2577 (METHOD_VARARGS): Likewise.
2578 (TYPE_SYNTHETIC): Likewise.
2579 (TYPE_ANNOTATION): Likewise.
2580 (lang_type): New fields 'synthetic' and 'annotation'.
2581 (lang_decl_func): New fields 'varargs' and 'bridge'.
2582
25832006-12-04 Andrew Haley <aph@redhat.com>
2584
2585 * jcf-parse.c (rewrite_reflection_indexes): Don't do anything if
2586 there's no map.
2587
25882006-11-29 Gary Benson <gbenson@redhat.com>
2589
2590 * expr.c (rewrite_arglist_getcaller): Reorder.
2591
25922006-11-29 Andrew Haley <aph@redhat.com>
2593
2594 * expr.c (rewrite_arglist_getcaller): Remove DECL_INLINE.
2595 * lang.c (java_decl_ok_for_sibcall): Check for DECL_INLINE.
2596
25972006-11-23 Andrew Haley <aph@redhat.com>
2598
2599 * expr.c (rewrite_arglist_getcaller): New.
2600 (rewrite_arglist_getclass): Fix indentation.
2601 (rules): Add gnu.classpath.VMStackWalker.getCallingClass() and
2602 gnu.classpath.VMStackWalker.getCallingClassLoader().
2603 * builtins.c (initialize_builtins): Remove duplicate def'n of
2604 __sync_synchronize.
2605 Add __builtin_return_address.
2606
26072006-11-22 Andrew Haley <aph@redhat.com>
2608
2609 * jcf-reader.c (get_attribute): Mark attr_type unused.
2610
2611 * builtins.c (compareAndSwapObject_builtin): Fix declaration.
2612
26132007-01-08 Richard Guenther <rguenther@suse.de>
2614
2615 * lex.c (do_java_lex): Use build_int_cst_wide_type.
2616 * jcf-parse.c (get_constant): Likewise.
2617
26182006-11-12 Jan Hubicka <jh@suse.cz>
2619
2620 * resource.c (compile_resource_data): Update for new varpool names.
2621 * java/class.c (build_utf8_ref): Likewise.
2622
26232006-11-12 David Daney <ddaney@avtrex.com>
2624
2625 PR java/29805
2626 * typeck.c (build_java_array_type): Increase buffer sizes.
2627
26282006-11-11 Richard Guenther <rguenther@suse.de>
2629
2630 * check-init.c (check_init): Remove handling of FIX_CEIL_EXPR,
2631 FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
2632
26332006-11-06 Andrew Haley <aph@redhat.com>
2634
2635 * java-tree.h (CONSTANT_LazyFlag): New.
2636 * constants.c (build_constants_constructor): Mask CONSTANT_LazyFlag.
2637 * jcf-parse.c (handle_innerclass_attribute): Write attribute to
2638 reflection_data.
2639 (handle_constant): Return 0 for dummy cpool entries.
2640 Handle constants of kind Class.
2641 Handle constants of kind NameAndType.
2642 (handle_enclosingmethod_attribute): New.
2643 (handle_signature_attribute): New.
2644 (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New.
2645 (HANDLE_SIGNATURE_ATTRIBUTE): New.
2646 (handle_constant): Use unmangle_classname()rather than calling
2647 identifier_subst() directly.
2648
26492006-11-02 Andrew Haley <aph@redhat.com>
2650
2651 * java-tree.h (FIELD_ENUM): New.
2652 (lang_decl_var.field_enum): New.
2653 (lang_type.enum_class): New.
2654 (CLASS_ENUM): New.
2655 * class.c (set_class_decl_access_flags): Handle enum types.
2656 (add_field): Handle enum fields.
2657 (get_access_flags_from_decl): Likewise.
2658
2659 * class.c (make_class_data): Put reflection_data into rodata.
2660
26612006-11-01 Andrew Haley <aph@redhat.com>
2662
2663 * jcf-parse.c (field_offsets, bit_obstack): New variables.
2664 (jcf_parse): Write end marker to annotation_data.
2665 (java_parse_file): Create field_offsets bitmap. Destroy it.
2666 (annotation_grow, annotation_rewrite_byte)
2667 (annotation_rewrite_short, annotation_rewrite_int)
2668 (annotation_read_short, annotation_write_byte)
2669 (annotation_write_short, annotation_write_int)
2670 (handle_long_constant, handle_constant, handle_element_value)
2671 (handle_annotation, handle_annotations)
2672 (handle_annotation_attribute, rewrite_reflection_indexes)
2673 (handle_member_annotations, handle_parameter_annotations)
2674 (handle_default_annotation): New functions.
2675 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE)
2676 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE)
2677 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
2678 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
2679 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): New definitions.
2680 * java-tree.h (enum jv_attr_type, enum jv_attr_kind): New.
2681 (TYPE_REFLECTION_DATA): New.
2682 (TYPE_REFLECTION_DATASIZE): New.
2683 * jcf.h (enum cpool_tag): Convert a bunch of #define constants to
2684 an enum.
2685 * jcf-reader.c (get_attribute): Pass field/method index and
2686 attribute type to get_attribute().
2687 * constants.c (find_class_or_string_constant): Make nonstatic.
2688 (cpool_for_class): Likewise.
2689 (build_constants_constructor): Separate string and scalar types.
2690 * class.c (make_class_data): Generate field_indexes permutation.
2691 Pass it to rewrite_reflection_indexes().
2692 (make_class_data): Generate constructor for reflection_data field.
2693
26942006-10-20 Tom Tromey <tromey@redhat.com>
2695
2696 * gcj.texi (Top): Don't mention jv-scan.
2697 (Invoking gcj): Likewise.
2698 (Invoking gcjh): Likewise.
2699 (Invoking gjnih): Likewise.
2700 (Invoking gij): Likewise.
2701 (Invoking gcj-dbtool): Likewise.
2702 (Invoking jv-scan): Removed.
2703 * parse-scan.y: Removed.
2704 * jv-scan.c: Removed.
2705 * config-lang.in (stagestuff): Don't mention jv-scan.
2706 * Make-lang.in (java): Removed jv-scan.
2707 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
2708 (JVSCAN_OBJS): Removed.
2709 (jv-scan$(exeext)): Likewise.
2710 (JAVA_MANFILES): Removed jv-scan.1.
2711 (java.uninstall): Don't mention jv-scan.
2712 (java.mostlyclean): Likewise.
2713 (java.maintainer-clean): Likewise.
2714 (.INTERMEDIATE): Likewise.
2715 (java/jv-scan.o): Removed.
2716 (jv-scan.pod): Likewise.
2717 (java.srcextra): Don't mention parse-scan.c.
2718 (java.mostlyclean): Likewise.
2719 (java/parse-scan.c): Removed.
2720 (java/parse-scan.o-warn): Removed.
2721 (java/parse-scan.o): Removed.
2722
27232006-10-20 Tom Tromey <tromey@redhat.com>
2724
2725 * lang.c (java_handle_option): Don't use
2726 jcf_write_base_directory.
2727 * jcf.h (jcf_write_base_directory): Removed.
2728 * parse.y (java_expand_classes): Don't call write_classfile.
2729 * config-lang.in (gtfiles): Removed jcf-write.c.
2730 * Make-lang.in (JAVA_OBJS): Removed jcf-write.o.
2731 (java/jcf-write.o): Removed.
2732 * jcf-parse.c (parse_class_file): Don't call write_classfile.
2733 * java-tree.h (write_classfile): Removed declaration.
2734 * jcf-write.c: Removed.
2735
27362006-10-20 Tom Tromey <tromey@redhat.com>
2737
2738 * Make-lang.in (java): Removed gjnih, gcjh.
2739 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
2740 (GCJH_OBJS): Removed.
2741 (GJNIH_OBJS): Likewise.
2742 (gjnih$(exeext)): Likewise.
2743 (gcjh$(exeext)): Likewise.
2744 (JAVA_MANFILES): Removed gcjh.1, gjnih.1.
2745 (java.install-common): Don't special case gcjh.
2746 (java.uninstall): Don't mention gcjh, gjnih.
2747 (java.mostlyclean): Likewise.
2748 (java.maintainer-clean): Likewise.
2749 (.INTERMEDIATE): Likewise.
2750 (gcjh.pod): Removed.
2751 (gjnih.pod): Likewise.
2752 (GCJH_TARGET_INSTALL_NAME): Removed.
2753 (java/gjavah-jni.o): Removed.
2754 (java/gjavah.o): Likewise.
2755 * config-lang.in (stagestuff): Removed gjnih, gcjh.
2756 * gjavah.c: Removed.
2757
27582006-10-17 Tom Tromey <tromey@redhat.com>
2759
2760 * jcf-dump.c (print_element_value): Expect a utf8 constant in the
2761 "string" case.
2762
27632006-10-17 Tom Tromey <tromey@redhat.com>
2764
2765 * jvgenmain.c (main): Handle -findirect-dispatch.
2766 * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to
2767 jvgenmain.
2768
27692006-10-06 Andrew Haley <aph@redhat.com>
2770
2771 * builtins.c (compareAndSwapInt_builtin): Check that we really do
2772 have a compare_and_swap builtin.
2773 (compareAndSwapLong_builtin): Likewise.
2774 (compareAndSwapObject_builtin): Likewise.
2775
27762006-10-04 Andrew Haley <aph@redhat.com>
2777
2778 * builtins.c (java_builtins): Add compareAndSwapInt,
2779 compareAndSwapLong, compareAndSwapObject, putOrderedInt,
2780 putOrderedLong, putOrderedObject, putIntVolatile, putLongVolatile,
2781 putObjectVolatile, getObjectVolatile, getIntVolatile,
2782 getLongVolatile, getLong.
2783 (UNMARSHAL3): New macro.
2784 (UNMARSHAL4): Likewise.
2785 (UNMARSHAL5): Likewise.
2786 (build_arglist_for_builtin): New function.
2787 (build_addr_sum, build_check_this): New functions.
2788 (putObject_builtin. compareAndSwapInt_builtin,
2789 compareAndSwapLong_builtin, compareAndSwapObject_builtin,
2790 putVolatile_builtin, getVolatile_builtin): New builtins.
2791
27922006-06-08 Andrew Haley <aph@redhat.com>
2793
2794 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
2795 get_symbol_table_index().
2796 (maybe_rewrite_invocation): Set SPECIAL if we need to access a
2797 private method.
2798 (build_known_method_ref): New arg: special. Pass it to
2799 get_symbol_table_index.
2800 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
2801 the method list.
2802 (build_invokevirtual): New arg: special. Pass it to
2803 get_symbol_table_index.
2804 (expand_invoke): New variable: special.
2805 Pass it to maybe_rewrite_invocation().
2806 Pass it to build_known_method_ref().
2807 * class.c (build_symbol_entry): Add new arg: special. Use it to
2808 build the symbol table conbstructor.
2809 (emit_symbol_table): Extract SPECIAL from the method list and pass
2810 it to build_symbol_entry().
2811 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
2812 special accordingly.
2813
28142006-09-08 Andrew Haley <aph@redhat.com>
2815
2816 * class.c (layout_class_method): Use build_java_signature, not
2817 build_java_argument_signature. Use lookup_java_method, not
2818 lookup_argument_method.
2819
28202006-08-16 Jakub Jelinek <jakub@redhat.com>
2821 Bryce McKinlay <bryce@mckinlay.net.nz>
2822
2823 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
2824
28252006-07-18 Tom Tromey <tromey@redhat.com>
2826
2827 * lang.opt: Added missing -W options.
2828
28292006-07-12 Tom Tromey <tromey@redhat.com>
2830
2831 PR java/28329:
2832 * lang-specs.h: Pass '%U'-based options as separate arguments.
2833 Use -faux-classpath.
2834 * lang.c (java_handle_option): Handle OPT_faux_classpath.
2835 * lang.opt (faux-classpath): New option.
2836
28372006-07-07 Tom Tromey <tromey@redhat.com>
2838
2839 * class.c (make_class_data): Set value for reflection_data field.
2840 * decl.c (java_init_decl_processing): Add reflection_data field.
2841
28422006-07-07 Tom Tromey <tromey@redhat.com>
2843
2844 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): Declare locals
2845 earlier.
2846 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
2847
28482006-07-07 Andrew Haley <aph@redhat.com>
2849
2850 * jcf-parse.c (set_source_filename): Don't check for
2851 CLASS_FROM_CURRENTLY_COMPILED_P.
2852 Remove // comments.
2853
28542006-07-07 Andrew Haley <aph@redhat.com>
2855
2856 * java-tree.h (java_read_sourcefilenames): Declare.
2857 * lang.c (java_handle_option): Call java_read_sourcefilenames().
2858 * lang.opt (fsource-filename): New opt.
2859 * lang-specs.h: Add -fsource-filename.
2860 * jcf-parse.c (num_files, filenames): New variables.
2861 (reverse, cmpstringp, java_read_sourcefilenames,
2862 find_sourcefile): New.
2863 (set_source_filename): Call find_sourcefile to find the real name
2864 of a source file.
2865
28662006-06-27 Tom Tromey <tromey@redhat.com>
2867
2868 * jcf-reader.c (get_attribute): Handle EnclosingMethod,
2869 Signature, LocalVariableTypeTable, annotation attributes.
2870 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New macro.
2871 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
2872 (HANDLE_START_FIELD): Mention 'descriptor', not 'signature'.
2873 (HANDLE_METHOD): Likewise.
2874 (HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE): New macro.
2875 (print_annotation): New function.
2876 (print_element_value): Likewise.
2877 (indent): Likewise.
2878 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE): New macro.
2879 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE): Likewise.
2880 (print_parameter_annotations): New function.
2881 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): New macro.
2882 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE):
2883 Likewise.
2884 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): Likewise.
2885 (print_annotations): New function.
2886
28872006-06-23 Tom Tromey <tromey@redhat.com>
2888
2889 * lang-specs.h: Default -fsource and -ftarget to 1.5. If
2890 emitting class files, always use 1.5.
2891 * gcj.texi (Input Options): Document -fsource.
2892 (Code Generation): Document -ftarget.
2893
28942006-06-21 Tom Tromey <tromey@redhat.com>
2895
2896 PR java/28089:
2897 * expr.c (expand_java_field_op): Initialize field's declaring
2898 class.
2899
29002006-06-20 Tom Tromey <tromey@redhat.com>
2901
2902 * expr.c (push_value): Always flush quick stack.
2903
29042006-06-19 Tom Tromey <tromey@redhat.com>
2905
2906 * expr.c (push_value): Also flush quick stack if value is a
2907 component_ref.
2908
29092006-06-19 Tom Tromey <tromey@redhat.com>
2910
2911 * expr.c (push_value): Flush quick stack if value has side
2912 effects.
2913
29142006-06-13 Tom Tromey <tromey@redhat.com>
2915
2916 * class.c (is_compiled_class): Explicitly check for current
2917 class.
2918
29192006-06-09 Tom Tromey <tromey@redhat.com>
2920
2921 * gjavah.c (decompile_method): Don't decompile a static field
2922 accessor method.
2923
29242006-06-06 Tom Tromey <tromey@redhat.com>
2925
2926 * lang-specs.h <jc1>: Add .jar file to command line if
2927 -fsaw-java-file. Also, remove -ffilelist-file in this case.
2928
29292006-06-05 Tom Tromey <tromey@redhat.com>
2930
2931 * jcf-dump.c (print_access_flags): Handle varargs, bridge,
2932 synthetic, enum, annotation.
2933 * jcf.h (ACC_BRIDGE): New macro.
2934 (ACC_VARARGS): Likewise.
2935 (ACC_SYNTHETIC): Likewise.
2936 (ACC_ENUM): Likewise.
2937 (ACC_ANNOTATION): Likewise.
2938
29392006-06-04 Tom Tromey <tromey@redhat.com>
2940
2941 * lang.opt (-fsaw-java-file, -fsource, -ftarget): New options.
2942 * jvspec.c (jvgenmain_spec): Remove -fsaw-java-file, -fsource,
2943 and -ftarget.
2944 (lang_specific_driver): Removed dead code. Add -fsaw-java-file
2945 when needed. Handle classpath-setting.
2946 * Make-lang.in ($(GCJ)$(exeext)): Link in jcf-path.o.
2947 * lang-specs.h: Rewrote.
2948
29492006-06-04 Tom Tromey <tromey@redhat.com>
2950
2951 * jcf-io.c (find_class): Set source_ok to 0.
2952 * jcf-parse.c (jcf_parse): Disable gnu.gcj.gcj-compiled warning.
2953 (parse_class_file): Don't call java_mark_class_local.
2954 (java_parse_file): Skip .java files. Call java_mark_class_local
2955 before lowering any code.
2956 (parse_zip_file_entries): Don't call duplicate_class_warning
2957 here.
2958 (process_zip_dir): ... call it here.
2959 * class.c (add_field): Don't mark field external if it is being
2960 compiled into this object.
2961 (make_class_data): Handle situation where class_dtable_decl is
2962 created before Class is compiled.
2963 (is_compiled_class): Don't assume files in zip are compiled into
2964 this object.
2965 (layout_class_method): Don't mark method external if it is being
2966 compiled into this object.
2967
29682006-06-04 Tom Tromey <tromey@redhat.com>
2969
2970 * jcf-path.c (jcf_path_compute): New function.
2971 * jcf.h (jcf_path_compute): Declare.
2972
29732006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2974
2975 * decl.c: Include langhooks.h.
2976 (builtin_function): Remove.
2977 (java_init_decl_processing): Replace calls to builtin_function
2978 with add_builtin_function.
2979 * Make-lang.in (jc1$(exeext)): Depend on and link with attribs.o.
2980 (java/decl.o): Depend on langhooks.h.
2981 * java-tree.h (builtin_function): Remove.
2982
29832006-10-10 Brooks Moses <bmoses@stanford.edu>
2984
2985 * Make-lang.in: Added "java.pdf", "gcj.pdf" target support.
2986
29872006-09-12 Tom Tromey <tromey@redhat.com>
2988
2989 * expr.c (push_value): Always flush quick stack.
2990
29912006-09-12 Tom Tromey <tromey@redhat.com>
2992
2993 PR java/29013:
2994 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Always note
2995 the push of the called method's return result.
2996
29972006-09-12 Tom Tromey <tromey@redhat.com>
2998
2999 * jvspec.c (lang_specific_driver): Read spec file even if
3000 -fsyntax-only.
3001
30022006-09-12 Tom Tromey <tromey@redhat.com>
3003
3004 PR java/28754:
3005 * expr.c (expand_java_field_op): Initialize field's declaring
3006 interface if necessary.
3007
30082006-09-12 Tom Tromey <tromey@redhat.com>
3009
3010 PR java/28892:
3011 * expr.c (expand_java_field_op): No error for assignments not in
3012 class initializer or constructor.
3013
30142006-08-22 Andrew Haley <aph@redhat.com>
3015
3016 * decl.c (java_add_stmt): Give the statement list a type.
3017
30182006-08-16 Jakub Jelinek <jakub@redhat.com>
3019 Bryce McKinlay <bryce@mckinlay.net.nz>
3020
3021 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
3022
30232006-08-10 Simon Martin <simartin@users.sourceforge.net>
3024
3025 PR java/8923
3026 * parse.y (build_incdec): Emit an error instead of an ICE if '++'
3027 or '--' is used with a constant operand.
3028 (java_complete_lhs): When processing a '++' or '--' expression,
3029 don't call java_complete_tree but java_complete_lhs, so that a
3030 static final variable operand is never replaced by its value. This
3031 avoids an ICE later on.
3032 (patch_unaryop): Fixed typo in comment.
3033
30342006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3035
3036 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
3037
30382006-07-12 Bryce McKinlay <mckinlay@redhat.com>
3039
3040 * builtins.c (check_for_builtin): If a builtin could result in a
3041 direct call being generated, don't use it if flag_indirect_dispatch
3042 is set.
3043
30442006-07-12 Bryce McKinlay <mckinlay@redhat.com>
3045
3046 * gcj.texi (Invocation): Corrections for Invocation API example.
3047
30482006-07-04 Andrew Haley <aph@redhat.com>
3049
3050 * class.c (build_fieldref_cache_entry): Set DECL_IGNORED_P on the
3051 entry.
3052
30532006-06-21 Andrew Haley <aph@redhat.com>
3054
3055 * java-tree.h (update_aliases): Remove
3056 * expr.c (expand_iinc): Remove call to update_aliases().
3057 (STORE_INTERNAL): Likewise.
3058 * decl.c (update_aliases, initialize_local_variable)
3059 (maybe_pushlevels): Set DECL_VALUE_EXPR for debugging decls.
3060
30612006-06-19 Andrew Haley <aph@redhat.com>
3062
3063 PR java/1305
3064 PR java/27908
3065 * expr.c (java_modify_addr_for_volatile): New function.
3066 (expand_java_field_op): Handle volatile fields.
3067 * java-gimplify.c (java_gimplify_component_ref): Call
3068 java_modify_addr_for_volatile to give the field_ref the correct
3069 volatile type.
3070 (java_gimplify_modify_expr): Likewise.
3071 * java-tree.h (java_modify_addr_for_volatile): New decl.
3072
30732006-06-17 Karl Berry <karl@gnu.org>
3074
3075 * gcj.texi (@dircategory): Use "Software development" instead
3076 of "Programming", following the Free Software Directory.
3077
30782006-06-16 Andrew Haley <aph@redhat.com>
3079
3080 * class.c (make_class_data): When using flag_indirect_classes,
3081 don't initialize the vtable of Class instances.
3082
30832006-06-09 Andrew Haley <aph@redhat.com>
3084
3085 PR java/1305
3086 PR java/27908
3087 * builtins.c (initialize_builtins): Add __sync_synchronize().
3088 * class.c (add_field): Mark volatile fields.
3089 * java-gimplify.c (java_gimplify_expr): Call new functions to
3090 handle self-modifying exprs and COMPONENT_REFs.
3091 (java_gimplify_component_ref): New.
3092 (java_gimplify_modify_expr): Add handling for volatiles.
3093
30942006-06-08 Tom Tromey <tromey@redhat.com>
3095
3096 * gcj.texi (libgcj Runtime Properties): Document
3097 gnu.gcj.user.realname.
3098
30992006-06-08 Andrew Haley <aph@redhat.com>
3100
3101 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
3102 get_symbol_table_index().
3103 (maybe_rewrite_invocation): Set SPECIAL if we need to access a
3104 private method.
3105 (build_known_method_ref): New arg: special. Pass it to
3106 get_symbol_table_index.
3107 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
3108 the method list.
3109 (build_invokevirtual): New arg: special. Pass it to
3110 get_symbol_table_index.
3111 (expand_invoke): New variable: special.
3112 Pass it to maybe_rewrite_invocation().
3113 Pass it to build_known_method_ref().
3114 * class.c (build_symbol_entry): Add new arg: special. Use it to
3115 build the symbol table conbstructor.
3116 (emit_symbol_table): Extract SPECIAL from the method list and pass
3117 it to build_symbol_entry().
3118 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
3119 special accordingly.
3120
31212006-06-06 David Daney <ddaney@avtrex.com>
3122
3123 * gcj.texi (libgcj Runtime Properties): Document
3124 gnu.gcj.runtime.NameFinder.show_raw and
3125 gnu.gcj.runtime.NameFinder.remove_unknown.
3126
31272006-06-06 Tom Tromey <tromey@redhat.com>
3128
3129 * jcf-dump.c (print_access_flags): Handle varargs, bridge,
3130 synthetic, enum, annotation.
3131 * jcf.h (ACC_BRIDGE): New macro.
3132 (ACC_VARARGS): Likewise.
3133 (ACC_SYNTHETIC): Likewise.
3134 (ACC_ENUM): Likewise.
3135 (ACC_ANNOTATION): Likewise.
3136
31372006-06-06 Mike Stump <mrs@apple.com>
3138
3139 * Make-lang.in: Rename to htmldir to build_htmldir to avoid
3140 installing during build.
3141
31422006-05-31 Thomas Fitzsimmons <fitzsim@redhat.com>
3143
3144 * gcj.texi (Extensions): Document the new gcj-dbtool-based
3145 classname-to-library resolution mechanism.
3146 Declare the old gnu.gcj.runtime.VMClassLoader.library_control
3147 mechanism deprecated.
3148 (libgcj Runtime Properties): Document
3149 gnu.gcj.runtime.VMClassLoader.library_control's new default.
3150
31512006-05-29 Jakub Jelinek <jakub@redhat.com>
3152
3153 * javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64)
3154 bit wide type.
3155 (jword): Define to uint64 on 64-bit arches.
3156 * jcf-dump.c (print_constant): Cast JPOOL_UINT to long.
3157
31582006-05-28 Kazu Hirata <kazu@codesourcery.com>
3159
3160 * class.c, except.c, expr.c, java-gimplify.c: Fix comment
3161 typos.
3162
31632006-05-26 Tom Tromey <tromey@redhat.com>
3164
3165 * expr.c (java_push_constant_from_pool): Handle 'ldc class'.
3166 * verify-glue.c (vfy_class_type): New function.
3167 * verify-impl.c (check_constant): Allow 'ldc class'.
3168 * verify.h (vfy_class_type): Declare.
3169
31702006-05-25 Andrew Haley <aph@redhat.com>
3171
3172 PR java/27756
3173 * decl.c (maybe_pushlevels): When variable ranges are non-nested
3174 update all lifetimes, not just the first one.
3175
31762006-05-24 Tom Tromey <tromey@redhat.com>
3177
3178 * java-tree.h: Fixed flag documentation.
3179
31802006-05-24 Tom Tromey <tromey@redhat.com>
3181
3182 PR libgcj/27729:
3183 * jcf.h (ACC_INVISIBLE): Changed value.
3184
31852006-05-24 Andrew Haley <aph@redhat.com>
3186
3187 PR java/27754
3188 * decl.c (java_add_stmt): Use a STATEMENT_LIST rather than a
3189 COMPOUND_EXPR.
3190
31912006-05-16 H.J. Lu <hongjiu.lu@intel.com>
3192
3193 * lang.opt (femit-class-file): Remove VarExists.
3194
31952006-05-16 Tom Tromey <tromey@redhat.com>
3196
3197 * verify-impl.c (verify_instructions_0) <op_return>: Special case
3198 for Object.<init>.
3199
32002006-05-16 H.J. Lu <hongjiu.lu@intel.com>
3201
3202 PR driver/26885
3203 * Make-lang.in ($(GCJ)$(exeext)): Replace gcc.o with
3204 $(GCC_OBJS).
3205
32062006-05-14 H.J. Lu <hongjiu.lu@intel.com>
3207
3208 * Make-lang.in (java/decl.o): Add dependency on $(TARGET_H).
3209 (java/expr.o): Replace target.h with $(TARGET_H).
3210 (java/parse.o): Likewise.
3211
32122006-05-10 Andrew Haley <aph@redhat.com>
3213
3214 * class.c (emit_indirect_register_classes): Fix comment.
3215
32162006-05-04 Tom Tromey <tromey@redhat.com>
3217
3218 * java-tree.h (uses_jv_markobj_p): Declare.
3219 * class.c (uses_jv_markobj_p): Removed.
3220 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): New define.
3221 (get_boehm_type_descriptor): Use it.
3222 (uses_jv_markobj_p): Moved from class.c. Return bool.
3223
32242006-05-04 Tom Tromey <tromey@redhat.com>
3225
3226 * java-tree.def (THIS_EXPR): Now a tcc_expression.
3227
32282006-05-04 Andrew Haley <aph@redhat.com>
3229
3230 * class.c (make_field_value): Always build_address_of fdecl if
3231 there is an initializer.
3232
32332006-05-03 Andrew Haley <aph@redhat.com>
3234
3235 PR libgcj/27352
3236 * expr.c (maybe_rewrite_invocation): New function.
3237 (rewrite_arglist_getclass): Likewise.
3238 (rules): New.
3239 (expand_invoke): Call maybe_rewrite_invocation.
3240 * parse.y (patch_invoke): Likewise.
3241 * java-tree.h: (maybe_rewrite_invocation): New function.
3242
32432006-04-21 Andrew Haley <aph@redhat.com>
3244
3245 * lang.c (java_init): Handle flag_indirect_classes.
3246 * jvgenmain.c: Use "class$$" instead of "class$".
3247 * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as
3248 DECLs.
3249 (mangle_class_field): Special case "class$$" as well as "class$".
3250 * constants.c (build_ref_from_constant_pool): If
3251 flag_indirect_classes, generate a ref into the heap.
3252 * decl.c (constants_field_decl_node,
3253 constants_data_field_decl_node): New.
3254 * class.c (build_static_class_ref): New.
3255 (build_classdollar_field): Factor out from build_class_ref().
3256 (make_field_value): Handle static fields in heap.
3257 (make_class_data): Make sure we get a static ref to class.
3258 Make class initializer const if flag_indirect_classes.
3259 (register_class): Build a class_ref for initialization if
3260 flag_indirect_classes.
3261 (emit_indirect_register_classes): New.
3262
32632006-04-08 Kazu Hirata <kazu@codesourcery.com>
3264
3265 * expr.c, gjavah.c: Fix comment typos.
3266
32672006-04-03 Andrew Haley <aph@redhat.com>
3268
3269 PR java/26858
3270 * expr.c (build_field_ref): Don't check the field offset if
3271 flag_syntax_only.
3272
32732006-03-30 Andrew Haley <aph@redhat.com>
3274
3275 PR java/26858
3276 * lang.c (java_attribute_table): New.
3277 (LANG_HOOKS_ATTRIBUTE_TABLE): Define.
3278 * expr.c (build_field_ref): Add a null pointer check for all
3279 fields of offset > 4k. Don't do so for accesses via the this
3280 pointer, which we know can never be null.
3281 * class.c (build_java_method_type): Mark arg 1 of all nonstatic
3282 methods nonnull.
3283
32842006-03-30 Carlos O'Donell <carlos@codesourcery.com>
3285
3286 * Make-lang.in: Rename docdir to gcc_docdir.
3287
32882006-03-30 Tom Tromey <tromey@redhat.com>
3289
3290 PR java/26042:
3291 * parse.y (java_reorder_fields): Reset superclass field's size as
3292 well.
3293
32942006-03-28 Tom Tromey <tromey@redhat.com>
3295
3296 PR java/26390:
3297 * parse.y (find_most_specific_methods_list): Added 'class'
3298 argument.
3299 (lookup_method_invoke): Updated.
3300
33012006-03-15 Tom Tromey <tromey@redhat.com>
3302
3303 * jcf-write.c (generate_bytecode_insns): Use qualifying type for
3304 non-static method calls.
3305
33062006-03-15 David Daney <ddaney@avtrex.com>
3307
3308 * java-tree.h : Moved comment for TYPE_DOT_CLASS adjacent to its
3309 declaration.
3310
33112006-03-15 David Daney <ddaney@avtrex.com>
3312
3313 * lang.opt (-freduced-reflection): New option.
3314 * lang.c (java_post_options): Generate an error if
3315 -freduced-reflection used with -fjni or -findirect-dispatch.
3316 * java-tree.h (flag_reduced_reflection): Declare new variable.
3317 * boehm.c (get_boehm_type_descriptor): Indicate all pointers
3318 if bitmap overflows and flag_reduced_reflection set.
3319 * class.c (uses_jv_markobj_p): New function.
3320 (make_class_data): Moved generation of vtable to before
3321 reflection data, generate less reflection data if
3322 flag_reduced_reflection set.
3323 * gcj.texi: Document -freduced-reflection.
3324
33252006-03-15 Tom Tromey <tromey@redhat.com>
3326
3327 PR java/26638:
3328 * class.c (get_interface_method_index): Don't put <clinit> into
3329 interface table.
3330
33312006-03-15 Tom Tromey <tromey@redhat.com>
3332
3333 * parse.y (analyze_clinit_body): Ignore empty statements.
3334
33352006-03-08 David Daney <ddaney@avtrex.com>
3336
3337 * gcj.texi: Document -static-libgcj option.
3338
33392006-02-20 Andrew Haley <aph@redhat.com>
3340
3341 * jcf-parse.c (parse_class_file): Set input_location from
3342 current_class.
3343
33442006-02-15 Andrew Haley <aph@redhat.com>
3345
3346 * class.c (GEN_TABLE): Don't pushdecl *_SYMS_DECL here.
3347 (make_class_data): pushdecl_top_level TYPE_OTABLE_SYMS_DECL,
3348 TYPE_ATABLE_SYMS_DECL, TYPE_ITABLE_SYMS_DECL here.
3349
33502006-02-09 Andrew Haley <aph@redhat.com>
3351
3352 PR java/26192
3353 * expr.c (expand_invoke): Allow methods in arrays to be resolved
3354 in their superclass.
3355
3356 * typeck.c (build_java_array_type): Generate TYPE_STUB_DECLs for
3357 array types.
3358
33592006-02-08 Tom Tromey <tromey@redhat.com>
3360
3361 PR java/22578:
3362 * check-init.c (check_init): Handle VIEW_CONVERT_EXPR.
3363 * builtins.c (convert_real): New function.
3364 (java_builtins): Handle Float.intBitsToFloat,
3365 Float.floatToRawIntBits, Double.longBitsToDouble,
3366 Double.doubleToRawLongBits.
3367
33682006-02-07 Andrew Haley <aph@redhat.com>
3369
3370 * expr.c (expand_invoke): (BC mode.) If we find a method in a
3371 class other than the one in which we expected to find it, ignore
3372 the result.
3373
3374 PR java/25535
3375 * constants.c (build_constants_constructor): move initializer into
3376 first halfword on a 64-bit big-endian machine.
3377
33782006-02-04 Tom Tromey <tromey@redhat.com>
3379
3380 PR java/25676:
3381 * builtins.c (max_builtin): Skip floating point 'max'.
3382 (min_builtin): Skip floating point 'min'.
3383 (check_for_builtin): Never return NULL_TREE.
3384
33852006-02-04 Tom Tromey <tromey@redhat.com>
3386
3387 PR java/26097:
3388 * expr.c (push_type): Avoid side effect in gcc_assert.
3389
33902006-02-04 Roger Sayle <roger@eyesopen.com>
3391
3392 * decl.c (java_init_decl_processing): Create char_type_node as a
3393 regular INTEGER_TYPE node.
3394 (push_promoted_type): Preserve TYPE_STRING_FLAG on types.
3395 * typeck.c (convert): No longer check for CHAR_TYPEs but instead
3396 test for char_type_node and promoted_char_type_node as special
3397 instances of INTEGER_TYPE tree codes.
3398 (promote_type,build_java_signature): Likewise.
3399 * jcf-write.c (adjust_typed_op): Likewise.
3400 * mangle.c (mangle_type): Likewise.
3401 * parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE.
3402 * parse.h (JINTEGRAL_TYPE_P): Likewise.
3403
34042006-02-04 Andreas Tobler <a.tobler@schweiz.ch>
3405
3406 * expr.c (java_stack_swap): Revert gcc_assert patch.
3407
34082006-02-03 Ben Elliston <bje@au.ibm.com>
3409
3410 * java-gimplify.c: Use gcc_assert and gcc_unreachable throughout.
3411 * typeck.c: Likewise.
3412 * verify-impl.c: Likewise.
3413 * class.c: Likewise.
3414 * decl.c: Likewise.
3415 * jcf-parse.c: Likewise.
3416 * constants.c: Likewise.
3417 * check-init.c: Likewise.
3418 * jcf-write.c: Likewise.
3419 * verify-glue.c: Likewise.
3420 * mangle.c: Likewise.
3421 * expr.c: Likewise.
3422 * lang.c: Likewise.
3423 * boehm.c: Likewise.
3424
34252006-02-01 Jan Hubicka <jh@suse.cz>
3426
3427 * decl.c (end_java_method): Kill hack disabling unit-at-a-time.
3428 * lang.c (java_init_options): Set no_unit_at_a_time_default.
3429
34302006-01-30 Andrew Haley <aph@redhat.com>
3431
3432 PR java/21428
3433 * parse.y: (source_start_java_method): Mark DECL_ARTIFICIAL("this").
3434
34352006-01-21 Joseph S. Myers <joseph@codesourcery.com>
3436
3437 * jv-scan.c (version), jcf-dump.c (version), gjavah.c (version):
3438 Update copyright notice dates.
3439
34402006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3441
3442 * jvspec.c (lang_specific_spec_functions): Remove.
3443
34442006-01-06 Tom Tromey <tromey@redhat.com>
3445
3446 * gcj.texi (Arrays): Added more documentation for
3447 JvNewObjectArray.
3448 (Primitive types): Correct information about primitive classes.
3449 (Reference types): New node.
3450 (Index): New node.
3451
34522005-12-16 Alexandre Oliva <aoliva@redhat.com>
3453
3454 * jcf-parse.c (set_source_filename): Set the decl source location
3455 even when returning early.
3456
34572005-12-15 Tom Tromey <tromey@redhat.com>
3458 Andrew Haley <aph@redhat.com>
3459
3460 PR java/25429
3461 * parse.y (resolve_expression_name): Don't generate accessor
3462 methods for constant fields.
3463
34642005-12-13 Andrew Haley <aph@redhat.com>
3465
3466 PR java/25366
3467 PR java/25368
3468 * class.c (maybe_layout_super_class): Update current_class before
3469 calling do_resolve_class.
3470
34712005-12-12 H.J. Lu <hongjiu.lu@intel.com>
3472
3473 PR java/25330
3474 * jcf-write.c (write_classfile): Use PID in temporary class
3475 file. Save/restore errno when reporting error.
3476
34772005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
3478
3479 PR java/9861
3480 * mangle.c (mangle_method_decl): Mangle Java methods by prepending 'J'
3481 to bare_function_type and including the return type
3482 * builtins.c (initialize_builtins) : Change builtin mangled name
3483 constants to conform to new mangling scheme
3484
34852005-12-08 Andrew Haley <aph@redhat.com>
3486
3487 PR libgcj/25265
3488 * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
3489 (soft_abstractmethod_node): New.
3490 * expr.c (build_field_ref): Add in-line check for missing field.
3491 * decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
3492
34932005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3494
3495 * Make-lang.in (java.all.build, java.install-normal): Remove.
3496
34972005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3498
3499 * Make-lang.in: Remove all dependencies on s-gtype, except for
3500 gt-java-parse.h.
3501
35022005-12-07 Richard Sandiford <richard@codesourcery.com>
3503
3504 * class.c (build_utf8_ref, emit_register_classes): Use
3505 switch_to_section and get_section.
3506
35072005-12-06 Tom Tromey <tromey@redhat.com>
3508
3509 PR java/25283:
3510 * parse.y (patch_new_array_init): Revert previous patch.
3511 (lookup_method_invoke): Use size-less array type when creating an
3512 anonymous constructor.
3513
35142005-12-05 Tom Tromey <tromey@redhat.com>
3515
3516 * parse.y (patch_new_array_init): Don't set length on array.
3517
35182005-12-02 Richard Guenther <rguenther@suse.de>
3519
3520 * java-gimplify.c (java_gimplify_labeled_block_expr): Use
3521 buildN instead of build.
3522 * class.c (finish_class): Likewise.
3523 * expr.c (java_create_object): Likewise.
3524
35252005-11-28 Tom Tromey <tromey@redhat.com>
3526
3527 PR java/18278:
3528 * expr.c (build_jni_stub): Unwrap the return value.
3529 * java-tree.h (soft_unwrapjni_node): New define.
3530 (enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE.
3531 * decl.c (java_init_decl_processing): Initialize
3532 soft_unwrapjni_node.
3533
35342005-11-24 Bryce McKinlay <mckinlay@redhat.com>
3535
3536 * gcj.texi (gij options): Add -Xss documentation.
3537
35382005-11-08 Wil Mahan <wmahan@gmail.com>
3539
3540 PR java/23617
3541 * zextract.c (read_zip_archive): Fix out of memory error when
3542 reading jar files with zip-style comments.
3543
35442005-11-07 Terry Laurenzo <tlaurenzo@gmail.com>
3545
3546 * gjavah.c (HANDLE_CODE_ATTRIBUTE): Only define for ELF Object
3547 formats.
3548 * gjavah.c (decompile_method): Add ATTRIBUTE_UNUSED
3549
35502005-10-12 Nathan Sidwell <nathan@codesourcery.com>
3551 Wil Mahan <wmahan@gmail.com>
3552
3553 PR java/23620
3554 * class.c (make_class): Create empty binfo here.
3555 (set_super_info): Only create binfo if we have superclasses.
3556
35572005-10-03 Ranjit Mathew <rmathew@gcc.gnu.org>
3558
3559 PR java/24127
3560 * parse.y (method_header): Make the result of the rule a NULL_TREE
3561 when a parsing error occurs.
3562
35632005-09-29 Tom Tromey <tromey@redhat.com>
3564
3565 PR java/24120:
3566 * jcf-io.c (memoized_dirlist_hash): New function.
3567 (caching_stat): Use it.
3568
35692005-09-21 Ranjit Mathew <rmathew@gcc.gnu.org>
3570
3571 PR java/21418
3572 * class.c (inherits_from_p): Try to lay out super class
3573 if it is not already laid out.
3574 (maybe_layout_super_class): Handle the case where SUPER_CLASS
3575 is a NULL_TREE.
3576
35772005-09-18 James A. Morrison <phython@gcc.gnu.org>
3578
3579 * builtins.c (max_builtin, min_builtin, abs_builtin,
3580 java_build_function_call_expr): Use fold_buildN.
3581 * class.c (layout_class_method): Likewise.
3582 * expr.c (java_truthvalue_conversion, build_java_jsr,
3583 build_java_arrayaccess, expand_java_arrayload, expand_iinc,
3584 build_java_binop, build_field_ref, expand_compare,
3585 build_known_method_ref, build_invokevirtual,
3586 process_jvm_instruction): Likewise.
3587 * parse.y (patch_binop, patch_exit_expr): Likewise.
3588 * typeck.c (convert_ieee_real_to_integer): Likewise.
3589 (convert): Don't call fold after convert_ieee_real_to_integer.
3590
35912005-09-14 Bryce McKinlay <mckinlay@redhat.com>
3592
3593 PR java/23891
3594 * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
3595 the newly created type. Set import lists here, not in create_class.
3596 (jdep_resolve_class): Set current_class.
3597 (do_resolve_class): Use current_class's TYPE_PACKAGE to determine
3598 the current package context, not ctxp->package.
3599 (cicp_cache): Removed.
3600 (class_in_current_package): Simplify implementation using TYPE_PACKAGE.
3601 * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
3602 * java-tree.h (TYPE_PACKAGE): New macro.
3603 (struct lang_type): New member 'package'.
3604
36052005-09-09 Andrew Haley <aph@redhat.com>
3606
3607 PR libgcj/23182
3608 * expr.c (pop_type_0): If the expected type is object or ptr
3609 (i.e. void*), return the type of the object we just popped from
3610 the stack.
3611
36122005-09-06 Andrew Pinski <pinskia@physics.uc.edu>
3613
3614 * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
3615 BLOCK_EXPR_BODY before returning the new BIND_EXPR.
3616
36172005-09-06 Kazu Hirata <kazu@codesourcery.com>
3618
3619 * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
3620 jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
3621 typos. Follow spelling conventions.
3622
36232005-09-05 Ranjit Mathew <rmathew@hotmail.com>
3624
3625 PR java/23431
3626 * typeck.c (lookup_do): Look up interfaces for the original class,
3627 not the base class.
3628 * parse.y (java_check_regular_methods): Fix diagnostic message for
3629 more restrictive overriding of a method from an interface.
3630
36312005-08-16 Tom Tromey <tromey@redhat.com>
3632
3633 * class.c (make_class_data): Always emit JV_STATE_PRELOADING for
3634 class' initial state.
3635
36362005-08-16 Ranjit Mathew <rmathew@hotmail.com>
3637
3638 PR java/22113
3639 * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
3640 `literal_token' for large numeric input tokens.
3641
36422005-08-16 Ranjit Mathew <rmathew@hotmail.com>
3643
3644 PR java/19870
3645 * parse.y (nested_field_access_p): Rename to nested_member_access_p
3646 and expand to handle method accesses across nested classes.
3647 (build_outer_method_access_method): Rename to
3648 build_nested_method_access_method. Minor adjustments to comments.
3649 (resolve_expression_name): Use the newly-renamed
3650 nested_member_access_p method.
3651 (resolve_qualified_expression_name): Likewise.
3652 (patch_method_invocation): Also consider static methods for access
3653 method generation. Minor adjustments to comments.
3654 (maybe_use_access_method): Use the more general
3655 nested_memeber_access_p to determine access across nested class
3656 boundaries. Allow THIS_ARG to be NULL (for static methods).
3657
36582005-08-15 Tom Tromey <tromey@redhat.com>
3659
3660 PR java/23300.
3661 * expr.c (build_field_ref): Don't generate otable reference when
3662 DECL_FIELD_OFFSET is 0.
3663 * class.c (maybe_layout_super_class): Pass outer class to
3664 do_resolve_class.
3665
36662005-08-15 Tom Tromey <tromey@redhat.com>
3667
3668 * java-tree.h (LABEL_IN_SUBR): Removed.
3669 (LABEL_IN_SUBR): Likewise.
3670 (LABEL_IS_SUBR_START): Likewise.
3671 (LABEL_SUBR_START): Likewise.
3672 (LABEL_SUBR_CONTEXT): Likewise.
3673 (LABEL_CHANGED): Likewise.
3674 (LABEL_RETURN_LABEL): Likewise.
3675 (LABEL_RETURN_TYPE_STATE): Likewise.
3676 (LABEL_RETURN_LABELS): Likewise.
3677 (RETURN_MAP_ADJUSTED): Likewise.
3678 (LABEL_PENDING_CHAIN): Likewise.
3679
36802005-08-15 Tom Tromey <tromey@redhat.com>
3681
3682 * Make-lang.in (JAVA_OBJS): Removed verify.o
3683 (java/verify.o): Removed.
3684 * verify.c: Removed.
3685 * lang.c (flag_new_verifier): Removed.
3686 (java_post_options): Updated.
3687 * java-tree.h (flag_new_verifier): Removed.
3688 (verify_jvm_instructions): Removed.
3689 * expr.c (pop_type_0): Assume flag_new_verifier is true.
3690 (build_java_check_indexed_type): Likewise.
3691 (expand_java_arraystore): Likewise.
3692 (expand_java_arrayload): Likewise.
3693 (pop_arguments): Likewise.
3694 (expand_byte_code): Likewise.
3695 (process_jvm_instruction): Likewise.
3696
36972005-08-10 Andrew Haley <aph@redhat.com>
3698
3699 * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
3700 type mismatches to make legal GIMPLE.
3701
37022005-08-10 Robin Green <greenrd@greenrd.org>
3703
3704 PR java/23230:
3705 * parse.y (maybe_use_access_method): Generalize check from
3706 java.lang.Object to any superclass of current_class
3707
37082005-08-08 Nathan Sidwell <nathan@codesourcery.com>
3709
3710 * class.c (build_class_ref): Wrap the primary class type in a
3711 NOP_EXPR.
3712 * parse.y (java_complete_lhs) <COMPONENT_REF case>: Extract the
3713 primary class type from the NOP_EXPR in which it was placed.
3714
37152005-07-28 Diego Novillo <dnovillo@redhat.com>
3716
3717 * expr.c (expand_load_internal): Fix missing parens in
3718 predicate.
3719
37202005-07-28 Andrew Haley <aph@redhat.com>
3721
3722 * expr.c (expand_load_internal): Convert to destination type.
3723
37242005-07-22 Manfred Hollstein <mh@suse.com>
3725
3726 * verify-impl.c (check_class_constant): Fix uninitialised warnings.
3727 (check_constant): Likewise.
3728 (check_wide_constant): Likewise.
3729
37302005-07-20 Giovanni Bajo <giovannibajo@libero.it>
3731
3732 Make CONSTRUCTOR use VEC to store initializers.
3733 * check-init.c (check_init): Update to cope with VEC in
3734 CONSTRUCTOR_ELTS.
3735 * class.c (make_field_value, make_method_value, get_dispatch_table,
3736 make_class_data, emit_symbol_table, emit_catch_table,
3737 emit_assertion_table): Use build_constructor_from_list instead of
3738 build_constructor.
3739 * constants.c (build_constants_constructor): Likewise.
3740 * java-gimplify.c (java_gimplify_new_array_init): Update to cope with
3741 VEC in CONSTRUCTOR_ELTS.
3742 * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
3743 PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
3744 of a TREE_LIST.
3745 * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
3746 CONSTRUCTOR_ELTS.
3747 * parse.y (build_new_array_init): Use build_constructor_from_list
3748 instead of build_constructor.
3749 (patch_new_array_init): Update to cope with VEC in
3750 CONSTRUCTOR_ELTS.
3751 (array_constructor_check_entry): Likewise.
3752
37532005-07-12 Tom Tromey <tromey@redhat.com>
3754
3755 * jvspec.c (lang_specific_driver): Put filelist_filename first on
3756 command line.
3757
37582005-07-12 Tom Tromey <tromey@redhat.com>
3759
3760 PR java/19674:
3761 * parse-scan.y (interface_member_declaration): Added
3762 empty_statement.
3763
37642005-07-08 Daniel Berlin <dberlin@dberlin.org>
3765
3766 * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
3767 (LABEL_PENDING_CHAIN): Ditto.
3768 (LABEL_PC): Ditto.
3769 (DECL_BIT_INDEX): Ditto.
3770
37712005-07-07 Bryce McKinlay <mckinlay@redhat.com>
3772
3773 PR java/18119
3774 * parse.y (inner_class_accessible): New function. Logic moved from
3775 check_inner_class_access.
3776 (check_inner_class_access): Use inner_class_accessible.
3777 (resolve_inner_class): Simplify arguments. Create circularity hash
3778 here. Keep looking for classes if we found one that was inaccessible.
3779 Return the inaccessible class only if there is no other match.
3780 (do_resolve_class): Update for new resolve_inner_class arguments.
3781 Don't create circularity_hash here.
3782
37832005-07-07 Bryce McKinlay <mckinlay@redhat.com>
3784
3785 PR java/21045
3786 * parse.y (add_exception_to_throws): New function.
3787 (purge_unchecked_exceptions): Removed.
3788 (get_constructor_super): Renamed from verify_constructor_super. Now
3789 returns the super constructor after verification.
3790 (java_complete_expand_method): Don't use purge_unchecked_exceptions
3791 or save/restore the exception list.
3792 (check_thrown_exceptions): Add uncaught exceptions in anonymous
3793 class initializers and constructors to the throws clause of the method.
3794
37952005-07-05 Bryce McKinlay <mckinlay@redhat.com>
3796
3797 PR java/19674
3798 * parse.y (interface_member_declaration): Allow empty statements in
3799 interface declarations.
3800
38012005-07-05 Paolo Bonzini <bonzini@gnu.org>
3802
3803 * Makefile.in (parse.o): Adjust dependencies.
3804 * parse.y: Include tree-dump.h.
3805
38062005-07-02 Joseph S. Myers <joseph@codesourcery.com>
3807
3808 * class.c, decl.c, expr.c: Use '+' flag instead of %J. Use 'q'
3809 flag for quoting.
3810
38112005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
3812
3813 * parse.y (issue_warning_error_from_context): Call
3814 pp_output_formatted_text to be able to get the buffer.
3815
38162005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
3817
3818 * parse.y (issue_warning_error_from_context): Update for the
3819 renaming of pp_format_text to pp_format.
3820
38212005-06-28 Paul Brook <paul@codesourcery.com>
3822
3823 * decl.c (java_init_decl_processing): Call
3824 default_init_unwind_resume_libfunc.
3825
38262005-06-27 Tom Tromey <tromey@redhat.com>
3827
3828 PR java/21540, PR java/13788:
3829 * parse.y (java_complete_lhs) <CASE_EXPR>: Use
3830 fold_constant_for_init.
3831 (patch_binop): Added 'folding' argument. Updated all callers.
3832 (patch_unaryop) <NOP_EXPR>: New case.
3833 (fold_constant_for_init) <NOP_EXPR>: Likewise.
3834 (fold_constant_for_init) <COND_EXPR>: Fix sense of test.
3835
38362005-06-25 Jan Hubicka <jh@suse.cz>
3837
3838 * builtins.c (define_builtin): Accept new flags parameter.
3839 (initialize_builtins): Mark the builtins const and nothrow accordingly.
3840
38412005-06-25 Kelley Cook <kcook@gcc.gnu.org>
3842
3843 * all files: Update FSF address in copyright headers.
3844
38452005-06-24 Tom Tromey <tromey@redhat.com>
3846
3847 * verify-impl.c (verify_instructions_0): Correctly handle
3848 situation where PC falls off end.
3849
38502005-06-23 Bryce McKinlay <mckinlay@redhat.com>
3851
3852 PR java/20697
3853 * parse.y (find_most_specific_methods_list): Remove special case for
3854 inner classes.
3855
38562005-06-15 Tom Tromey <tromey@redhat.com>
3857
3858 PR libgcj/21906:
3859 * class.c (make_method_value): Use soft_abstractmethod_node for
3860 abstract method.
3861 * java-tree.h (soft_abstractmethod_node): New define.
3862 (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
3863 * decl.c (java_init_decl_processing): Initialize
3864 soft_abstractmethod_node.
3865
38662005-06-13 Geoffrey Keating <geoffk@apple.com>
3867
3868 * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
3869
38702005-06-13 Per Bothner <per@bothner.com>
3871
3872 * expr.c (int highest_label_pc_this_method,
3873 start_label_pc_this_method): New globals.
3874 (lookup_label): Add start_label_pc_this_method to pc for label, and
3875 update highest_label_pc_this_method. This prevents conflicts between
3876 labels from different methods.
3877 * java-tree.h: Declare new globals.
3878 * jcf-parse.c (parse_class_file): If needed bump
3879 start_label_pc_this_method and reset highest_label_pc_this_method.
3880
38812005-06-13 Tom Tromey <tromey@redhat.com>
3882
3883 PR java/21844:
3884 * parse.y (nested_field_access_p): Handle case where outer field
3885 is inherited by enclosing class.
3886
38872005-06-12 Per Bothner <per@bothner.com>
3888
3889 * class.c (inherits_from_p): Do load_class if needed.
3890
38912005-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3892
3893 * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
3894 * java-tree.h (parse_error_context): Move...
3895 * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
3896 * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
3897 * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
3898
38992005-06-08 Roger Sayle <roger@eyesopen.com>
3900
3901 * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
3902
39032005-06-06 Jakub Jelinek <jakub@redhat.com>
3904
3905 * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
3906 msgid for argument name.
3907 * gjavah.c (error): Likewise.
3908 * java-tree.h (parse_error_context): Likewise.
3909 * parse.y (parse_error_context, parse_warning_context,
3910 issue_warning_error_from_context): Likewise.
3911
39122005-06-01 Tom Tromey <tromey@redhat.com>
3913
3914 PR java/21722:
3915 * class.c (build_static_field_ref): Don't fold constant fields if
3916 current class is from a .class file and we're using indirect
3917 dispatch.
3918
39192005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3920
3921 * java/verify-glue.c: Don't include errors.h and include toplev.h.
3922 * java/Make-lang.in: Updates dependencies.
3923
39242005-05-26 Ranjit Mathew <rmathew@hotmail.com>
3925
3926 PR java/19870.
3927 * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
3928 NESTED_FIELD_ACCESS_IDENTIFIER_P.
3929 (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
3930 (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
3931 * jcf-write.c (generate_classfile): Use
3932 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
3933 OUTER_FIELD_ACCESS_IDENTIFIER_P.
3934 * parse.y (build_outer_field_access): Rename to
3935 build_nested_field_access. Support static fields and outer-to-inner
3936 class accesses.
3937 (outer_field_access_p): Rename to nested_field_access_p. Support
3938 static fields and generalise to outer-to-inner class and sibling
3939 inner class accesses.
3940 (outer_field_expanded_access_p): Rename to
3941 nested_field_expanded_access_p and support static fields.
3942 (outer_field_access_fix): Rename to nested_field_access_fix and
3943 support static fields.
3944 (build_outer_field_access_expr): Rename to
3945 build_nested_field_access_expr and support static fields.
3946 (build_outer_field_access_methods): Rename to
3947 build_nested_field_access_methods and support static fields. For
3948 static fields, generate accessors without class instance parameters.
3949 (build_outer_field_access_method): Rename to
3950 build_nested_field_access_method and support static fields.
3951 (build_outer_method_access_method): Use
3952 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
3953 OUTER_FIELD_ACCESS_IDENTIFIER_P.
3954 (resolve_expression_name): Consider static field accesses across
3955 nested classes.
3956 (resolve_qualified_expression_name): Likewise.
3957 (java_complete_lhs): Use nested_field_access_fix instead of
3958 outer_field_access_fix.
3959 (patch_unary_op): Rename outer_field_flag to nested_field_flag.
3960 Use nested_field_expanded_access_p instead of
3961 outer_field_expanded_access_p. Use nested_field_access_fix instead
3962 of outer_field_access_fix.
3963 (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
3964 instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
3965
39662005-05-26 Bryce McKinlay <mckinlay@redhat.com>
3967
3968 * decl.c (GCJ_BINARYCOMPAT_ADDITION,
3969 GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
3970 (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
3971 MINOR_BINARYCOMPAT_ABI_VERSION): New.
3972 (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
3973 (parse_version): Calculate version ID using new method. Use bit-flags
3974 for flag_indirect_dispatch and flag_bootstrap_classes.
3975
39762005-05-25 Richard Henderson <rth@redhat.com>
3977
3978 PR libgcj/21692
3979 * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
3980 * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
3981 DECL_CONTEXT; avoid pushdecl_top_level.
3982 (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
3983 (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
3984 (layout_class_method): Likewise.
3985 * decl.c (java_mark_cni_decl_local): New.
3986 (java_mark_class_local): Use it.
3987 * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
3988 (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
3989 (struct lang_decl_func): Add local_cni;
3990 (struct lang_decl_var): Add class_field, vtable.
3991 (java_mangle_decl): Declare.
3992 * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
3993 * mangle.c: Remove dup obstack.h; include langhooks-def.h.
3994 (mangle_obstack_1): New.
3995 (java_mangle_decl): Remove obstack argument. Call mangle_class_field,
3996 mangle_vtable, and mangle_local_cni_method_decl. Fall back to
3997 lhd_set_decl_assembler_name for things that don't need mangling.
3998 (mangle_class_field): Rename from java_mangle_class_field, make
3999 static, don't call init_mangling or finish_mangling.
4000 (mangle_vtable): Similarly.
4001 (mangle_local_cni_method_decl): New.
4002 (init_mangling): Remove obstack argument. Use &mangle_obstack_1,
4003 gcc_assert, and MANGLE_RAW_STRING.
4004 (finish_mangling): Use gcc_assert, remove if 0 debugging code.
4005
40062005-05-25 DJ Delorie <dj@redhat.com>
4007
4008 * class.c (set_constant_value): Move warning control from if() to
4009 warning(OPT_*).
4010
40112005-05-24 Richard Henderson <rth@redhat.com>
4012
4013 * builtins.c (define_builtin): Don't call make_decl_rtl.
4014 * constants.c (build_constant_data_ref): Likewise.
4015 * class.c (build_utf8_ref): Likewise.
4016 (build_fieldref_cache_entry, build_static_field_ref): Likewise.
4017 (get_dispatch_table, layout_class_method): Likewise.
4018 (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
4019 by hand.
4020 (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
4021 (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
4022 to determine if we need a non-zero address.
4023 * decl.c (builtin_function): Don't call make_decl_rtl.
4024 (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
4025 * expr.c (build_known_method_ref): Don't call make_decl_rtl.
4026 * resource.c (compile_resource_data): Likewise.
4027 * parse.y (resolve_field_access): Re-word comment to avoid
4028 building DECL_RTL.
4029
40302005-05-24 Richard Henderson <rth@redhat.com>
4031
4032 * class.c (registered_class): Take it out of class_roots; turn into
4033 a vec of trees.
4034 (register_class): Make static. Don't duplicate decl node. Use
4035 VEC_safe_push.
4036 (emit_register_classes): Use VEC_iterate. Use output_constant
4037 instead of assemble_integer. Don't call mark_decl_referenced
4038 directly.
4039 * java-tree.h (register_class): Remove decl.
4040
40412005-05-19 Paolo Bonzini <bonzini@gnu.org>
4042
4043 PR java/17845
4044
4045 * parse.y (register_package, package_list): Remove.
4046 (package_declaration): Do not call register_package.
4047 (do_resolve_class): Do not use package_list.
4048
40492005-05-15 Gerald Pfeifer <gerald@pfeifer.com>
4050
4051 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Remove
4052 unused variable.
4053
40542005-05-15 Tom Tromey <tromey@redhat.com>
4055
4056 PR java/21519:
4057 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call
4058 NOTE_PUSH.
4059
40602005-05-12 Aaron Luchko <aluchko@redhat.com>
4061
4062 * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
4063
40642005-05-11 Tom Tromey <tromey@redhat.com>
4065
4066 * gcj.texi (Code Generation): Document -fbootstrap-classes.
4067 * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
4068 (parse_version): Use it.
4069 * lang.opt (-fbootstrap-classes): New option.
4070
40712005-05-10 Paolo Bonzini <bonzini@gnu.org>
4072
4073 PR java/21436
4074 * class.c (maybe_layout_super_class): Look for imports in this_class.
4075 * parse.h (ctxp_for_generation_last): New.
4076 (do_resolve_class): Add a parameter.
4077 * parse.y (ctxp_for_generation_last): New.
4078 (java_pop_parser_context): Add at end of list.
4079 (find_in_imports, find_in_imports_on_demand): Look in ctxp
4080 if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
4081 the given type are NULL.
4082 (do_resolve_class): Look into the imports of the new second parameter.
4083 Adjust recursive calls.
4084 (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
4085 calls to do_resolve_class.
4086 (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
4087 (java_complete_class): Do not do that here.
4088
40892005-05-03 Thomas Fitzsimmons <fitzsim@redhat.com>
4090
4091 PR java/20309
4092 * Make-lang.in (java): Add gjnih.
4093 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
4094 (GJNIH_OBJS): New variable.
4095 (gjnih$(exeext)): New target.
4096 (JAVA_MANFILES): Add gjnih.1.
4097 (java.uninstall): Add gjnih.1.
4098 (java.mostlyclean): Add gjnih.
4099 (java.maintainer-clean): Add gjnih.1.
4100 (java/gjavah-jni.o): New target.
4101 (.INTERMEDIATE): Add gjnih.pod.
4102 (gjnih.pod): New target.
4103 * config-lang.in (stagestuff): Add gjnih.
4104 * gcj.texi (Top): Add gjnih node.
4105 (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
4106 -bootclasspath options.
4107 (Invoking gjnih): New node.
4108 * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
4109 (TOOLNAME): New macro.
4110 (error): Replace hard-coded gcjh with TOOLNAME.
4111 (process_file): Likewise.
4112 (usage): Likewise.
4113 (version): Likewise.
4114 (help): Likewise. Add help output for -force, -old, -trace and -J
4115 options.
4116 (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
4117 (options): Add force, old, trace and J fields.
4118 (main): Handle -force, -old, -trace and -J options.
4119
41202005-05-03 Tom Tromey <tromey@redhat.com>
4121
4122 PR java/21245:
4123 * gjavah.c (main): Unlink output file on error.
4124
41252005-05-03 Kazu Hirata <kazu@cs.umass.edu>
4126
4127 * constants.c, jvgenmain.c, lang.opt, resource.c: Update
4128 copyright.
4129
41302005-04-29 Tom Tromey <tromey@redhat.com>
4131
4132 * expr.c (build_jni_stub): Updated for change to build_block.
4133
41342005-04-29 Andrew Pinski <pinskia@gcc.gnu.org>
4135
4136 * expr.c (force_evaluation_order): Declare 'saved' earlier.
4137
41382005-04-28 Andrew Haley <aph@redhat.com>
4139
4140 PR java/19285
4141 * java-tree.h (soft_resolvepoolentry_node): New.
4142 (alloc_constant_fieldref): Declare.
4143 * expr.c (expand_java_field_op): Don't call class_init for
4144 accesses to static fields with indirect dispatch.
4145 * builtins.c (initialize_builtins): Add "__builtin_expect".
4146 * decl.c (soft_resolvepoolentry_node): New variable.
4147 (java_init_decl_processing): Create a decl for
4148 "_Jv_ResolvePoolEntry".
4149 * class.c (build_fieldref_cache_entry): New function.
4150 (build_static_field_ref): Rewrite for indirect dispatch.
4151 * constants.c (find_name_and_type_constant_tree): New function.
4152 (alloc_constant_fieldref): Likewise.
4153 (build_constants_constructor): Handle CONSTANT_Fieldref and
4154 CONSTANT_NameAndType.
4155
4156 PR java/21115
4157 * expr.c (force_evaluation_order): Convert outgoing args smaller
4158 than integer.
4159
41602005-04-27 Bryce McKinlay <mckinlay@redhat.com>
4161
4162 * gcj.texi (libgcj Runtime Properties): Remove obsolete
4163 gnu.gcj.runtime.NameFinder.* system properties. Update documentation
4164 for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
4165
41662005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4167
4168 * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
4169 to `unlock_stream' with `unlock_std_streams'.
4170
41712005-04-25 Jakub Jelinek <jakub@redhat.com>
4172
4173 * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
4174 instead of just expr.h.
4175
41762005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4177
4178 * gjavah.c (main): Unlock the stdio streams.
4179 * jcf-dump.c (main): Likewise.
4180 * jv-scan.c (main): Likewise.
4181 * jvgenmain.c (main): Likewise.
4182
41832005-04-23 DJ Delorie <dj@redhat.com>
4184
4185 * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
4186 parse.y: Adjust warning() callers.
4187
41882005-04-21 Bryce McKinlay <mckinlay@redhat.com>
4189
4190 * gcj.texi (Object fields): Change "Integer" to "Int" in example
4191 contructor.
4192
41932005-04-20 Bryce McKinlay <mckinlay@redhat.com>
4194
4195 * gcj.texi: Fix typos and bogus example.
4196
41972005-04-19 Kazu Hirata <kazu@cs.umass.edu>
4198
4199 * except.c: Fix a comment typo.
4200
42012005-04-19 Julian Brown <julian@codesourcery.com>
4202
4203 * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
4204 indirect dispatch with PIC.
4205
42062005-04-18 Andrew Haley <aph@redhat.com>
4207
4208 * java-except.h (struct eh_range.handler): Remove unused field.
4209 (handle_nested_ranges): Remove function declaration.
4210 (sanity_check_exception_range): Add function declaration.
4211 * verify.c (verify_jvm_instructions): Remove call to
4212 handle_nested_ranges.
4213 * verify-glue.c (verify_jvm_instructions_new): Call
4214 sanity_check_exception_range.
4215 * except.c (link_handler, eh_range_freelist, link_handler,
4216 handle_nested_ranges): Remove.
4217 (add_handler): Rewrite.
4218 (sanity_check_exception_range): New function.
4219 (print_ranges): New function.
4220
42212005-04-13 Julian Brown <julian@codesourcery.com>
4222
4223 * decl.c (finish_method): Give methods once-only linkage.
4224
42252005-04-11 Richard Sandiford <rsandifo@redhat.com>
4226
4227 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
4228
42292005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4230
4231 * java-tree.h: Don't use PARAMS().
4232
42332005-04-07 Per Bothner <per@bothner.com>
4234
4235 * class.c (push_class): By default, suppress debug output.
4236 (finish_class): Enable debug output for classes we're emitting.
4237
42382005-04-07 Andrew Haley <aph@redhat.com>
4239
4240 * gcj.texi: Correct gcj-dbtool instructions.
4241
42422005-04-04 Kazu Hirata <kazu@cs.umass.edu>
4243
4244 * gcj.texi: Fix a typo.
4245 * lang.c: Fix a comment typo.
4246
42472005-04-01 Thomas Fitzsimmons <fitzsim@redhat.com>
4248
4249 * gcj.texi (Invoking gij): Add descriptions of new -X options.
4250 Mention recognized-and-ignored compatibility options.
4251 (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
4252 JvFree.
4253 (About CNI): Add Memory allocation section.
4254
42552005-04-01 Tom Tromey <tromey@redhat.com>
4256
4257 * decl.c (java_init_decl_processing): Fix types of
4258 _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
4259 _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
4260 _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
4261
42622005-03-31 Jan Hubicka <jh@suse.cz>
4263
4264 * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
4265 * class.c: Include cgraph.h
4266 (make_local_functoin_alias): Mark aslias as needed.
4267 * resource.c: Include cgraph.h
4268 (compile_resource_data): Go via cgraph interface.
4269
42702005-03-30 Ian Lance Taylor <ian@airs.com>
4271
4272 * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
4273
42742005-03-30 Tom Tromey <tromey@redhat.com>
4275
4276 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
4277 inner_class_info_index==0 or outer_class_info_index==0.
4278
42792005-03-29 Tom Tromey <tromey@redhat.com>
4280
4281 * gcj.texi (libgcj Runtime Properties): Document
4282 gnu.gcj.runtime.endorsed.dirs.
4283
42842005-03-24 Anthony Green <green@redhat.com>
4285
4286 * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
4287 'gcj-dbtool -p'.
4288
42892005-03-23 Tom Tromey <tromey@redhat.com>
4290
4291 * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
4292 (parse_version): Use it.
4293
42942005-03-23 Joseph S. Myers <joseph@codesourcery.com>
4295
4296 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
4297
42982005-03-18 Andrew Haley <aph@redhat.com>
4299
4300 PR java/20522
4301 * decl.c (update_aliases): Don't update variables that are about
4302 to die.
4303 (maybe_poplevels): Add comment.
4304
43052005-03-17 Bryce McKinlay <mckinlay@redhat.com>
4306
4307 PR java/20502
4308 * jcf-parse.c (duplicate_class_warning): New function.
4309 (java_parse_file): Call duplicate_class_warning if
4310 CLASS_FROM_CURRENTLY_COMPILED_P is already set.
4311 (parse_zip_file_entries): Likewise. Also set
4312 CLASS_FROM_CURRENTLY_COMPILED_P.
4313
43142005-03-16 Andrew Haley <aph@redhat.com>
4315
4316 * expr.c (expand_java_arrayload): Don't generate a
4317 NullPointerException based on the type of the node.
4318 (build_java_array_length_access): Likewise.
4319
43202005-03-15 Zack Weinberg <zack@codesourcery.com>
4321
4322 * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
4323
43242005-03-11 Tom Tromey <tromey@redhat.com>
4325
4326 * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
4327 (libgcj Runtime Properties): Document the default .db.
4328
43292005-03-10 Ranjit Mathew <rmathew@hotmail.com>
4330
4331 PR java/20312
4332 * parse.y (checks_throws_clauses): Check exceptions list even when
4333 the base class does not come from a source file being compiled.
4334 (java_complete_lhs): Remove unused variable 'wfl'.
4335
43362005-03-09 Ranjit Mathew <rmathew@hotmail.com>
4337
4338 PR java/20338
4339 * decl.c (finish_method): Emit _Jv_InitClass for private static
4340 methods inside inner classes as well.
4341
43422005-03-08 Julian Brown <julian@codesourcery.com>
4343 * Revert patch from 2005-03-08 for causing bootstrap failure on
4344 ppc-darwin.
4345
43462005-03-08 Julian Brown <julian@codesourcery.com>
4347
4348 * decl.c (finish_method): Give methods once-only linkage.
4349
43502005-03-07 Ranjit Mathew <rmathew@hotmail.com>
4351
4352 * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
4353
43542005-03-07 Bryce McKinlay <mckinlay@redhat.com>
4355
4356 * verify-glue.c (vfy_is_assignable_from): Perform static check using
4357 can_widen_reference_to if the C++ ABI is in use.
4358 (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
4359 * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
4360 type_isresolved, init_state, set_pc, state_get_pc,
4361 _Jv_BytecodeVerifier): Clean up unused and disabled functions.
4362 (verify_fail): Report the current PC from the verifier context.
4363 (free_state): Remove #if 0 block to enable this function.
4364 (free_verifier_context): Call free_state on state_list iterator
4365 values before freeing them.
4366 * expr.c (pop_type_0): Pop correct type for error message when stack
4367 contains a multi-word type.
4368
43692005-03-07 Ranjit Mathew <rmathew@hotmail.com>
4370
4371 * expr.c (build_java_array_length_access): Remove !flag_new_verifier
4372 for known NULL array length access.
4373
43742005-03-07 Tom Tromey <tromey@redhat.com>
4375
4376 * gcj.texi (Invoking gcj-dbtool): Document '-f'.
4377
43782005-03-06 Kazu Hirata <kazu@cs.umass.edu>
4379
4380 * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
4381 typeck.c: Update copyright.
4382
43832005-03-06 Ranjit Mathew <rmathew@hotmail.com>
4384
4385 Remove xref code.
4386 * xref.c, xref.h: Remove file.
4387 * Make-lang.in (java/xref.o): Remove.
4388 * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
4389 * lang.c (flag_emit_xref): Remove definition.
4390 * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
4391 * typeck.c (convert): Remove use of do_not_fold.
4392 * parse.y (do_not_fold): Remove definition.
4393 (parser grammar): Remove xref code.
4394 (maybe_create_class_interface_decl, create_class): Likewise.
4395 (register_fields, method_header, finish_method_declaration): Likewise.
4396 (declare_local_variables, source_end_java_method): Likewise.
4397 (java_complete_expand_classes): Do not set do_not_fold.
4398 (java_complete_expand_method): Remove xref code.
4399 (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
4400 (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
4401 (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
4402 (patch_synchronized_statement, patch_throw_statement): Likewise.
4403 (maybe_build_class_init_for_field): Likewise.
4404
44052005-03-05 Kazu Hirata <kazu@cs.umass.edu>
4406
4407 * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
4408 instead of IS_NON_TYPE_CODE_CLASS.
4409
44102005-03-04 Andrew Haley <aph@redhat.com>
4411
4412 PR java/18362
4413 * class.c (set_method_index): Don't set method_index if it is
4414 NULL_TREE.
4415 (layout_class_method): Don't complain about "non-static method foo
4416 overrides static method" in the case of indirect dispatch.
4417
44182005-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4419
4420 * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
4421 warning.
4422 * Make-lang.in: Don't elide warnings in jcf-io.c.
4423
44242005-03-01 Per Bothner <per@bothner.com>
4425
4426 PR java/8608
4427 * check-init.c (wfl): Remove static.
4428 (final_assign_error, check_init): Replace calls to parse_error_context
4429 by plain error.
4430 (check_init): Save, set, and restore input_location for each exp.
4431
44322005-03-01 Per Bothner <per@bothner.com>
4433
4434 * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
4435 if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
4436 * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
4437
44382005-03-01 Per Bothner <per@bothner.com>
4439
4440 * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
4441
44422005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com>
4443
4444 PR libgcj/16923
4445 * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
4446 JvVMOption.
4447
44482005-02-22 Tom Tromey <tromey@redhat.com>
4449
4450 PR java/20056:
4451 * verify-impl.c (EITHER): New define.
4452 (types_compatible): Handle it.
4453 (check_field_constant): Use it.
4454
44552005-02-18 Tom Tromey <tromey@redhat.com>
4456
4457 PR java/20056:
4458 * verify-impl.c (types_equal): Fixed test.
4459
4460 PR java/20056:
4461 * verify-glue.c (vfy_class_has_field): New function.
4462 * verify.h (vfy_class_has_field): Declare.
4463 * verify-impl.c (check_field_constant): Added 'putfield'
4464 argument.
4465 (verify_instructions_0): Updated.
4466 (types_equal): New function.
4467
44682005-02-14 Tom Tromey <tromey@redhat.com>
4469
4470 PR java/19921:
4471 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the
4472 stack effect of multianewarray.
4473
44742005-02-14 Andrew Haley <aph@redhat.com>
4475
4476 PR java/19907
4477 * expr.c (expand_byte_code): Call promote_arguments().
4478 (promote_arguments): New function.
4479 * decl.c (check_local_unnamed_variable): Remove special case for
4480 new verifier.
4481 (find_local_variable): Promote all boolean types to int
4482 when searching for local variable decls.
4483
44842005-02-12 Kazu Hirata <kazu@cs.umass.edu>
4485
4486 * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
4487 parse-scan.y: Update copyright.
4488
44892005-02-11 Per Bothner <per@bothner.com>
4490
4491 PR java/15543
4492 * parse-scan.y (input_location): Remove variable.
4493 (main_input_filename): New - replaces input_filename, which isn't
4494 settable if USE_MAPPED_LOCATION.
4495 * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
4496 so we don't reference input_location or wfl_operator in that case.
4497 * jv-scan.c (expand_location): Remove - no longer used.
4498 (main): Set main_input_filename rather than input_filename.
4499
45002005-02-09 Richard Henderson <rth@redhat.com>
4501
4502 * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
4503 * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
4504
45052005-02-08 Marcin Dalecki <martin@dalecki.de>
4506
4507 * expr.c (add_type_assertion): Use the proper enumeration type,
4508 since this is what htab_find_slot() is expecting.
4509
45102005-02-06 Joseph S. Myers <joseph@codesourcery.com>
4511
4512 * gcj.texi: Update copyright dates.
4513
45142005-02-02 Tom Tromey <tromey@redhat.com>
4515
4516 * gcj.texi (libgcj Runtime Properties): Default library_control
4517 to 'cache'.
4518
45192005-02-02 Ranjit Mathew <rmathew@hotmail.com>
4520
4521 PR java/15543
4522 * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
4523 (modifiers) when square brackets are present in a declaration for
4524 a final paramter.
4525 * jv-scan.c (main): Set input_filename and input_line.
4526
45272005-02-01 Tom Tromey <tromey@redhat.com>
4528
4529 PR java/19742:
4530 * gjavah.c (get_field_name): Don't override name for JNI header.
4531
45322005-02-01 Roger Sayle <roger@eyesopen.com>
4533
4534 * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
4535 of unsigned types using iushr and lushr JVM bytecodes.
4536
45372005-02-01 Ranjit Mathew <rmathew@hotmail.com>
4538
4539 PR java/19738
4540 * gjavah.c (jni_print_float): Do not emit floating-point
4541 initialiser for a static final field.
4542 (jni_print_double): Likewise.
4543
45442005-02-01 Mark Mitchell <mark@codesourcery.com>
4545
4546 Revert:
4547 2005-01-31 Mark Mitchell <mark@codesourcery.com>
4548 * gjavah.c (print_field_info): Mark static data members of
4549 floating-point type with "__extension__".
4550
45512005-01-31 Mark Mitchell <mark@codesourcery.com>
4552
4553 * gjavah.c (print_field_info): Mark static data members of
4554 floating-point type with "__extension__".
4555
45562005-02-01 Ranjit Mathew <rmathew@hotmail.com>
4557
4558 PR java/9157
4559 * parse.y (build_string_concatenation): Remove redundant if.
4560 (patch_conditional_expr): Attempt to patch_string() the condition
4561 of a ?: as well, in addition to its other operands.
4562
45632005-01-25 Tom Tromey <tromey@redhat.com>
4564
4565 * Make-lang.in (java/java-tree-inline.o): Removed.
4566
45672005-01-25 Ranjit Mathew <rmathew@hotmail.com>
4568
4569 PR java/19070
4570 * parse.y (patch_binop): Allow comparisons against NULL only
4571 if the other operand is of a reference type.
4572
45732005-01-24 Tom Tromey <tromey@redhat.com>
4574
4575 * java-tree.h (gcj_abi_version): Declare.
4576 * class.c (make_class_data): Push gcj_abi_version into "next"
4577 field. Renamed field.
4578 * decl.c (gcj_abi_version): New global.
4579 (parse_version): New function.
4580 (java_init_decl_processing): Call it. Renamed 'next' field.
4581 Include version.h.
4582 (GCJ_BINARYCOMPAT_ADDITION): New define.
4583
45842005-01-24 Roger Sayle <roger@eyesopen.com>
4585
4586 PR java/19295
4587 * jcf-write.c (generate_bytecode_insns): Conversions between
4588 integer types of the same precision shouldn't generate widening
4589 or narrowing conversion bytecodes.
4590
45912005-01-22 Kazu Hirata <kazu@cs.umass.edu>
4592
4593 * java-except.h, java-tree.h: Remove unused prototypes.
4594
45952005-01-20 Andrew Pinski <pinskia@gcc.gnu.org>
4596
4597 PR java/18091:
4598 * jcf-write.c (perform_relocations): Don't call memcpy if source
4599 and destination are the same.
4600
46012005-01-17 Tom Tromey <tromey@redhat.com>
4602
4603 * verify-impl.c (get_short): Sign extend.
4604 (get_int): Likewise.
4605
46062005-01-12 Ranjit Mathew <rmathew@hotmail.com>
4607
4608 * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
4609 with TYPE_SIZE.
4610
46112005-01-10 Ranjit Mathew <rmathew@hotmail.com>
4612
4613 * verify.c: Revert to the version before the BC-ABI merge.
4614
46152005-01-10 Ranjit Mathew <rmathew@hotmail.com>
4616
4617 PR java/19277
4618 * check-init.c (check_init): Take care of references that do not
4619 have an explicit final variable declaration (e.g. array length
4620 access) for pre/post in/de-crement operators.
4621
46222005-01-08 Mark Wielaard <mark@klomp.org>
4623
4624 * parse.y (process_imports): Allocate (and free) original_name only
4625 when not already defined.
4626 * jcf-parse.c (read_class): Free results of find_class() and
4627 lrealpath().
4628 (java_parse_file): Keep pointer to head of file_list and free when
4629 done. Free result of lrealpath().
4630
46312005-01-05 Tom Tromey <tromey@redhat.com>
4632
4633 * gcj.texi (Standard Properties): java.ext.dirs is now used.
4634
46352004-12-20 Andrew Haley <aph@redhat.com>
4636
4637 * typeck.c: Use fold_convert for ints and booleans.
4638
46392004-12-17 Andrew Haley <aph@redhat.com>
4640
4641 PR java/18931
4642 * typeck.c (convert): Use a CONVERT_EXPR when converting to
4643 BOOLEAN_TYPE or CHAR_TYPE.
4644 (convert_to_boolean, convert_to_char) : Remove.
4645 * convert.h (convert_to_boolean, convert_to_char) : Remove.
4646 * expr.c (expand_load_internal): Do type conversion if type is not
4647 as required.
4648
46492004-12-13 Danny Smith <dannysmith@users.sourceforge.net>
4650
4651 PR target/18459
4652 * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
4653 Update comment.
4654
46552004-12-07 Andrew Haley <aph@redhat.com>
4656
4657 PR java/18811:
4658 * jcf-parse.c (load_class): Remove sanity test for missing inner
4659 class file.
4660
46612004-12-06 Tom Tromey <tromey@redhat.com>
4662
4663 * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
4664 (java.uninstall): Likewise.
4665 (java.maintainer-clean): Likewise.
4666 (.INTERMEDIATE): Likewise.
4667 (java.install-man): Likewise.
4668 (gcj-dbtool.pod): New target.
4669 * gcj.texi (Code Generation): Document -findirect-dispatch.
4670 (libgcj Runtime Properties): Document
4671 gnu.gcj.precompiled.db.path.
4672 (Top): Link to "Invoking gcj-dbtool".
4673
46742004-12-06 Tom Tromey <tromey@redhat.com>
4675
4676 PR java/14853:
4677 * java-tree.h (extract_field_decl): Declare.
4678 * parse.y (extract_field_decl): Renamed from
4679 strip_out_static_field_access_decl. No longer static.
4680 * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
4681
46822004-12-03 Tom Tromey <tromey@redhat.com>
4683
4684 * lang.c (flag_new_verifier): Define.
4685 (java_post_options): Set flag_new_verifier if indirect dispatch
4686 is being used.
4687 * lang.opt (fnew-verifier): Removed.
4688
46892004-12-03 Tom Tromey <tromey@redhat.com>
4690
4691 PR bootstrap/14614:
4692 * Make-lang.in (java.install-common): Only install transformed
4693 gcjh if gcj-cross exists.
4694
46952004-12-03 Andrew Haley <aph@redhat.com>
4696
4697 PR java/18812
4698 * except.c (link_handler): Patch 'outer' field of siblings of the
4699 range we're demoting.
4700
47012004-12-03 Andrew Haley <aph@redhat.com>
4702
4703 PR java/18697
4704 * class.c (layout_class_method): Don't fail to override a method
4705 simply because it has DECL_ARTIFICIAL set.
4706
47072004-12-02 Tom Tromey <tromey@redhat.com>
4708
4709 PR java/16675:
4710 * parse.y (craft_constructor): Special case null_pointer_node.
4711
47122004-12-02 Tom Tromey <tromey@redhat.com>
4713
4714 PR java/18741:
4715 * java-gimplify.c (java_gimplify_expr): Don't call
4716 SET_EXPR_LOCATION unless wrapped tree is an expression.
4717
47182004-11-27 Per Bothner <per@bothner.com>
4719
4720 * jcf-parse.c (set_source_filename): Improvement to Andrew's fix:
4721 Fix fencepost error in 'i', which got executed one too many times.
4722 Also, fold memcpy into explicit loop, as originally intended.
4723 Also, free temporary 'buf' which otherwise leaks.
4724
47252004-11-27 Per Bothner <per@bothner.com>
4726
4727 * expr.c (build_expr_wfl): Only declare last_file and last_filenode
4728 local static variables if not USE_MAPPED_LOCATION.
4729
47302004-11-27 Kazu Hirata <kazu@cs.umass.edu>
4731
4732 * class.c, decl.c, expr.c: Fix comment typos.
4733
47342004-11-26 Andrew Pinski <pinskia@physics.uc.edu>
4735
4736 PR java/18305
4737 * decl.c (end_java_method): Call
4738 attach_init_test_initialization_flags on all the init_decls.
4739 * parse.y (attach_init_test_initialization_flags): Move to ...
4740 * expr.c (attach_init_test_initialization_flags): here and
4741 support BIND_EXPR also.
4742 * java-tree.h (attach_init_test_initialization_flags): Prototype.
4743 * jcf-parse.c (parse_class_file): Don't disable class init
4744 optimization.
4745
47462004-11-25 Joseph S. Myers <joseph@codesourcery.com>
4747
4748 * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
4749 in diagnostics.
4750
47512004-11-24 Richard Henderson <rth@redhat.com>
4752
4753 * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
4754 vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
4755
47562004-11-24 Tom Tromey <tromey@redhat.com>
4757
4758 * verify.c (defer_merging): Don't use C++-style comment.
4759 * verify.h (java_opcode): Added java_opcode_end.
4760 * class.c (build_class_ref): Remove C++ comment and old FIXME.
4761
4762 * verify-impl.c (vfy_push_type): Removed bogus "return".
4763 (initialize_stack): Use vfy_alloc and vfy_free.
4764 (verify_instructions_0): Likewise.
4765
4766 * Merged gcj-abi-2-dev-branch to trunk.
4767
47682004-11-24 Andrew Haley <aph@redhat.com>
4769
4770 * jcf-parse.c (parse_class_file): Set file_start_location.
4771
47722004-11-10 Tom Tromey <tromey@redhat.com>
4773
4774 * class.c (make_field_value): Don't call build_static_field_ref.
4775 (build_static_field_ref): Don't emit direct references when using
4776 indirect dispatch.
4777
4778 * gcj.texi (Invoking gij): Document -verbose. Put -verbose and
4779 -verbose:class into man page synopsis.
4780
47812004-11-09 Tom Tromey <tromey@redhat.com>
4782
4783 * expr.c (build_java_arraystore_check): Still generate check if
4784 element type is itself an array.
4785
47862004-11-08 Tom Tromey <tromey@redhat.com>
4787
4788 * java-tree.h (soft_check_assignment_node): Removed.
4789 (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
4790 * decl.c (java_init_decl_processing): Don't initialize
4791 soft_check_assignment_node.
4792
47932004-11-05 Tom Tromey <tromey@redhat.com>
4794
4795 * class.c (layout_class_methods): Don't add Miranda methods when
4796 using indirect dispatch.
4797
47982004-11-05 Bryce McKinlay <mckinlay@redhat.com>
4799
4800 * class.c (make_class_data): Call emit_assertion_table to set the
4801 'assertion_table' field.
4802 (build_signature_for_libgcj): Move here from expr.c.
4803 (add_assertion_table_entry): New function. Callback for assertion
4804 hashtable traversal.
4805 (emit_assertion_table): New. Take class argument, and generate
4806 assertion table DECL based on the TYPE_ASSERTIONS hashtable.
4807 * decl.c (init_decl_processing): Define assertion_entry_type record.
4808 Push 'assertion_table' class field instead of 'verify'.
4809 * expr.c (type_assertion_eq): Compare 'assertion_code' field.
4810 (type_assertion_hash): Include 'assertion_code' in hash.
4811 (add_type_assertion): Rewritten. Take class and assertion_code
4812 arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
4813 (can_widen_reference_to): Use new add_type_assertion() arguments.
4814 * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
4815 JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
4816 (verify_identifier_node): Removed.
4817 (assertion_entry_type, assertion_table_type): New.
4818 (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
4819 assertion code definitions.
4820 (struct type_assertion): Add assertion_code. Rename 'source_type' and
4821 'target_type' to 'op1' and 'op2'.
4822 (add_type_assertion): Declare.
4823 (lang_printable_name_wls): Remove unused definition.
4824 * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
4825 to emit runtime assertion.
4826 (vfy_note_stack_type): Clean up non-C90 declarations.
4827 (vfy_note_local_type): Likewise.
4828 * verify.h (vfy_is_assignable_from): Declare.
4829 * verify-impl.c (is_assignable_from_slow): Remove unused function.
4830 (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
4831 instead of is_assignable_from_slow().
4832 (types_compatible): Reinstate ref_compatible() call.
4833
48342004-11-04 Tom Tromey <tromey@redhat.com>
4835
4836 * class.c (build_static_field_ref): Reverted previous patch.
4837
4838 * class.c (build_static_field_ref): Don't emit direct references
4839 when using indirect dispatch.
4840
48412004-11-03 Tom Tromey <tromey@redhat.com>
4842
4843 * expr.c (expand_java_arrayload): Set lhs_type_node.
4844 (expand_java_arraystore): Set rhs_type_node.
4845
48462004-11-02 Tom Tromey <tromey@redhat.com>
4847
4848 * jcf-parse.c (compute_class_name): Use filename length from zip
4849 directory, not strlen.
4850
4851 * expr.c (expand_invoke): Mark new interface methods as abstract.
4852
48532004-11-01 Tom Tromey <tromey@redhat.com>
4854
4855 * verify-impl.c (push_jump): Removed check for uninitialized
4856 objects.
4857 (push_exception_jump): Likewise.
4858 (handle_ret_insn): Likewise.
4859 (handle_jsr_insn): Likewise.
4860 (state_check_no_uninitialized_objects): Removed.
4861
4862 * decl.c (check_local_unnamed_variable): Recognize
4863 promoted-to-int parameters when using the new verifier.
4864 * expr.c (expand_java_arraystore): Explicitly request array type
4865 when using new verifier.
4866 (expand_java_arrayload): Likewise.
4867 (invoke_build_dtable): Don't pass object_type_node as
4868 expression argument to build_java_indirect_ref.
4869 (build_java_check_indexed_type): Do nothing.
4870 (build_java_arraystore_check): Handle case where array doesn't
4871 have array type.
4872 (build_java_array_length_access): Likewise.
4873 (expand_invoke): Handle case where interface overrides a method
4874 from Object.
4875 (pop_type_0): Always succeed for reference types.
4876 (process_jvm_instruction): Don't pop a value in a dead
4877 exception handler.
4878 (pop_arguments): Convert arguments to correct types.
4879
48802004-10-29 Andrew Haley <aph@redhat.com>
4881
4882 * jcf-parse.c (give_name_to_class): Remove line that was
4883 incorrectly merged.
4884
48852004-10-29 Andrew Haley <aph@redhat.com>
4886
4887 * jcf-parse.c (set_source_filename): Add code to build new sfname.
4888
48892004-10-20 Andrew Haley <aph@redhat.com>
4890
4891 * decl.c (end_java_method): Don't expand if flag_syntax_only.
4892
48932004-10-26 Tom Tromey <tromey@redhat.com>
4894
4895 * verify.h (vfy_notify_verified): Removed.
4896 * verify-glue.c (vfy_notify_verified): Removed.
4897
48982004-10-26 Tom Tromey <tromey@redhat.com>
4899
4900 * verify-impl.c (debug_print_state): Declare `i' before code.
4901 (merge_types): Modify `t' when it is null_type.
4902
49032004-10-26 Tom Tromey <tromey@redhat.com>
4904
4905 * verify-impl.c (type_print): Renamed from print. Now static and
4906 takes an argument.
4907 (debug_print_state): Use type_print.
4908
49092004-10-25 Tom Tromey <tromey@redhat.com>
4910
4911 * expr.c (build_invokeinterface): Compute correct offset for
4912 index into interface methods.
4913
49142004-10-20 Tom Tromey <tromey@redhat.com>
4915
4916 * java-tree.h (verify_jvm_instructions_new): Declare.
4917
4918 * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
4919 command line.
4920
4921 * verify-impl.c (verify_instructions): Correctly handle wide
4922 types on the stack.
4923 * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
4924 (vfy_get_component_type): Strip pointer types.
4925 (vfy_find_class): Use get_type_from_signature. Strip pointer
4926 types.
4927 Include java-except.h.
4928
49292004-10-20 Bryce McKinlay <mckinlay@redhat.com>
4930
4931 * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
4932 vfy_push_type_t, set_variable, add_new_state, merge_into,
4933 handle_jsr_insn, branch_prepass, check_class_constant,
4934 check_wide_constant, get_one_type, compute_static_types,
4935 verify_instructions_0): Clean up C99 declarations after statements.
4936
49372004-10-20 Tom Tromey <tromey@redhat.com>
4938
4939 * verify-impl.c (merge_refs): Compare reference against iterator,
4940 not ref2.
4941
4942 * verify-glue.c (vfy_tag): Mask off resolved flag.
4943
49442004-10-19 Tom Tromey <tromey@redhat.com>
4945
4946 * verify-impl.c (verify_instructions): Call vfy_note_local_type.
4947 (init_state_with_stack): Initialize `this_type' in state.
4948 (verify_method): Use debug_print.
4949 * verify-glue.c (vfy_is_primitive): Removed debugging print.
4950 (vfy_note_stack_depth): Reverted last patch.
4951 (vfy_note_stack_type): Note pointer to Object, not Object.
4952 (vfy_note_local_type): Likewise.
4953
4954 * verify.h (vfy_note_instruction_seen): Declare.
4955 * verify-glue.c (verify_jvm_instructions_new): Set
4956 BCODE_EXCEPTION_TARGET on target instruction.
4957 (vfy_note_instruction_seen): New function.
4958 * verify-impl.c (FLAG_INSN_SEEN): New define.
4959 (verify_instructions_0): Set flag on instruction. Save state for
4960 PC=0 later.
4961 (verify_instructions): Call vfy_note_instruction_seen.
4962
4963 * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
4964 (verify_jvm_instructions_new): Call method_init_exceptions,
4965 add_handler, and handle_nested_ranges.
4966 * verify-impl.c (verify_method): Return 1 on success.
4967 (verify_instructions_0): Save the state at PC=0.
4968
4969 * verify-impl.c (init_type_from_class): Set is_resolved and
4970 ref_next on new ref_intersection.
4971 (init_type_from_string): Likewise.
4972
49732004-10-15 Bryce McKinlay <mckinlay@redhat.com>
4974
4975 * expr.c (expand_bytecode): Use verify_jvm_instructions_new
4976 if flag_new_verifier is set.
4977 * java-tree.h (flag_new_verifier): Declare.
4978 * lang.opt (fnew-verifier): New option.
4979 * verify-impl.c: Work around namespace pollution by undef'ing
4980 'current_class'.
4981 (struct verifier_context): Make 'bytecode' const.
4982 (verify_fail_pc): Pass -1 PC argument to vfy_fail.
4983 (types_compatible): For the BC-ABI, always consider reference types
4984 compatible.
4985 (check_class_constant): Use vfr->current_class.
4986 (check_constant): Likewise.
4987 (check_wide_constant): Likewise.
4988 (check_field_constant): Check for 'L' at start of type name.
4989 (get_one_type): Return pointer instead of type. Set type result in
4990 caller via passed type pointer.
4991 (compute_argument_types): Update to use new get_one_type arguments.
4992 (compute_return_type): Likewise.
4993 (make_verifier_context): New. Allocate and initialize 'vfr'.
4994 (free_verifier_context): New. Free 'vfr' and its contents.
4995 (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
4996 and free_verifier_context.
4997
49982004-10-15 Tom Tromey <tromey@redhat.com>
4999
5000 * verify-glue.c (vfy_note_local_type): Mark argument as unused.
5001 * verify.h (vfy_fail): Fixed formatting.
5002
5003 * verify-impl.c (vfr): Fixed comment formatting.
5004 (collapse_type): New function.
5005 (verify_instructions): Notify compiler about type map.
5006 * verify.h (vfy_note_stack_depth): Updated.
5007 (vfy_note_stack_type): Likewise.
5008 (vfy_note_local_type): Likewise.
5009 (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
5010 Declare.
5011 * verify-glue.c (vfy_note_stack_depth): Correctly size type
5012 state. Added `method' argument.
5013 (vfy_note_stack_type): Renamed from vfy_note_type. Added `method'
5014 argument.
5015 (vfy_note_local_type): New function.
5016 (vfy_unsuitable_type): Likewise.
5017 (vfy_return_address_type): Likewise.
5018 (vfy_null_type): Likewise.
5019
5020 * verify.h (VFY_IN_GCC): Removed.
5021 (VFY_WANT_TYPEMAP): Removed.
5022 * verify-impl.c (verify_instructions_0): Removed useless "\".
5023 (struct state) <next>: Uncomment.
5024
50252004-10-13 Bryce McKinlay <mckinlay@redhat.com>
5026
5027 * verify-impl.c: Formatting fixes. Reformat C++-style comments to
5028 C-style.
5029
50302004-10-06 Bryce McKinlay <mckinlay@redhat.com>
5031
5032 * Make-lang.in (verify.o): Re-enabled this target.
5033 * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
5034 (vfy_get_interface): Likewise.
5035 (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
5036 * verify.h (verify_jvm_instructions_new): Declare.
5037 * verify-impl.c (free_state): Temporarily comment out unused
5038 function.
5039
50402004-10-06 Tom Tromey <tromey@redhat.com>
5041
5042 * java-tree.h (JV_STATE_READ): New enum value.
5043
50442004-10-06 Bryce McKinlay <mckinlay@redhat.com>
5045
5046 * verify.h: New file.
5047
50482004-10-05 Bryce McKinlay <mckinlay@redhat.com>
5049
5050 * verify-impl.c, verify-glue.c, verify.h: New files.
5051 * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
5052
50532004-09-24 Andrew Haley <aph@redhat.com>
5054
5055 * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
5056 for a slot if it's of pointer type.
5057
50582004-09-14 Tom Tromey <tromey@redhat.com>
5059
5060 * class.c (make_class_data): Correctly initialize "state" field.
5061 Initialize "engine" field.
5062 * decl.c (java_init_decl_processing): Add "engine" field.
5063
50642004-09-10 Andrew Haley <aph@redhat.com>
5065
5066 PR java/12760
5067 * expr.c (build_invokeinterface): Use fast method for interface
5068 dispatch.
5069 * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
5070 JTI_ITABLE_PTR_TYPE.
5071 (struct lang_type): Add itable_methods, itable_decl, itable_syms_decl.
5072 (emit_symbol_table): Add new arg, element_size.
5073 * decl.c (java_init_decl_processing): Initialize Class.itable.
5074 * class.c (GEN_TABLE): New macro.
5075 (gen_indirect_dispatch_tables): Use it. Add itable.
5076 (make_class_data): Add new arg for emit_symbol_table().
5077 Emit itable.
5078 (add_miranda_methods): Make sure search_class has been parsed.
5079 (emit_symbol_table): Add new arg, element_size.
5080
50812004-09-06 Andrew Haley <aph@redhat.com>
5082
5083 * verify.c (merge_types): Return Object for all merges of
5084 interfaces.
5085 * expr.c (add_type_assertion): Don't generate assertions when
5086 source type is array of Object.
5087
50882004-09-03 Andrew Haley <aph@redhat.com>
5089
5090 * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
5091
5092 * lang.c (java_post_options): Force flag_verify_invocations if
5093 we're not using indirect dispatch.
5094
5095 * expr.c (pop_type_0): Move test for interfaces before call to
5096 can_widen_reference_to().
5097 (build_signature_for_libgcj): Remove generation of canonical array
5098 type.
5099 (add_type_assertion): Canonicalize both arrays.
5100 Don't assert that type X can be assigned to Object.
5101 Don't assert that type X an be assigned to type X.
5102 Don't assert that Object can be assigned to type X.
5103 (can_widen_reference_to): Warn whenever we generate an assertion.
5104 (process_jvm_instruction): Use throwable_type_node for the type of
5105 an exception class.
5106
51072004-09-01 Andrew Haley <aph@redhat.com>
5108
5109 * decl.c (java_init_decl_processing): Change
5110 verify_identifier_node to "__verify".
5111 * expr.c (add_type_assertion): Use verify_identifier_node for name.
5112 * java-tree.h (verify_identifier_node): Change to "__verify".
5113
5114 * expr.c (build_signature_for_libgcj): New function.
5115 (add_type_assertion): Use it to construct signatures for
5116 source_type and target_type.
5117
51182004-08-27 Andrew Haley <aph@redhat.com>
5119
5120 * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
5121 (verify_identifier_node): New.
5122 (TYPE_VERIFY_METHOD): New.
5123 (struct type_assertion): New type.
5124 * expr.c (type_assertion_eq): New function.
5125 (type_assertion_hash): New function.
5126 (add_type_assertion): New function.
5127 (can_widen_reference_to): Call add_type_assertion().
5128 * decl.c (java_init_decl_processing): Add verify_identifier_node.
5129 * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
5130 (finish_class): Output TYPE_VERIFY_METHOD (type).
5131
5132 * decl.c (end_java_method): Nullify unused fields.
5133
51342004-08-17 Andrew Haley <aph@redhat.com>
5135
5136 * verify.c (defer_merging): Quieten.
5137 * jcf-parse.c (load_class): Only try to open a class file if it's
5138 java.lang.Object or if it's part of the current compilation.
5139 Check that the class we just tried to load is the class we just
5140 loaded. Quieten.
5141 (java_parse_file): Set flag_verify_invocations off if we're
5142 compiling from .class.
5143 (parse_zip_file_entries): Abort if we try to read a dummy class.
5144 * expr.c (can_widen_reference_to): Quieten.
5145 (build_invokevirtual): Abort if we try to invokevirtual an
5146 interface.
5147 (expand_invoke): Don't build a non-interface call to an interface.
5148 (build_instanceof): Don't do premature optimization if
5149 flag_verify_invocations is not set.
5150 * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
5151 from superclass.
5152 (build_static_field_ref): Add correct type conversion for
5153 field_address.
5154 (add_miranda_methods): Disable generation of Miranda methods for
5155 dummy classes.
5156 (layout_class_method): Don't complain about non-static method
5157 overrides static method with dummy classes.
5158
51592004-08-13 Tom Tromey <tromey@redhat.com>
5160
5161 * class.c (build_static_field_ref): Re-enable atable lookups for
5162 static fields.
5163
5164 * parse.y (strip_out_static_field_access_decl): Indentation fix.
5165
51662004-08-11 Tom Tromey <tromey@redhat.com>
5167
5168 * gcj.texi (libgcj Runtime Properties): Document new properties.
5169
51702004-08-06 Andrew Haley <aph@redhat.com>
5171
5172 * jcf-parse.c (load_class): Check that we really have loaded the
5173 class we're looking for.
5174
51752004-07-19 Andrew Haley <aph@redhat.com>
5176
5177 * verify.c (verify_jvm_instructions): Comment change only.
5178
5179 * typeck.c (build_java_array_type): Add size field to array name.
5180
5181 * java-tree.h (LOCAL_SLOT_P): New.
5182 (update_aliases): Add PC argument.
5183 (pushdecl_function_level): New function.
5184
5185 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
5186 MODIFY_EXPR, and SAVE_EXPR.
5187 (java_gimplify_modify_expr): New function.
5188
5189 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
5190 (expand_iinc): Pass PC to update_aliases().
5191 (STORE_INTERNAL): Likewise.
5192 (process_jvm_instruction): Likewise.
5193
5194 * decl.c (base_decl_map): New variable.
5195 (uniq): New variable.
5196 (update_aliases): Rewrite with more thorough checking.
5197 (debug_variable_p): New function.
5198 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
5199 (check_local_named_variable): Delete whole function.
5200 (initialize_local_variable): New function.
5201 (check_local_unnamed_variable): Add checks and comments.
5202 (find_local_variable): Rewrite.
5203 (java_replace_reference): New function.
5204 (function_binding_level): New variable.
5205 (pushdecl_function_level): New function.
5206 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
5207 (maybe_pushlevels): Call pushdecl() on each of the new decls.
5208 (start_java_method): Reset uniq. Create base_decl_map. Set
5209 function_binding_level.
5210 (end_java_method): Null unused fields to save memory.
5211
52122004-06-29 Andrew Haley <aph@redhat.com>
5213
5214 * except.c (expand_start_java_handler): Push a new binding level.
5215 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
5216 register_exception_range() to register where we'll do it.
5217 (expand_end_java_handler): Remove old bogus code. Replace with
5218 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
5219 the top of the expression we're curently building.
5220 (maybe_end_try): Delete.
5221 * decl.c (binding_level.exception_range): New field.
5222 (clear_binding_level): Add field exception_range. Reformat.
5223 (poplevel): Call expand_end_java_handler().
5224 (poplevel): Call java_add_stmt only if functionbody is false.
5225 (maybe_poplevels): Don't call maybe_end_try() from here.
5226 (end_java_method): Clear no longer used trees in function decl.
5227 (register_exception_range): New function.
5228 * java-tree.h (register_exception_range, struct eh_range): Declare.
5229
52302004-06-22 Andrew Haley <aph@redhat.com>
5231
5232 * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
5233 the otable.
5234 * check-init.c (get_variable_decl): Teach check-init about
5235 FIELD_DECLs addressed via the otable.
5236 * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
5237 CLASS_PARSED_P.
5238
52392004-05-28 Andrew Haley <aph@redhat.com>
5240
5241 * jcf-parse.c (load_class): Don't try to read a class that we've
5242 already read.
5243
5244 * expr.c (build_invokeinterface): Use the old-fashioned way of
5245 doing indirect dispatch: look up interfaces by name.
5246 * java-tree.h (enum java_tree_index): Add
5247 JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
5248 * decl.c (java_init_decl_processing): Add
5249 soft_lookupinterfacemethodbyname_node.
5250
5251 * gjavah.c (print_method_info): Final methods have vtable entries,
5252 so gjavah needs to output them.
5253 * class.c (layout_class_method): Generate vtable entries for final
5254 methods.
5255 * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
5256 dispatch, even if a method is final.
5257
52582004-05-25 Andrew Haley <aph@redhat.com>
5259
5260 * class.c (build_symbol_entry): Convert the names of constructors
5261 to init_identifier_node when generating an entry for the indirect
5262 dispatch table.
5263
5264 * expr.c (build_known_method_ref): Generate indirect calls for
5265 all methods marked DECL_EXTERNAL or TREE_PUBLIC.
5266
52672004-05-24 Andrew Haley <aph@redhat.com>
5268
5269 * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
5270 atable element is of the right type.
5271
5272 * class.c (build_static_field_ref): Cast pointer to correct type
5273 for field.
5274
52752004-04-20 Bryce McKinlay <mckinlay@redhat.com>
5276
5277 * Merged with HEAD as of 20040514. Diff against
5278 gcj-abi-2-merge-20040514.
5279
52802004-04-16 Andrew Haley <aph@redhat.com>
5281
5282 * verify.c (check_pending_block): Disable subroutine checks.
5283 (defer_merging): New function.
5284 (merge_types): If types are dummy, use defer_merging to combine them.
5285 (verify_jvm_instructions): If invocation is invokeinterface and
5286 target is dummy, assume target really is an interface.
5287
5288 * parse.y (patch_invoke): Break out call to java_create_object.
5289
5290 * lang.c (flag_verify_invocations): New.
5291
5292 * jcf-parse.c (load_class): If we've already failed to load a
5293 class, don't try again.
5294 (load_class): If we can't find a .class file, don't fail, but emit
5295 a warning.
5296 (parse_class_file): Don't act on dummy methods.
5297
5298 * java-tree.h (flag_verify_invocations): New.
5299 (TYPE_DUMMY): New.
5300 (lang_type.dummy_class): New field.
5301 (java_create_object): New function.
5302 (METHOD_DUMMY): New.
5303
5304 * expr.c (build_field_ref): Widen field offset.
5305 (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
5306 that each of its elements is compatible with the one we're
5307 popping.
5308 (pop_type_0): Issue a warning to say that we need to generate a
5309 runtime check.
5310 (java_create_object): New function.
5311 (build_field_ref): Only generate hard refs if we're not using
5312 indirect dispatch.
5313 (expand_java_field_op): If we're using !verify_invocations and we
5314 see a missing field, generate a decl for it.
5315
5316 (expand_invoke): If a class doesn't have the method we seek and
5317 we're using !flag_verify_invocations, generate a decl for the
5318 method now.
5319
5320 (build_known_method_ref): Always use indirect dispatch via the
5321 atable for static methods.
5322
5323 (expand_java_NEW): Break out object creation into new function,
5324 java_create_object.
5325
5326 (can_widen_reference_to): Issue a warning to say that we need to
5327 generate a runtime check.
5328
5329 * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
5330 (make_method_value): Also use index for interfaces.
5331 (make_class_data): Skip dummy field for inherited data.
5332 Don't build method array for dummy methods.
5333 Set size_in_byte to -1 when using inirect dispatch
5334 Don't build a hard class ref if we don't have a hard ref to our
5335 superclass, or if we're using inirect dispatch.
5336 Null out dispatch tables.
5337
5338 (layout_class_method): Don't complain about non-static method
5339 overrides static method is method is artificial.
5340
5341 (build_static_field_ref): Disable atable references to static
5342 fields for the time being.
5343
5344 (layout_class_methods): Check for CLASS_INTERFACE as
5345 well as CLASS_ABSTRACT.
5346
53472004-11-24 Steven Bosscher <stevenb@suse.de>
5348
5349 * class.c (make_class_data): Don't check flag_inline_functions.
5350 * lang.c (flag_really_inline): Remove unused flag.
5351 (java_handle_option): Don't set it here. Remove special handling
5352 of flag_inline_functions for Java.
5353 (java_init): Don't set flag_inline_trees here. Already done...
5354 (java_post_options): ...here. Don't clear flag_inline_functions.
5355
53562004-11-24 Steven Bosscher <stevenb@suse.de>
5357
5358 * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
5359 (java_gimplify_exit_block_expr): New function.
5360 (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
5361 LABELED_BLOCK_EXPR.
5362 * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
5363 (EXIT_BLOCK_EXPR): Likewise.
5364 * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
5365 (LABELED_BLOCK_BODY): Likewise.
5366 (EXIT_BLOCK_LABELED_BLOCK): Likewise.
5367 * jcf-write.c (generate_bytecode_insns): Don't handle the unused
5368 EXIT_BLOCK_RETURN operand. Use EXIT_BLOCK_LABELED_BLOCK instead of
5369 TREE_OPERAND.
5370 * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
5371 (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
5372 EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. Don't handle the
5373 second operand of EXIT_BLOCK_EXPR.
5374 * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
5375 TREE_OPERAND.
5376 (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
5377
53782004-11-23 Ben Elliston <bje@au.ibm.com>
5379
5380 * xref.h (xref_flag_value): Remove.
5381 (xref_set_data, xref_get_data): Likewise.
5382 (xref_set_current_fp): Likewise.
5383 (XREF_NONE): Likewise.
5384 (XREF_GET_DATA): Likewise.
5385 * xref.c (xref_flag_value): Remove.
5386 (xref_set_data, xref_get_data): Likewise.
5387 (xref_set_current_fp): Likewise.
5388
53892004-11-23 Ben Elliston <bje@au.ibm.com>
5390
5391 * gjavah.c (output_directory): Make static.
5392 (temp_directory): Likewise.
5393
53942004-11-15 Tom Tromey <tromey@redhat.com>
5395
5396 * decl.c (instn_ptr_type_node): Removed.
5397 (lineNumbers_ptr_type_node): Removed.
5398 (jint_type): Removed.
5399 (jint_ptr_type): Removed.
5400
54012004-11-09 Andrew Pinski <pinskia@physics.uc.edu>
5402
5403 PR java/15576
5404 * check-init.c (check_init): Ignore DECL_EXPR.
5405 * expr.c (always_initialize_class_p): Reenable.
5406 (build_class_init): Use a variable to store the decl. Also use
5407 boolean_false_node instead of integer_zero_node.
5408 * parse.y (attach_init_test_initialization_flags): Add a decl_expr
5409 to the block.
5410
54112004-11-08 Tom Tromey <tromey@redhat.com>
5412
5413 PR java/16843:
5414 * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
5415 generating a JNI header.
5416 (print_field_info): Handle JNI headers.
5417 (jni_print_float): Likewise.
5418 (jni_print_double): Likewise.
5419
54202004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
5421
5422 * decl.c (end_java_method): Remove duplicated code.
5423
54242004-11-06 Zack Weinberg <zack@codesourcery.com>
5425 Gerald Pfeifer <gerald@pfeifer.com>
5426
5427 * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
5428 as well.
5429
54302004-11-02 Bryce McKinlay <mckinlay@redhat.com>
5431
5432 PR java/17265
5433 * class.c: Reinstate 2004-08-18 patch.
5434 (make_local_function_alias): Don't create an alias for extern (native)
5435 functions.
5436
54372004-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
5438
5439 PR java/17265
5440 * class.c (make_local_function_alias): Revert 2004-08-18 change.
5441 (make_method_value): Likewise.
5442
54432004-10-21 Andrew Haley <aph@redhat.com>
5444
5445 PR java/18091:
5446 * jcf-parse.c (set_source_filename): Add code to build new sfname.
5447
54482004-10-20 Andrew Haley <aph@redhat.com>
5449
5450 * decl.c (end_java_method): Don't expand if flag_syntax_only.
5451 Remove duplicated code block.
5452
54532004-10-18 Steven Bosscher <stevenb@suse.de>
5454
5455 * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
5456 New rules to work around old Bison warnings.
5457
54582004-10-17 Steven Bosscher <stevenb@suse.de>
5459
5460 * class.c (ident_subst): Always alloca buffer.
5461 * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
5462 opcode after including javaop.def.
5463 * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
5464 conditional expression that exits, to avoid warnings.
5465 * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
5466 a user of an extension.
5467 * win32-host.c: Move check down to have non-empty file when
5468 WIN32 is not defined.
5469
5470 * Make-lang.in (java-warn): Add STRICT_WARN.
5471 (java/jcf-io.o-warn): Don't have Werror for this file.
5472 * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
5473
54742004-10-16 Hans-Peter Nilsson <hp@bitrange.com>
5475
5476 * expr.c (expr_add_location): Move declaration to before all
5477 statements.
5478 * parse.y (java_expand_classes): Ditto.
5479 * lex.c (java_peek_unicode): Ditto.
5480
54812004-10-16 Ranjit Mathew <rmathew@hotmail.com>
5482
5483 * check-init.c: Use %<, %> and %q for quoting in diagnostics,
5484 if possible, else convert `foo' to 'foo'.
5485 * class.c: Likewise.
5486 * decl.c: Likewise.
5487 * expr.c: Likewise.
5488 * jcf-io.c: Likewise.
5489 * jcf-parse.c: Likewise.
5490 * lang.c: Likewise.
5491 * lex.c: Likewise.
5492 * parse.h: Likewise.
5493
54942004-10-16 Ranjit Mathew <rmathew@hotmail.com>
5495
5496 * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
5497 rename parameter 'msg' to 'msgid' in function declaration.
5498 (issue_warning_error_from_context): Likewise.
5499 (yyerror): Rename parameter 'msg' to 'msgid'.
5500 (all over): Use new quoting style for diagnostics.
5501
55022004-10-15 Kazu Hirata <kazu@cs.umass.edu>
5503
5504 * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
5505 jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
5506 Update copyright.
5507
55082004-10-14 Matt Austern <austern@apple.com>
5509
5510 * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
5511 pointer_set_t* now.
5512
55132004-10-13 Tom Tromey <tromey@redhat.com>
5514
5515 PR java/15578:
5516 * lang.opt (--extdirs): Document.
5517 * jvspec.c (lang_specific_driver): Recognize -encoding and
5518 -extdirs.
5519
55202004-10-06 Ulrich Weigand <uweigand@de.ibm.com>
5521
5522 * parse.y (issue_warning_error_from_context): Use va_list *
5523 instead of va_list parameter.
5524 (parse_error_context): Update call.
5525 (parse_warning_context): Likewise.
5526
55272004-10-05 Zack Weinberg <zack@codesourcery.com>
5528
5529 * parse.y, parse-scan.y: Add list of diagnostic messages to
5530 insulate translation template from version of yacc/bison used
5531 to compile the grammar.
5532
55332004-10-05 Ranjit Mathew <rmathew@hotmail.com>
5534
5535 Prepare for %q, %< and %> in diagnostic message strings.
5536 * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
5537 Name second parameter 'msgid'.
5538 * parse.y: Additionally include pretty-print.h and diagnostic.h.
5539 (issue_warning_error_from_context): Use pretty-printer functions
5540 instead of vsprintf for constructing formatted messages. Rename
5541 parameter 'msg' to 'msgid'.
5542 (parse_error_context): Rename parameter 'msg' to 'msgid'.
5543 (parse_warning_context): Likewise.
5544
55452004-10-05 Andrew Haley <aph@redhat.com>
5546
5547 PR java/17779
5548 * jcf-parse.c (parse_zip_file_entries): If a class has a
5549 superclass and a TYPE_SIZE of zero, lay it out.
5550
55512004-09-30 Andrew Haley <aph@redhat.com>
5552
5553 PR java/17733
5554 * jcf-parse.c (compute_class_name): Rewrite.
5555
55562004-10-01 Jan Hubicka <jh@suse.cz>
5557
5558 * java.c (java_expand_body): Update call of tree_rest_of_compilation.
5559
55602004-10-01 Kazu Hirata <kazu@cs.umass.edu>
5561
5562 * lex.c: Fix a comment typo.
5563
55642004-10-01 Kazu Hirata <kazu@cs.umass.edu>
5565
5566 * java-tree.h: Fix a comment typo.
5567
55682004-09-30 Per Bothner <per@bothner.com>
5569
5570 Simplify lexer. Implement --enable-mapped-location support.
5571 * jcf-parse.c (parse_class_file): Use linemap_line_start.
5572 (parse_source_file_1): Pass filename as extra parameter, so we can call
5573 linemap_add and set input_location here, rather than in both callers.
5574 (read_class): Pass copied filename to parse_source_file_1.
5575 Don't initialize wfl_operator - only needed for source compilation.
5576 (read_class, jcf_parse): Call linemap_add with LC_LEAVE.
5577 * lex.h: Remove a bunch of debugging macros.
5578 * lex.h (struct_java_line, struct java_error): Remove types.
5579 (JAVA_COLUMN_DELTA): Remove - use java_lexer.next_colums instead.
5580 (struct java_lc_s): Remove prev_col field.
5581 (struct java_lexer): New fields next_unicode, next_columns, and
5582 avail_unicode. New position field, and maybe token_start field.
5583 Don't need hit_eof field - use next_unicode == -1 instead.
5584 (JAVA_INTEGERAL_RANGE_ERROR): Rename to JAVA_RANGE_ERROR.
5585 (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR): Update accordingly.
5586 * parse.h: Various changes for USE_MAPPED_LOCATION.
5587 (EXPR_WFL_EMIT_LINE_NOTE): XXX
5588 (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
5589 (struct parser_ctxt): New file_start_location field.
5590 Remove p_line, c_line fields since we no longer save lines.
5591 Remove elc, lineno, and current_jcf fields - no longer used.
5592 * parse.y: Updates for USE_MAPPED_LOCATION and new lexer.
5593 Don't use EXPR_WFL_ADD_COL since that isn't trivial with
5594 source_location and is probably not needed anymore anyway.
5595 Use new expr_add_Location function.
5596 (SET_EXPR_LOCATION_FROM_TOKEN): New convenience macro.
5597 (java_pop_parser_context): Minor cleanup.
5598 (java_parser_context_save_global, java_parser_context_restore_global,
5599 java_pop_parser_context): Save/restore input_location as a unit.
5600 (issue_warning_error_from_context): If USE_MAPPED_LOCATION take
5601 a source_location instead of a wfl context node.
5602 (check_class_interface_creation): input_filename is not addressable.
5603 (create_artificial_method): Calling java_parser_context_save_global
5604 and java_parser_context_restore_global is overkill. Instead,
5605 temporarily set input_location from class decl.
5606 (java_layout_seen_class_methods): Set input_location from method decl.
5607 (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
5608 (finish_loop_body): Likewise.
5609 * lex.c: Updates for USE_MAPPED_LOCATION. Use build_unknwon_wfl.
5610 (java_sprint_unicode): Take a character, not index in line.
5611 (java_sneak_uncode): Replaced by java_peek_unicode.
5612 (java_unget_unicode): No longer used.
5613 (java_allocate_new_line. java_store_unicode): Removed, since we
5614 no longer remember "lines".
5615 (java_new_lexer): Update for new data structures.
5616 (java_read_char): Move unget_value checking to java_read_unicode.
5617 (java_get_unicode, java_peek_unicode, java_next_unicode): New more
5618 efficient functions that are used directly when lexing.
5619 (java_read_unicode_collapsing_terminators): No longer needed.
5620 (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
5621 Re-organize to use java_peek_unicode to avoid java_unget_unicode.
5622 (java_parse_escape_sequence): Rewrite to be simpler / more efficient.
5623 (do_java_lex): Lots of movings around to avoid java_unget_unicode,
5624 combine switch branches, and test for common token kinds earlier.
5625 (java_lex_error): Rewrite.
5626 * jv-scan.c (expand_location): New function, copied from tree.c.
5627 (main): Set ctxp->filename instead of setting input_filename directly.
5628
56292004-09-30 Per Bothner <per@bothner.com>
5630
5631 More cleanup for --enable-mapped-location.
5632 * class.c (push_class): If USE_MAPPED_LOCATION don't set
5633 input_location here. Instead do it in give_name_to_class.
5634 (build_class_ref): Set DECL_ARTIFICIAL, for the sake of dwarf2out.
5635 * expr.c (expand_byte_code): Call linemap_line_start.
5636 * expr.c (build_expr_wfl): If USE_MAPPED_LOCATION, change final
5637 parameters to a source_location. Don't need EXPR_WFL_FILENAME_NODE.
5638 (expr_add_location): New function, if USE_MAPPED_LOCATION.
5639 * class.c (maybe_layout_super_class): Adjust build_expr_wfl call
5640 to USE_MAPPED_LOCATION case.
5641
5642 * java-tree.h (JAVA_FILE_P, ZIP_FILE_P): Remove unused macros.
5643 * jcf-parse.c (java_parse_file): Don't set input_filename.
5644 Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
5645 Create a list of TRANSLATION_UNIT_DECL.
5646 (current_file_list): Is now a TRANSLATION_UNIT_DECL chain. The
5647 reason is so we can set a DECL_SOURCE_LOCATION for each file.
5648 (java_parse_file): Don't set unused ZIP_FILE_P, JAVA_FILE_P..
5649 Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
5650 (file_start_location): New static.
5651 (set_source_filename): Avoid extra access to input_filename macro.
5652 Concatenate new name with class's package prefix.
5653 (set_source_filename, give_name_to_class): Update.
5654 (give_name_to_class): Set class's "line 0" input_location here.
5655 (parse_class_file): Set input_location as a unit.
5656
5657 * jcf-parse.c (load_class): Sanity test if missing inner class file.
5658
56592004-09-29 Per Bothner <per@bothner.com>
5660
5661 * java-tree.h: Redefine some macros and add some declaration
5662 to handle the USE_MAPPED_LOCATION case.
5663 * parse.h (EXPR_WFL_QUALIFICATION): Use operand 1, not 2.
5664 * java-tree.h (EXPR_WFL_FILENAME_NODE): Use operand 2, not 1.
5665 * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
5666 USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
5667
5668 * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
5669 * decl.c (finish_method, java_add_stmt): Likewise.
5670 * java-gimplify.c (java-gimplify.c): Likewise.
5671 * jcf-write.c (generate_bytecode_insns): Likewise.
5672 * lang.c (java_post_options): Likewise - call linemap_add.
5673
56742004-09-29 Andrew Haley <aph@redhat.com>
5675
5676 PR java/17007
5677 * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
5678 result of TRUNC_MOD_EXPR.
5679 (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
5680 * decl.c (java_init_decl_processing): Mark
5681 soft_lookupinterfacemethod_node and soft_instanceof_node pure.
5682
56832004-09-28 Tom Tromey <tromey@redhat.com>
5684
5685 PR java/15710:
5686 * class.c (add_miranda_methods): Load superinterface if not
5687 already loaded.
5688
56892004-09-28 Andrew Haley <aph@redhat.com>
5690
5691 PR java/17586
5692 * jcf-parse.c (load_class): Don't try to read a class that we've
5693 already read.
5694
56952004-09-28 Andrew Haley <aph@redhat.com>
5696
5697 * jcf-parse.c (load_class): Back out previous broken patch.
5698
56992004-09-28 Andrew Haley <aph@redhat.com>
5700
5701 PR java/17586
5702 * jcf-parse.c (load_class): Don't try to read a class that we've
5703 already read.
5704 Check that we really did read the right class.
5705
57062004-09-25 Tom Tromey <tromey@redhat.com>
5707
5708 PR java/17500:
5709 * parse.y (create_artificial_method): Use add_method_1.
5710
57112004-09-25 Kazu Hirata <kazu@cs.umass.edu>
5712
5713 * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
5714 comment typos.
5715 * gcj.texi: Fix typos.
5716
57172004-09-24 Tom Tromey <tromey@redhat.com>
5718
5719 PR java/15656:
5720 * parse.y (class_instance_creation_expression): Set `$$' to NULL
5721 in error parts of rule.
5722 (unary_expression): Don't call error_if_numeric_overflow when $1
5723 is NULL.
5724
57252004-09-24 Tom Tromey <tromey@redhat.com>
5726
5727 PR java/16789:
5728 * parse.y (resolve_qualified_expression_name): Set
5729 CAN_COMPLETE_NORMALLY on first call when chaining static calls.
5730 * expr.c (force_evaluation_order): Check for empty argument list
5731 after stripping COMPOUND_EXPR.
5732
57332004-09-23 Andrew Haley <aph@redhat.com>
5734
5735 PR java/16927:
5736 * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
5737 COND_EXPRs.
5738
57392004-09-23 Tom Tromey <tromey@redhat.com>
5740
5741 PR java/17329:
5742 * java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case
5743 where operand is null.
5744
57452004-09-23 Tom Tromey <tromey@redhat.com>
5746
5747 PR java/17380:
5748 * parse.y (not_accessible_p): Allow access to protected members
5749 even when class is not static.
5750
57512004-09-22 Kelley Cook <kcook@gcc.gnu.org>
5752
5753 * Make-lang.in: Revert the gcc-none.o change.
5754
57552004-09-22 Nathan Sidwell <nathan@codesourcery.com>
5756
5757 * parse.y (patch_anonymous_class): VEC_space returns true if there
5758 is space.
5759
57602004-09-21 Matt Austern <austern@apple.com>
5761
5762 Fix bootstrap.
5763 * gjavah.c (free_method_name_list): Fix function definition so
5764 it's a proper C prototype.
5765
57662004-09-21 Tom Tromey <tromey@redhat.com>
5767
5768 PR java/17575:
5769 * gjavah.c (free_method_name_list): New method.
5770 (main): Call it.
5771
57722004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
5773 Zack Weinberg <zack@codesourcery.com>
5774
5775 * java-tree.def: Use tree_code_class enumeration constants
5776 instead of code letters.
5777 * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
5778 new tree-class enumeration constants.
5779
57802004-09-13 Tom Tromey <tromey@redhat.com>
5781
5782 PR java/17216:
5783 * class.c (layout_class_method): Put synthetic methods into the
5784 vtable.
5785
57862004-09-11 Andrew Pinski <apinski@apple.com>
5787
5788 * Make-lang.in (java/ggc-none.c): Change dependency
5789 for ggc.h into $(GGC_H).
5790
57912004-09-11 Mohan Embar <gnustuff@thisiscool.com>
5792
5793 * Make-lang.in (java/win32-host.o): Add dependency on
5794 coretypes.h.
5795 * win32-host.c: Add includes for coretypes.h, jcf.h
5796
57972004-09-11 Mohan Embar <gnustuff@thisiscool.com>
5798
5799 * Make-lang.in (GCJH_OBJS): Change dependency from
5800 ggc-none.o to java/ggc-none.o
5801 (JCFDUMP_OBJS): Likewise.
5802 (java/ggc-none.o): New target.
5803
58042004-08-25 Nathan Sidwell <nathan@codesourcery.com>
5805
5806 * boehm.c (get_boehm_type_descriptor): Adjust build_int_cst calls.
5807 * class.c (build_utf8_ref, build_static_field_ref,
5808 make_field_value, make_method_value, get_dispatch_table,
5809 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
5810 * constants.c (get_tag_node, build_ref_from_constant_pool,
5811 build_constants_constructor): Likewise.
5812 * decl.c (java_init_decl_processing): Likewise.
5813 * expr.c (build_java_array_length_access, build_newarray,
5814 expand_java_multianewarray, expand_java_pushc, expand_iinc,
5815 build_java_binop, build_field_ref, expand_java_add_case,
5816 expand_java_call, build_known_method_ref, build_invokevirtual,
5817 build_invokeinterface, build_jni_stub): Likewise.
5818 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5819 * jcf-parse.c (get_constant): Likewise.
5820 * lex.c (do_java_lex): Likewise.
5821 * parse.y (patch_binop, patch_unaryop, patch_cast,
5822 build_newarray_node, patch_newarray): Likewise.
5823 * resource.c (compile_resource_data): Likewise.
5824 * typeck.c (build_prim_array_type): Likewise.
5825
58262004-08-24 Nathan Sidwell <nathan@codesourcery.com>
5827
5828 * decl.c (java_init_decl_processing): Adjust
5829 initialize_sizetypes call.
5830
58312004-08-23 Nathan Sidwell <nathan@codesourcery.com>
5832
5833 * jv-scan.c (fancy_abort): Add.
5834
58352004-08-20 Nathan Sidwell <nathan@codesourcery.com>
5836
5837 * expr.c (build_java_arrayaccess): Use convert to change
5838 len's type.
5839
58402004-08-19 Bryce McKinlay <mckinlay@redhat.com>
5841
5842 * class.c (make_local_function_alias): Allocate extra space for 'L'
5843 in name buffer. Reported by Thomas Neumann.
5844
58452004-08-19 Nathan Sidwell <nathan@codesourcery.com>
5846
5847 * parse.h (JAVA_RADIX10_FLAG): Rename to ...
5848 (JAVA_NOT_RADIX10_FLAG): ... here. Invert meaning.
5849 * lex.c (do_java_lex): Adjust.
5850 (error_if_numeric_overflow): Likewise.
5851
58522004-08-18 Andrew Pinski <apinski@apple.com>
5853
5854 * class.c (make_local_function_alias): Only make a new decl if we
5855 support alias attribute on all decls.
5856
58572004-08-18 Bryce McKinlay <mckinlay@redhat.com>
5858
5859 * class.c (make_local_function_alias): New function. Create local
5860 alias for public method DECL.
5861 (make_method_value): Use make_local_function_alias.
5862 * parse.y (craft_constructor): Don't special-case anonymous classes.
5863 Always set ctor_name to init_identifier_node.
5864 (lookup_method_invoke): Call layout_class_method when creating
5865 anonymous class constructor.
5866
58672004-08-18 Richard Henderson <rth@redhat.com>
5868
5869 * java-gimplify.c (java_gimplify_expr): Move '2' handling into
5870 default case. Treat '<' similarly. Update for
5871 is_gimple_formal_tmp_var name change.
5872
58732004-08-17 Andrew Haley <aph@redhat.com>
5874
5875 * lang.c (lang_printable_name): Obey verbose flag.
5876 * parse.y (constructor_circularity_msg): Set VERBOSE arg for
5877 lang_printable_name().
5878 (verify_constructor_circularity, get_printable_method_name,
5879 check_abstract_method_definitions, java_check_regular_methods,
5880 java_check_abstract_methods, check_inner_class_access,
5881 fix_constructors, patch_method_invocation, patch_return):
5882 Likewise.
5883 * expr.c (pop_type_0): Likewise.
5884
5885 * java-tree.h (lang_printable_name_wls): Delete.
5886
58872004-08-16 Tom Tromey <tromey@redhat.com>
5888
5889 PR java/8473:
5890 * parse.y (primary): Changed for initialized and uninitialized
5891 array creations.
5892 (array_access): Handle array_creation_initialized.
5893 (array_creation_expression): Split into
5894 array_creation_initialized and array_creation_uninitialized.
5895
58962004-08-16 Andrew Haley <aph@redhat.com>
5897
5898 * jcf-write.c (find_constant_index): Canonicalize NaNs when
5899 generating bytecode.
5900
59012004-08-16 Elliot Lee <sopwith@redhat.com>
5902
5903 PR java/9677
5904 * jcf-parse.c (java_parse_file): Handle filenames with embedded
5905 spaces, and quoted filelists.
5906
59072004-08-15 Nathan Sidwell <nathan@codesourcery.com>
5908
5909 * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
5910 * class.c (build_utf8_ref, build_static_field_ref,
5911 make_field_value, make_method_value, get_dispatch_table,
5912 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
5913 * constants.c (get_tag_node, build_ref_from_constant_pool,
5914 build_constants_constructor): Likewise.
5915 * decl.c (java_init_decl_processing): Likewise.
5916 * expr.c (build_java_array_length_access, build_newarray,
5917 expand_java_multianewarray, expand_java_pushc, expand_iinc,
5918 build_java_binop, build_field_ref, expand_java_add_case,
5919 expand_java_call, build_known_method_ref, build_invokevirtual,
5920 build_invokeinterface, build_jni_stub): Likewise.
5921 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5922 * jcf-parse.c (get_constant): Likewise.
5923 * lex.c (do_java_lex): Likewise.
5924 * parse.y (patch_binop, patch_unaryop, patch_cast,
5925 build_null_of_type, patch_newarray): Likewise.
5926 * resource.c (compile_resource_data): Likewise.
5927 * typeck.c (build_prim_array_type): Likewise.
5928
59292004-08-10 Bryce McKinlay <mckinlay@redhat.com>
5930
5931 * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
5932 Don't create BLOCK here or call java_gimplify_block.
5933
59342004-08-09 H.J. Lu <hongjiu.lu@intel.com>
5935
5936 * java-tree.h (flag_deprecated): Removed.
5937 * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
5938 * parse.y (check_deprecation): Check warn_deprecated instead of
5939 flag_deprecated.
5940
59412004-08-06 Kelley Cook <kcook@gcc.gnu.org>
5942
5943 * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
5944 flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
5945 flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
5946 flag_check_references, flag_extraneous_semicolon, flag_deprecated,
5947 flag_force_classes_archive_check, flag_optimize_sci,
5948 flag_indirect_dispatch): Remove explicit declarations.
5949 * lang.opt: Add implicit declare/define/assign. Remove obsolete
5950 final comment.
5951
59522004-08-05 Michael Chastain <mec.gnu@mindspring.com>
5953
5954 PR bootstrap/14893
5955 * Make-lang.in (java.install-man): Install from either build
5956 tree or source tree, whichever has the file first.
5957
59582004-08-05 Nathan Sidwell <nathan@codesourcery.com>
5959
5960 * jcf-parse.c (get_constant): Adjust force_fit_type call.
5961 * lex.h (SET_LVAL_NODE_TYPE): Remove.
5962 * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
5963 (do_java_lex): Likewise. Adjust force_fit_type call.
5964
59652004-08-04 Roger Sayle <roger@eyesopen.com>
5966 Andrew Haley <aph@redhat.com>
5967
5968 * typeck.c (convert_ieee_real_to_integer): Call fold on the range
5969 checking trees as they're being built.
5970 (convert): Call convert_ieee_real_to_integer if we're
5971 converting a constant, even if we're writing a class file.
5972
59732004-08-02 Bryce McKinlay <mckinlay@redhat.com>
5974
5975 PR java/16701
5976 * parse.y (fold_constant_for_init): Call resolve_field_access with
5977 correct current_class context.
5978
59792004-08-01 Roger Sayle <roger@eyesopen.com>
5980
5981 * decl.c (update_aliases, initialize_local_variable): Replace calls
5982 to build with calls to buildN.
5983 * java-gimplify.c (java_gimplify_modify_expr): Likewise.
5984 * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
5985 * parse.h (BUILD_THROW): Likewise.
5986 * parse.y (switch_expression, synchronized_statement,
5987 catch_clause_parameter, array_creation_expression,
5988 conditional_expression, make_qualified_name,
5989 resolve_qualified_expression_name, patch_method_invocation,
5990 patch_invoke, build_method_invocation, build_new_invocation,
5991 build_assignment, patch_assignment, build_binop, patch_binop,
5992 build_string_concatenation, build_incdec, patch_unaryop,
5993 patch_cast, build_array_ref, build_newarray_node, patch_newarray,
5994 patch_return, build_if_else_statement, build_labeled_block,
5995 build_new_loop, build_loop_body, build_bc_statement,
5996 build_assertion, encapsulate_with_try_catch, build_try_statement,
5997 build_try_finally_statement, patch_synchronized_statement,
5998 emit_test_initialization): Likewise, replace build with buildN.
5999
60002004-07-28 Eric Christopher <echristo@redhat.com>
6001
6002 * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
6003 (java_unsafe_for_reeval): Ditto.
6004
60052004-07-26 <hp@bitrange.com>
6006
6007 * parse.y (build_super_invocation): Adjust declaration order to
6008 avoid declaration after statement.
6009
60102004-07-25 Bernardo Innocenti <bernie@develer.com>
6011
6012 * decl.c: Rename all identifiers named `class' to `cl'.
6013
60142004-07-25 Richard Henderson <rth@redhat.com>
6015
6016 * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
6017
60182004-07-23 Mike Stump <mrs@apple.com>
6019
6020 * boehm.c (set_bit): Improve type safety wrt unsignedness.
6021 * gjavah.c (throwable_p, decode_signature_piece,
6022 print_full_cxx_name, print_include, add_namelet, add_class_decl,
6023 process_file): Likewise.
6024 * jcf-dump.c (main): Likewise.
6025 * jcf-io.c (read_zip_member): Likewise.
6026 * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
6027 give_name_to_class, get_class_constant): Likewise.
6028 * jcf-write.c (find_constant_wide, push_long_const,
6029 generate_classfile): Likewise.
6030 * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
6031 * parse.y (read_import_dir): Likewise.
6032 * typeck.c (parse_signature_type): Likewise.
6033 * verify.c (verify_jvm_instructions): Likewise.
6034 * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
6035
60362004-07-23 Thomas Fitzsimmons <fitzsim@redhat.com>
6037
6038 * Make-lang.in: Replace rmic and rmiregistry references with
6039 grmic and grmiregistry.
6040 * gcj.texi: Likewise.
6041
60422004-07-20 Andrew Haley <aph@redhat.com>
6043
6044 PR java/16431.
6045 * verify.c (verify_jvm_instructions): Comment change only.
6046
6047 * typeck.c (build_java_array_type): Add size field to array name.
6048
6049 * java-tree.h (LOCAL_SLOT_P): New.
6050 (update_aliases): Add PC argument.
6051 (pushdecl_function_level): New function.
6052
6053 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
6054 MODIFY_EXPR, and SAVE_EXPR.
6055 (java_gimplify_modify_expr): New function.
6056
6057 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
6058 (expand_iinc): Pass PC to update_aliases().
6059 (STORE_INTERNAL): Likewise.
6060 (process_jvm_instruction): Likewise.
6061
6062 * decl.c (base_decl_map): New variable.
6063 (uniq): New variable.
6064 (update_aliases): Rewrite with more thorough checking.
6065 (debug_variable_p): New function.
6066 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
6067 (check_local_named_variable): Delete whole function.
6068 (initialize_local_variable): New function.
6069 (check_local_unnamed_variable): Add checks and comments.
6070 (find_local_variable): Rewrite.
6071 (java_replace_reference): New function.
6072 (function_binding_level): New variable.
6073 (pushdecl_function_level): New function.
6074 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
6075 (maybe_pushlevels): Call pushdecl() on each of the new decls.
6076 (start_java_method): Reset uniq. Create base_decl_map. Set
6077 function_binding_level.
6078 (end_java_method): Null unused fields to save memory.
6079
60802004-07-20 Nathan Sidwell <nathan@codesourcery.com>
6081
6082 * class.c (add_interface_do): Remove.
6083 (set_super_info, interface_of_p, maybe_add_interface,
6084 add_interface, make_class_data, layout_class,
6085 add_miranda_methods): Adjust BINFO accessors and addition.
6086 * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
6087 accessors.
6088 * jcf-write.c (generate_classfile): Likewise.
6089 * parse.y (patch_anonymous_class, check_inner_circular_reference,
6090 check_circular_reference, java_complete_class,
6091 check_abstract_method_definitions,
6092 java_check_abstract_method_definitions,
6093 check_interface_throws_clauses, java_check_abstract_methods,
6094 lookup_java_interface_method2,
6095 find_applicable_accessible_methods_list): Adjust BINFO accessors
6096 and addition.
6097 * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
6098
60992004-07-18 Roger Sayle <roger@eyesopen.com>
6100
6101 * builtins.c (max_builtin, min_builtin,
6102 java_build_function_call_expr): Replace calls to build with buildN.
6103 * class.c (build_class_ref, build_static_field_ref,
6104 get_dispatch_table, make_class_data, layout_class_method): Likewise.
6105 * constants.c (build_ref_from_constant_pool): Likewise.
6106 * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
6107 add_stmt_to_compound): Likewise.
6108 * except.c (build_exception_object_ref, expand_end_java_handler):
6109 Likewise.
6110 * java-gimplify.c (java_gimplify_case_expr,
6111 java_gimplify_default_expr, java_gimplify_block,
6112 java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
6113 * jcf-write.c (generate_bytecode_insns): Likewise.
6114 * typeck.c (convert_ieee_real_to_integer): Likewise.
6115
61162004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
6117
6118 * java-tree.h (builtin_function): Declare.
6119
61202004-07-16 Steven Bosscher <stevenb@suse.de>
6121
6122 * parse.y (java_complete_expand_methods, java_expand_classes): Don't
6123 abuse restore_line_number_status.
6124
61252004-07-15 Frank Ch. Eigler <fche@redhat.com>
6126
6127 g++/15861
6128 * jcf-parse.c (java_emit_static_constructor): Specify default
6129 priority.
6130
61312004-07-13 Per Bothner <per@bothner.com>
6132
6133 * java-tree.h (all_class_filename): Remove useless macro.
6134 (enum java_tree_index): Remove JTI_ALL_CLASS_FILENAME constant.
6135 (BUILD_FILENAME_IDENTIFIER_NODE): Remove useless macro.
6136 * parse.y (java_parser_context_restore_global): Replace
6137 BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
6138 * jcf-parse.c (read_class, java_parse_file): Likewise.
6139
61402004-07-12 Bryce McKinlay <mckinlay@redhat.com>
6141
6142 PR java/16474
6143 gjavah.c (print_field_info): Emit constant only if field is static.
6144
61452004-07-11 Roger Sayle <roger@eyesopen.com>
6146
6147 * expr.c (java_truthvalue_conversion, flush_quick_stack,
6148 java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
6149 build_java_ret, build_java_throw_out_of_bounds_exception,
6150 build_java_array_length_access, java_check_reference,
6151 build_java_arrayaccess, build_java_arraystore_check, build_newarray,
6152 build_anewarray, expand_java_multianewarray, expand_java_arraystore,
6153 expand_java_arrayload, build_java_monitor, expand_java_return,
6154 expand_load_internal, expand_java_NEW, build_get_class,
6155 build_instanceof, expand_java_CHECKCAST, expand_iinc,
6156 build_java_soft_divmod, build_java_binop, build_field_ref,
6157 expand_compare, expand_java_goto, expand_java_switch,
6158 expand_java_add_case, build_class_init, build_known_method_ref,
6159 invoke_build_dtable, build_invokevirtual, build_invokeinterface,
6160 expand_invoke, build_jni_stub, expand_java_field_op,
6161 java_expand_expr, expand_byte_code, STORE_INTERNAL,
6162 force_evaluation_order, emit_init_test_initialization): Convert
6163 calls to "build" into calls to the prefered "buildN" functions.
6164
61652004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
6166
6167 * java-tree.h (set_block): Remove.
6168 * lang.c (java_clear_binding_stack): New.
6169 (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
6170 * decl.c (struct binding_level): Remove this_block.
6171 (clear_binding_level): Likewise.
6172 (poplevel): Don't handle this_block.
6173 (set_block): Remove.
6174
61752004-07-10 Bryce McKinlay <mckinlay@redhat.com>
6176
6177 * class.c (common_enclosing_context_p): Remove statement with no
6178 side-effects.
6179
61802004-07-09 Bryce McKinlay <mckinlay@redhat.com>
6181
6182 PR java/8618
6183 * parse.y (create_anonymous_class): Remove 'location' argument. Use
6184 the WFL from TYPE_NAME to get line number for the decl. Fix comment.
6185 (craft_constructor): Inherit access flags for implicit constructor
6186 from the enclosing class.
6187 (create_class): Fix comment typo.
6188 (resolve_qualified_expression_name): Pass type of qualifier to
6189 not_accessible_p, not the type in which target field was found.
6190 (not_accessible_p): Handle inner classes. Expand protected
6191 qualifier-subtype check to enclosing instances, but don't apply this
6192 check to static members. Allow protected access to inner classes
6193 of a subtype. Allow private access within common enclosing context.
6194 (build_super_invocation): Get WFL line number info from current
6195 class decl.
6196 (build_incomplete_class_ref): Update for new create_anonymous_class
6197 signature.
6198 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
6199 common_enclosing_instance_p.
6200 * class.c (common_enclosing_context_p): New. Determine if types
6201 share a common enclosing context, even across static contexts.
6202 (common_enclosing_instance_p): Renamed from
6203 common_enclosing_context_p. Determines if types share a common
6204 non-static enclosing instance.
6205 * java-tree.h (common_enclosing_instance_p): Declare.
6206 * jcf-write.c (get_method_access_flags): New. Surpress private flag
6207 for inner class constructors.
6208 (generate_classfile): Use get_method_access_flags.
6209
62102004-07-09 Bryce McKinlay <mckinlay@redhat.com>
6211
6212 * class.c (interface_of_p): Check for null TYPE_BINFO.
6213
62142004-07-09 Nathan Sidwell <nathan@codesourcery.com>
6215
6216 * class.c (make_class): Do not create binfo here.
6217 (set_super_info): Create it here.
6218 * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
6219
62202004-07-08 Richard Henderson <rth@redhat.com>
6221
6222 * expr.c (case_identity, get_primitive_array_vtable,
6223 java_expand_expr, emit_init_test_initialization): Remove.
6224 * java-tree.h (java_expand_expr): Remove.
6225 * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
6226
62272004-07-07 Per Bothner <per@bothner.com>
6228
6229 * class.c (build_static_field_ref): Add a NOP_EXPR; otherwise we
6230 get internal error due to mismatched types.
6231
6232 * gcj.texi (Invoking gij): Document new -verbose:class flag.
6233
6234 * gcj.texi (Linking): New node. Document -lgij usage.
6235
62362004-07-07 Nathan Sidwell <nathan@codesourcery.com>
6237
6238 * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
6239 (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
6240 * java/class.c (set_super_info, class_depth, interface_of_p,
6241 maybe_add_interface, add_interface, make_class_data,
6242 layout_class, add_miranda_methods): Adjust BINFO macros.
6243 * expr.c (can_widen_reference_to, lookup_field): Likewise.
6244 * jcf-write.c (generate_classfile): Likewise.
6245 * parse.y (patch_anonymous_class,
6246 check_inner_circular_reference, check_circular_reference,
6247 java_complete_class, check_abstract_method_definitions,
6248 java_check_abstract_method_definitions,
6249 check_interface_throws_clauses, java_check_abstract_methods,
6250 lookup_java_interface_method2,
6251 find_applicable_accessible_methods_list): Likewise.
6252 * typeck.c (find_method_in_interface): Likewise.
6253 * verify.c (merge_types): Likewise.
6254
62552004-07-06 Nathan Sidwell <nathan@codesourcery.com>
6256
6257 * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
6258 * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
6259
62602004-07-05 Nathan Sidwell <nathan@codesourcery.com>
6261
6262 * class.c (make_class): Use make_tree_binfo.
6263 (set_super_info, add_interface_do): Likewise.
6264 * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
6265
62662004-07-04 Ranjit Mathew <rmathew@hotmail.com>
6267
6268 * verify.c: Correct array element access formatting thinko.
6269
62702004-07-04 Ranjit Mathew <rmathew@hotmail.com>
6271
6272 * verify.c: Insert a short blurb at the start referring to the JVMS.
6273 (merge_type_state): Remove redundant nested if statement.
6274 (verify_jvm_instructions): Ensure current_subr is initialised to
6275 NULL_TREE.
6276 Minor formatting fixes all over the place.
6277
62782004-07-02 Richard Henderson <rth@redhat.com>
6279
6280 * jcf-write.c (generate_bytecode_insns <case SAVE_EXPR>): Rewrite.
6281
62822004-07-01 Richard Henderson <rth@redhat.com>
6283
6284 * class.c (registerClass_libfunc): Remove.
6285 (init_class_processing): Don't set it.
6286 (emit_register_classes): Take list_p parameter. Fill it in
6287 with _Jv_RegisterClass calls.
6288 * decl.c (java_init_decl_processing): Don't call
6289 init_resource_processing.
6290 * jcf-parse.c (java_emit_static_constructor): New.
6291 (java_parse_file): Call it.
6292 * resource.c (registerResource_libfunc): Remove.
6293 (init_resource_processing): Remove.
6294 (write_resource_constructor): Take list_p parameter. Fill it in
6295 with _Jv_RegisterResource calls.
6296 * java-tree.h: Update prototypes.
6297
62982004-06-29 Bryce McKinlay <mckinlay@redhat.com>
6299
6300 PR java/1262
6301 * class.c (layout_class_method): Do not override package-private
6302 method if its in a different package.
6303 (split_qualified_name): Move here from parse.y. Rename from
6304 breakdown_qualified. Add comment.
6305 (in_same_package): Move here from parse.y. Add comment.
6306 * java-tree.h (break_down_qualified, in_same_package): Declare.
6307 (in_same_package): Likewise.
6308 * parse.y (breakdown_qualified, in_same_package): Moved to class.c.
6309 Callers updated.
6310
63112004-06-29 Andrew Haley <aph@redhat.com>
6312
6313 * except.c (expand_start_java_handler): Push a new binding level.
6314 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
6315 register_exception_range() to register where we'll do it.
6316 (expand_end_java_handler): Remove old bogus code. Replace with
6317 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
6318 the top of the expression we're curently building.
6319 (maybe_end_try): Delete.
6320 * decl.c (binding_level.exception_range): New field.
6321 (clear_binding_level): Add field exception_range. Reformat.
6322 (poplevel): Call expand_end_java_handler().
6323 (poplevel): Call java_add_stmt only if functionbody is false.
6324 (maybe_poplevels): Don't call maybe_end_try() from here.
6325 (end_java_method): Clear no longer used trees in function decl.
6326 (register_exception_range): New function.
6327 * java-tree.h (register_exception_range, struct eh_range): Declare.
6328
63292004-06-28 Bryce McKinlay <mckinlay@redhat.com>
6330
6331 * jcf-write.c (get_classfile_modifiers): Formatting fixes.
6332
63332004-06-27 Ranjit Mathew <rmathew@hotmail.com>
6334
6335 Formatting fixes.
6336 * expr.c (class_has_finalize_method): Fix method name indentation.
6337 (expand_java_call): Remove K&R style parameter declaration.
6338 (expand_invoke): Fix statement indentation.
6339 (expand_java_field_op): Likewise.
6340 * parse-scan.y: Fix typo.
6341 (reset_report): Fix method name indentation.
6342 * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
6343 line. Fix typos.
6344 * verify.c (verify_jvm_instructions): Document parameters, insert
6345 page break.
6346 * lang.c (lang_init_source): Fix method name indentation.
6347 * class.c (common_enclosing_context_p): Likewise.
6348 (emit_symbol_table): Fix parameter list indentation.
6349 * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
6350 parameter declaration.
6351 * constants.c: Fix copyright notice indentation.
6352 * typeck.c (find_method_in_superclasses): Fix parameter list
6353 indentation.
6354 (find_method_in_interfaces): Likewise.
6355 * zextract.c (makelong): Fix method name indentation.
6356
63572004-06-26 Bryce McKinlay <mckinlay@redhat.com>
6358
6359 PR java/15715.
6360 * parse.y (create_interface): Set correct access modifiers for
6361 interfaces.
6362 * jcf-write.c (get_classfile_modifiers): New function.
6363 (generate_classfile): Use get_classfile_modifiers, not
6364 get_access_flags.
6365
63662004-06-26 Bryce McKinlay <mckinlay@redhat.com>
6367
6368 * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super"
6369 dependency to current parser context, not NULL_TREE, for top-level
6370 classes.
6371 (jdep_resolve_class): Enable member access check for all inner
6372 class dependencies.
6373
63742004-06-26 Bryce McKinlay <mckinlay@redhat.com>
6375
6376 * parse.y (qualify_and_find): Pass type decl, not identifier, to
6377 load_class.
6378
63792004-06-26 Bryce McKinlay <mckinlay@redhat.com>
6380
6381 PR java/15734
6382 * expr.c (expand_java_field_op): Ensure that target class for static
6383 field access has been loaded.
6384
63852004-06-26 Bryce McKinlay <mckinlay@redhat.com>
6386 Ranjit Mathew <rmathew@hotmail.com>
6387
6388 PR java/1207, java/16178
6389 * jcf-parse.c (load_class): Return immediately if passed a type decl
6390 where CLASS_FROM_SOURCE_P is set. Remove FIXME.
6391 * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P
6392 before calling load_class.
6393 (qualify_and_find): Likewise.
6394 (find_in_imports_on_demand): Likewise.
6395 (find_applicable_accessible_methods_list): Likewise.
6396
63972004-06-24 Bryce McKinlay <mckinlay@redhat.com>
6398
6399 * parse.y (java_layout_seen_class_methods): Don't call load_class
6400 on class defined by source parser.
6401
64022004-06-23 Bryce McKinlay <mckinlay@redhat.com>
6403
6404 * parse.y (set_nested_class_simple_name_value): Removed.
6405 (java_complete_expand_class): Remove calls to
6406 set_nested_class_simple_name_value.
6407
64082004-06-22 Andrew Haley <aph@redhat.com>
6409 Ranjit Mathew <rmathew@hotmail.com>
6410
6411 Fixes PR java/16113.
6412 * decl.c (force_poplevels): Remove call to expand_end_bindings.
6413
64142004-06-22 Ranjit Mathew <rmathew@hotmail.com>
6415
6416 * parse.y (create_class): Correct diagnostic message about
6417 java.lang.Object extending anything else.
6418
64192004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6420
6421 * class.c (build_class_ref): Add new operand for COMPONENT_REF.
6422 (build_static_field_ref): Likewise and add new operands for ARRAY_REF.
6423 * constants.c (build_ref_from_constant_pool): Likewise.
6424 * expr.c (build_java_array_length_access): Likewise.
6425 (build_get_class, build_field_ref, build_known_method_ref): Likewise.
6426 (invoke_build_dtable, build_invokevirtual): Likewise.
6427 (build_invokeinterface, java_expand_expr): Likewise.
6428 (emit_init_test_initialization): Likewise.
6429 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
6430 * parse.y (make_qualifed_name, build_array_ref): Likewise.
6431
64322004-06-21 Andrew Haley <aph@redhat.com>
6433
6434 * java-gimplify.c (java_gimplify_block): set TREE_USED on the new
6435 block.
6436
64372004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
6438
6439 * jcf.h (struct JCF): Change java_source, right_zip and finished
6440 to unsigned int.
6441 * lex.h (struct java_lexer): Change hit_eof, read_anything,
6442 byte_swap and use_fallback to unsigned int.
6443 * parse.h (struct _jdep): Change flag0 to unsigned int.
6444
64452004-06-17 Ranjit Mathew <rmathew@hotmail.com>
6446
6447 Fixes PR java/13948
6448 * parse.y (java_layout_seen_class_methods): Ensure class is loaded
6449 before trying to lay out its methods.
6450 * jcf-parse.c (read_class): Track parsed files using canonical paths
6451 obtained via lrealpath from libiberty.
6452 (java_parse_file): Likewise.
6453 (parse_source_file_1): Rename formal parameter to reflect its
6454 modified purpose. Minor formatting fix.
6455
64562004-06-15 Paolo Bonzini <bonzini@gnu.org>
6457
6458 * class.c (emit_register_classes): Make the function uninlinable,
6459 do not set current_function_cannot_inline.
6460 * resource.c (write_resource_constructor): Do not reset
6461 flag_inline_functions around rest_of_compilation.
6462
64632004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
6464
6465 PR java/15769
6466 * expr.c (java_truthvalue_conversion): Handle
6467 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
6468 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
6469 i.e. return the expression.
6470
64712004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
6472
6473 * gjavah.c: Include version.h
6474
64752004-05-31 Bryce McKinlay <mckinlay@redhat.com>
6476
6477 * jcf-write.c (generate_bytecode_conditional): Correct handling
6478 of unordered conditionals. Add comment.
6479
64802004-05-29 Ranjit Mathew <rmathew@hotmail.com>
6481 Per Bothner <per@bothner.com>
6482
6483 * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a
6484 local variable was initialised upon declaration.
6485 * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if
6486 variable was final and initialised upon declaration.
6487 * check-init.c (check_final_reassigned): Give error only if a blank
6488 final is not definitely unassigned or if an initialised final is
6489 reassigned.
6490 (check_bool_init): Respect JLS2 16.1.7 requirements for boolean
6491 assignment expressions. Remove case MODIFY_EXPR, label do_default.
6492 (check_init): Perform initialised-variable-removing-optimisation
6493 only on non-final local variables.
6494
64952004-05-28 Bryce McKinlay <mckinlay@redhat.com>
6496
6497 * jcf-write.c (generate_bytecode_conditional): Handle binops
6498 UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
6499 and LTGT_EXPR.
6500 (generate_bytecode_insns): Likewise.
6501
65022004-05-28 Bryce McKinlay <mckinlay@redhat.com>
6503
6504 * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR,
6505 UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR.
6506
65072004-05-28 Bryce McKinlay <mckinlay@redhat.com>
6508
6509 * gcj.texi (Object allocation): Remove _Jv_AllocBytes.
6510 (Mixing with C++): Document JvAllocBytes and RawDataManaged.
6511
65122004-05-26 Bryce McKinlay <mckinlay@redhat.com>
6513
6514 * decl.c (struct binding_level): Add GTY marker. Compile
6515 binding_depth unconditionally.
6516 (current_binding_level, free_binding_level, global_binding_level):
6517 Likewise.
6518 (clear_binding_level): Unconditionally set binding_depth.
6519 (make_binding_level): Use ggc_alloc_cleared, not xmalloc.
6520
65212004-05-26 Bryce McKinlay <mckinlay@redhat.com>
6522
6523 * lex.c (java_new_lexer): Set 'encoding'.
6524 (java_read_char): Improve error message for unrecognized characters.
6525 * lex.h (struct java_lexer): New field 'encoding'.
6526
65272004-05-23 Paolo Bonzini <bonzini@gnu.org>
6528
6529 * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
6530
65312004-05-21 Mark Wielaard <mark@klomp.org>
6532
6533 * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not
6534 extern.
6535
65362004-05-19 Paolo Bonzini <bonzini@gnu.org>
6537
6538 * typeck.c: Remove non-printable character 160.
6539
65402004-05-17 Ranjit Mathew <rmathew@hotmail.com>
6541
6542 * check-init.c: Correct minor typos.
6543
65442004-05-13 Diego Novillo <dnovillo@redhat.com>
6545
6546 * Make-lang.in, expr.c, java-gimplify.c: Rename
6547 tree-simple.[ch] to tree-gimple.[ch].
6548
65492004-05-14 Ranjit Mathew <rmathew@hotmail.com>
6550
6551 * java-gimplify.c (java_gimplify_expr): Correct minor typos.
6552
65532004-05-13 Diego Novillo <dnovillo@redhat.com>
6554
6555 Merge from tree-ssa-20020619-branch. See
6556 ChangeLog.tree-ssa for details.
6557
6558 * Make-lang.in, builtins.c, check-init.c, class.c,
6559 constants.c, decl.c, except.c, expr.c, java-except.h,
6560 java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c,
6561 lang.c, lang.opt, parse.y, resource.c: Merged.
6562 * java-gimplify.c: New file.
6563
65642004-05-10 Andrew Haley <aph@redhat.com>
6565
6566 * parse.y (create_class): Set TYPE_VFIELD.
6567 * decl.c (java_init_decl_processing): Likewise.
6568
6569 * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
6570 * class.c (make_method_value): Replace DECL_VINDEX with call to
6571 get_method_index().
6572 (get_dispatch_vector): Likewise.
6573 (layout_class_method): Likewise.
6574 Replace set of DECL_VINDEX with call to set_method_index().
6575 (set_method_index): New function.
6576 (get_method_index): New function.
6577 * java-tree.h (set_method_index): New function decl.
6578 (get_method_index): New function decl.
6579
65802004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
6581
6582 * parse.y (check_pkg_class_access): Add new argument
6583 and use it when cl is NULL to call lookup_cl on it.
6584 (parser_check_super_interface): Do not call lookup_cl.
6585 Pass this_decl to check_pkg_class_access and NULL
6586 instead of lookup_cl.
6587 (parser_check_super): Update for change in
6588 check_pkg_class_access.
6589 (do_resolve_class): Likewise.
6590 (process_imports): Likewise.
6591 (find_in_imports_on_demand): Likewise.
6592 (resolve_qualified_expression_name): Likewise.
6593
65942004-05-06 Ranjit Mathew <rmathew@hotmail.com>
6595
6596 Fixes PR java/9685, PR java/15073
6597 * parse.y (accessibility_string): New method.
6598 (not_accessible_field_error): Use accessibility_string()
6599 instead of java_accstring_lookup().
6600 (resolve_qualified_expression_name): Check with
6601 check_pkg_class_access() before allowing access using
6602 qualified names.
6603 Fix comment typo.
6604 Use check_pkg_class_access() instead of not_accessible_p()
6605 for unqualified types.
6606 (not_accessible_p): Use DECL_CONTEXT (member) instead of
6607 REFERENCE for package-private access checking.
6608 (patch_method_invocation): Use accessibility_string() instead
6609 of java_accstring_lookup().
6610
66112004-04-30 Ranjit Mathew <rmathew@hotmail.com>
6612
6613 Fixes PR java/15133
6614 * gjavah.c (struct method_name): Add member is_native.
6615 (overloaded_jni_method_exists_p): Match candidate method only if
6616 it is native.
6617 (print_method_info): Initialise is_native flag from the method's
6618 access flags.
6619
66202004-04-30 Roger Sayle <roger@eyesopen.com>
6621
6622 * builtins.c (java_builtins): Add acos, asin, ceil and floor.
6623 (initialize_builtins): Likewise, define acos, asin, ceil and floor.
6624
66252004-04-22 Roger Sayle <roger@eyesopen.com>
6626
6627 * resource.c (write_resource_constructor): Guard call to possibly
6628 NULL targetm.asm_out.constructor with targetm.have_ctors_dtors.
6629
66302004-04-19 Bryce McKinlay <mckinlay@redhat.com>
6631
6632 * class.c (make_class_data): Add new field aux_info.
6633 * decl.c (java_init_decl_processing): Push type and decl for
6634 `aux_info'.
6635
66362004-04-15 Bryce McKinlay <mckinlay@redhat.com>
6637
6638 * expr.c (expand_java_NEW): Don't use size argument for
6639 _Jv_AllocObject calls.
6640 * parse.y (patch_invoke): Likewise.
6641
66422004-04-12 Bryce McKinlay <mckinlay@redhat.com>
6643
6644 * expr.c (build_invokeinterface): Remove unused variables to
6645 fix warnings.
6646
66472004-04-12 Bryce McKinlay <mckinlay@redhat.com>
6648
6649 * class.c (get_interface_method_index): New function. Return dispatch
6650 index for interface method.
6651 (make_method_value): For interface methods, set index field to
6652 iface dispatch index, not DECL_VINDEX.
6653 * expr.c (build_invokeinterface): Use get_interface_method_index.
6654
66552004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6656
6657 * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
6658
66592004-03-31 Andrew Haley <aph@redhat.com>
6660
6661 PR java/14104
6662 * jcf-io.c (opendir_in_zip): Tidy up error handling.
6663
66642004-03-30 Zack Weinberg <zack@codesourcery.com>
6665
6666 * builtins.c, expr.c, jcf.h, parse.h: Use new shorter
6667 form of GTY markers.
6668
66692004-03-25 Marcus Meissner <meissner@suse.de>
6670
6671 PR java/14689:
6672 * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir.
6673
66742004-03-23 Tom Tromey <tromey@redhat.com>
6675
6676 PR java/14315:
6677 * jcf-write.c (make_class_file_name): Don't report if mkdir
6678 failed with EEXIST.
6679
66802004-03-23 Tom Tromey <tromey@redhat.com>
6681
6682 * gcj.texi (Extensions): Document GCJ_PROPERTIES.
6683
66842004-03-20 Kazu Hirata <kazu@cs.umass.edu>
6685
6686 * class.c, gjavah.c, lang.c: Fix comment typos.
6687 * gcj.texi: Fix typos.
6688
66892004-03-19 Per Bothner <per@bothner.com>
6690
6691 * gcj.texi (Code Generation): Document new flags and assert defaults.
6692
6693 * class.c (assume_compiled_node_struct): Rename type to
6694 class_flag_node_struct, as it is now also used for enable_assertions.
6695 Rename assume_compiled_node typedef. Rename excludep field to value.
6696 (find_assume_compiled_node): Rename function to find_class_flag_node.
6697 Minor optimization - avoid needless strlen.
6698 (add_assume_compiled): Some tweaking and optimization.
6699 Rename and generalize to add_class_flag takem an extra parameter.
6700 (add_assume_compled): New just calls add_class_flag.
6701 (add_enable_assert, enable_assertions): New functions.
6702 (enable_assert_tree): New static.
6703 * java-tree.h (add_enable_assert, enable_assertions): New declarations.
6704 * lang.opt (fenable-assertions, fenable-assertions=,
6705 fdisable-assertions, fdisable-assertions=): New options.
6706 * lang.c (java_handle_option): Handle new options.
6707 * parse.y (build_incomplete_class_ref): Handle class$ in an inner
6708 class in an interface - create helper class nested in outer interface.
6709 (build_assertion): Short-circuit if enable_assertions is false.
6710
67112004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6712
6713 * java-tree.h: Changes throughout to add checking to macros
6714 and numerous whitespace changes.
6715 (VAR_OR_FIELD_CHECK): New macro.
6716 * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
6717 FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
6718
67192004-03-16 Per Bothner <per@bothner.com>
6720
6721 * jcf-jump.c (options): New --print-constants option.
6722 * gcj.texi (Invoking jcf-dump): Document --print-constants.
6723
6724 * jcf-dump.c (flag_print_constant_pool): Default to off.
6725 (print_constant_terse_with_index): New helper function.
6726 (various places): Check flag_print_constant_pool where missing.
6727 (main): If verbose set flag_print_constant_pool.
6728 (HANDLE_INNERCLASSES_ATTRIBUTE): Null inner class name is anonymous.
6729
67302004-03-15 Andrew Haley <aph@redhat.com>
6731
6732 PR java/14581
6733 * parse.y (java_complete_lhs): Check that final variable has an
6734 initializer.
6735
67362004-03-12 Andrew Haley <aph@redhat.com>
6737
6738 PR java/14551
6739 * typeck.c (convert): Clear TREE_OVERFLOW after an integer
6740 conversion.
6741
67422004-02-29 Roger Sayle <roger@eyesopen.com>
6743
6744 * jcf-parse.c (java_parse_file): Handle the case that input_filename
6745 is NULL.
6746
67472004-02-27 Per Bothner <per@bothner.com>
6748
6749 * parse.y (build_assertion): Re-do 02-25 change following Jeff Sturm
6750 suggestion: Use build_incomplete_class_ref.
6751 This fixes PR java/13508, java/11714.
6752
67532004-02-27 Kazu Hirata <kazu@cs.umass.edu>
6754
6755 * java/parse.h: Update copyright.
6756
67572004-02-26 Andrew Haley <aph@redhat.com>
6758
6759 PR java/14231:
6760 * parse.y (check_interface_throws_clauses): Check for
6761 !METHOD_INVISIBLE (iface_method).
6762 * class.c (layout_class_methods): Check for CLASS_INTERFACE as
6763 well as CLASS_ABSTRACT.
6764
67652004-02-25 Per Bothner <per@bothner.com>
6766
6767 * parse.y (build_assertion): If we're in an inner class, create the
6768 class$ helper routine in the outer class.
6769
67702004-02-19 Richard Henderson <rth@redhat.com>
6771
6772 * parse.y (switch_label): Use make_node for DEFAULT_EXPR.
6773
67742004-02-16 Geoffrey Keating <geoffk@apple.com>
6775
6776 * Make-lang.in (java.install-man): Add extra dependencies.
6777
67782004-02-13 Geoffrey Keating <geoffk@apple.com>
6779
6780 * Make-lang.in: Install man pages under the same names
6781 (possibly transformed) as the program they document.
6782
67832004-02-10 Joseph S. Myers <jsm@polyomino.org.uk>
6784
6785 * gjavah.c: Include "intl.h".
6786 (error): New function.
6787 (main): Call gcc_init_libintl.
6788 (get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
6789 print_stub_or_jni, process_file, main): Use error rather than
6790 fprintf.
6791 (print_method_info, usage, help, version, main): Mark strings for
6792 translation with _. Avoid splitting up sentences. Send
6793 information messages to stdout.
6794 * jcf-dump.c: Include "intl.h".
6795 (main): Call gcc_init_libintl.
6796 (process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
6797 Mark error, usage and version messages for translation with _.
6798 Avoid splitting up sentences.
6799 * jv-scan.c: Include "intl.h".
6800 (fatal_error, warning): Change parameter s to msgid. Translate
6801 messages.
6802 (main): Call gcc_init_libintl.
6803 (usage, help, version): Mark error, usage and version messages for
6804 translation with _. Avoid splitting up sentences.
6805 * jvgenmain.c: Include "intl.h".
6806 (main): Call gcc_init_libintl.
6807 (usage, main): Mark error messages for translation with _.
6808 * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
6809 JVGENMAIN_OBJS): Add intl.o.
6810 (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
6811 java/jvgenmain.o): Update dependencies.
6812
68132004-02-08 Per Bothner <per@bothner.com>
6814
6815 * parse.y (resolve_qualified_expression_name): In case of inaccessible
6816 class don't use not_accessible_field_error, which can get confused.
6817
68182004-02-05 Kelley Cook <kcook@gcc.gnu.org>
6819
6820 Make-lang.in (po-generated): Delete.
6821
68222004-02-05 Kazu Hirata <kazu@cs.umass.edu>
6823
6824 * Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
6825 Depend on target.h.
6826 * decl.c: Include target.h.
6827 (start_java_method): Replace PROMOTE_PROTOTYPES with
6828 targetm.calls.promote_prototypes.
6829 * expr.c: Include target.h.
6830 (pop_arguments): Replace PROMOTE_PROTOTYPES with
6831 targetm.calls.promote_prototypes.
6832 * parse.y: Include target.h.
6833 (start_complete_expand_method): Replace PROMOTE_PROTOTYPES
6834 with targetm.calls.promote_prototypes.
6835
68362004-02-04 Kazu Hirata <kazu@cs.umass.edu>
6837
6838 * typeck.c: Update copyright.
6839
68402004-02-02 Tom Tromey <tromey@redhat.com>
6841
6842 * decl.c (java_init_decl_processing): Remove duplicate
6843 gnu/gcj/RawData.
6844
68452004-01-30 Kelley Cook <kcook@gcc.gnu.org>
6846
6847 * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir).
6848
68492004-01-28 Andrew Pinski <pinskia@physics.uc.edu>
6850
6851 * expr.c (build_field_ref): Move variable
6852 definition up.
6853
68542004-01-28 Andrew Haley <aph@redhat.com>
6855
6856 * expr.c (build_field_ref): Widen field offset.
6857
68582004-01-27 Andrew Haley <aph@redhat.com>
6859
6860 java/13273
6861 * parse.y (check_interface_throws_clauses): Make sure class_decl
6862 has been loaded.
6863
68642004-01-22 Jeff Sturm <jsturm@one-point.com>
6865
6866 PR java/13733
6867 * parse.y (patch_assignment): Don't modify lhs_type for
6868 reference assignments.
6869
68702004-01-20 Kelley Cook <kcook@gcc.gnu.org>
6871
6872 * Make-lang.in: Replace $(docdir) with doc.
6873 (java.info, java.srcinfo, java.man, java.srcman): New rules.
6874 (java.install-man): Revamp rule.
6875
68762004-01-20 Kelley Cook <kcook@gcc.gnu.org>
6877
6878 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
6879 GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
6880 instead of deferred backquote.
6881
68822004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
6883
6884 * typeck.c (find_method_in_interfaces): Move variable
6885 definition up.
6886
68872004-01-16 Andrew Haley <aph@redhat.com>
6888
6889 PR java/13273:
6890 * typeck.c (shallow_find_method): New.
6891 (find_method_in_superclasses): New.
6892 (find_method_in_interfaces): New.
6893 (lookup_do): Rewrite.
6894 * java-tree.h (SEARCH_ONLY_INTERFACE): Delete.
6895
6896 * jcf-parse.c (read_class): Save and restore output_class.
6897 * decl.c (java_expand_body): Set output_class from fndecl.
6898
68992004-01-15 Michael Chastain <mec.gnu@mindspring.com>
6900
6901 * class.c (gen_indirect_dispatch_tables): Fix string length
6902 calculations.
6903
69042004-01-15 Kelley Cook <kcook@gcc.gnu.org>
6905
6906 * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
6907 (java.srcextra): Copy above back to source directory if requested.
6908 (po-generated): Delete reference to $(parsedir).
6909 (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
6910 Use implicit rule.
6911
69122004-01-14 Jan Hubicka <jh@suse.cz>
6913
6914 * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
6915 estimation.
6916
69172004-01-09 Mark Mitchell <mark@codesourcery.com>
6918
6919 * java-tree.h (java_expand_expr): Change prototype.
6920 * expr.c (java_expand_expr): Add alt_rtl parameter.
6921
69222004-01-09 Andrew Haley <aph@redhat.com>
6923
6924 PR java/12755:
6925 * parse.y (java_fix_constructors): Set output_class.
6926 (java_reorder_fields): Likewise.
6927 (java_layout_classes): Likewise.
6928 (java_expand_classes): Generate indirect dispatch tables.
6929 (java_expand_classes): Set output_class.
6930 (java_finish_classes): Likewise.
6931 * lang.c (java_init): Turn on always_initialize_class_p if we're
6932 using indirect dis[atch.
6933 (java_decl_ok_for_sibcall): Use output_class, not current_class.
6934 (java_get_callee_fndecl): Use class local atable.
6935 * jcf-parse.c
6936 (always_initialize_class_p): Decl moved to java-tree.h.
6937 (HANDLE_CLASS_INFO): Set output_class.
6938 (read_class): Likewise.
6939 (parse_class_file): Call gen_indirect_dispatch_tables.
6940 (parse_zip_file_entries): Set output_class.
6941 (java_parse_file): Set output_class. Don't emit symbol tables.
6942 * java-tree.h (output_class): New.
6943 Remove global declarations for otable, atable, and ctable.
6944 (always_initialize_class_p): moved here from decl.c.
6945 (DECL_OWNER): New.
6946 (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
6947 TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
6948 TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
6949 (struct lang_type): Add otable_methods, otable_decl,
6950 otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
6951 ctable_decl, catch_classes, type_to_runtime_map.
6952 * expr.c (build_field_ref): Make otable, atable, and ctable class
6953 local rather than global.
6954 (build_known_method_ref): Likewise.
6955 (build_invokeinterface): Likewise.
6956 (java_expand_expr): Pass runtime type (rather than actual type) to
6957 expand_start_catch.
6958 * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
6959 this class. Look up each class in that map to delete duplicates.
6960 (expand_end_java_handler): Pass runtime type (rather than actual
6961 type) to expand_start_catch.
6962 * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
6963 (do_nothing): New.
6964 (java_init_decl_processing): Rearrange things. Remove global
6965 declarations of otable, atable, and ctable.
6966 (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
6967 (java_expand_body): Set output_class.
6968 * constants.c (build_constant_data_ref): Use output_class, not
6969 current_class.
6970 (alloc_name_constant): Likewise.
6971 * class.c (gen_indirect_dispatch_tables): New.
6972 (build_class_ref): Generate hard reference to superclass, even if
6973 using indirect dispatch.
6974 (build_static_field_ref): Use class local atable.
6975 (make_class_data): Generate hard reference to superclass, even if
6976 using indirect dispatch.
6977 Generate symbolic references to interfaces when using indirect
6978 dispatch.
6979 (make_class_data): Emit otable, atable, and ctable.
6980 Make otable, atable, and ctable class local rather than global.
6981 (emit_catch_table): Make otable, atable, and ctable class local
6982 rather than global.
6983
69842003-12-25 Andrew Pinski <pinskia@physics.uc.edu>
6985
6986 * parse.y (catch_clause_parameter): Fix typo.
6987
6988 PR java/13404
6989 * parse.y: (catch_clause_parameter): Return early if $3, aka
6990 formal_parameter, is null.
6991
69922003-12-20 Kazu Hirata <kazu@cs.umass.edu>
6993
6994 * class.c: Remove uses of "register" specifier in
6995 declarations of arguments and local variables.
6996 * decl.c: Likewise.
6997 * expr.c: Likewise.
6998 * gjavah.c: Likewise.
6999 * jcf-dump.c: Likewise.
7000 * jcf-io.c: Likewise.
7001 * jcf-parse.c: Likewise.
7002 * jcf-write.c: Likewise.
7003 * keyword.h: Likewise.
7004 * parse.y: Likewise.
7005 * typeck.c: Likewise.
7006 * verify.c: Likewise.
7007
70082003-12-06 Kelley Cook <kcook@gcc.gnu.org>
7009
7010 * Make-lang.in (GCJ_CROSS_NAME): Delete.
7011 (java.install_common, java.install-man): Adjust for above.
7012 (java.uninstall): Likewise.
7013
70142003-12-03 Michael Koch <konqueror@gmx.de>
7015
7016 * class.c (make_class_data):
7017 Push field value to 'hack_signers' instead of 'signers'.
7018 * decl.c (java_init_decl_processing):
7019 Push field 'hack_signers' instead of 'signers'.
7020
70212003-12-03 Zack Weinberg <zack@codesourcery.com>
7022
7023 * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
7024 including iconv.h.
7025
70262003-12-03 Ralph Loader <rcl@ihug.co.nz>
7027
7028 PR java/12374:
7029 * parse.y (qualify_ambiguous_name): Remove lots of broken
7030 field access processing - there's no need to do that here,
7031 because we have resolve_field_access. Remove
7032 RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
7033 * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
7034 used.
7035
70362003-12-01 Jeff Sturm <jsturm@one-point.com>
7037
7038 Fix PR java/13237
7039 * parse.y (java_complete_lhs): Save location prior to patching
7040 CALL_EXPR.
7041
70422003-11-25 Mohan Embar <gnustuff@thisiscool.com>
7043
7044 PR java/12548
7045 * resource.c (write_resource_constructor): Append
7046 "_resource" to constructor identifier name.
7047
70482003-11-25 Jeff Sturm <jsturm@one-point.com>
7049
7050 Fix PR java/13183.
7051 * constants.c (cpool_for_class): New function.
7052 (outgoing_cpool): Remove global variable.
7053 (alloc_name_constant): Use cpool_for_class.
7054 (build_constants_constructor): Likewise.
7055 * decl.c (java_expand_body): Set current_class.
7056 * java-tree.h (outgoing_cpool) Remove declaration.
7057 (init_outgoing_cpool): Likewise.
7058 * jcf-parse.c (init_outgoing_cpool): Remove function.
7059 (parse_class_file): Don't call init_outgoing_cpool.
7060 * parse.y (java_complete_expand_methods): Don't call
7061 init_outgoing_cpool. Don't save outgoing_cpool.
7062 (java_expand_classes): Don't restore outgoing_cpool.
7063 (java_finish_classes): Likewise.
7064
70652003-11-24 Mohan Embar <gnustuff@thisiscool.com>
7066
7067 * Make-lang.in: (java.install-common) Add
7068 symlink for $(target_noncanonical)-gcjh for
7069 native builds.
7070
70712003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
7072
7073 * Make-lang.in (java.extraclean): Delete.
7074
70752003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
7076
7077 * Make-lang.in (check-java): Add.
7078
70792003-11-19 Jeff Sturm <jsturm@one-point.com>
7080
7081 Fix PR java/13024.
7082 * except.c (prepare_eh_table_type): Allocate variable-sized
7083 buffer `buf' with alloca.
7084
70852003-11-17 Jeff Sturm <jsturm@one-point.com>
7086
7087 Fix PR java/12857.
7088
7089 decl.c (java_init_decl_processing): Don't initialize
7090 class_not_found_type_node, no_class_def_found_type_node.
7091
7092 java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
7093 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
7094 (class_not_found_type_node, no_class_def_found_type_node):
7095 Don't define.
7096
7097 parse.y (build_dot_class_method_invocation): Add this_class
7098 argument. Qualify method invocations to a different class.
7099 (create_new_parser_context): Initialize saved_data_ctx to 0.
7100 (java_parser_context_save_global): Initialize saved_data_ctx to 1.
7101 (build_dot_class_method): Don't load classes. Register
7102 incomplete types.
7103 (build_incomplete_class_ref): Special cases for interfaces
7104 and inner classes. Move build_dot_class_method call to here...
7105 (patch_incomplete_class_ref): ...from here. Pass current_class
7106 to build_dot_class_method_invocation.
7107 (build_assertion): Pass class_type to
7108 build_dot_class_method_invocation.
7109 (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
7110
71112003-11-17 Jeff Sturm <jsturm@one-point.com>
7112
7113 Fix PR java/12739.
7114 * java-tree.h (BLOCK_EMPTY_P): Define.
7115 * parse.y (java_complete_lhs): Check for empty blocks
7116 in TRY_FINALLY_EXPR case.
7117
71182003-11-17 Andrew Haley <aph@redhat.com>
7119
7120 * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
7121 (struct lang_decl_var:freed): New variable.
7122 * decl.c (poplevel): Mark local vars that have gone out of scope.
7123 (push_jvm_slot): Don't use the RTL of a var that has gone out of
7124 scope.
7125
71262003-11-16 Jason Merrill <jason@redhat.com>
7127
7128 * Make-lang.in (java.tags): Create TAGS.sub files in each directory
7129 and TAGS files that include them for each front end.
7130
71312003-11-15 Tom Tromey <tromey@redhat.com>
7132
7133 * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
7134
71352003-11-12 Jason Merrill <jason@redhat.com>
7136
7137 PR optimization/12547
7138 * lang.c (java_tree_inlining_walk_subtrees): Just walk
7139 BLOCK_EXPR_BODY directly.
7140
71412003-11-12 Andrew Haley <aph@redhat.com>
7142
7143 PR java/11045
7144 * parse.y (fold_constant_for_init): Check that we really do have a
7145 constant.
7146
7147 PR java/11533
7148 * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
7149 init_test_decls being inlined.
7150
7151 PR java/12890:
7152 * parse.y (do_resolve_class): Check return value from
7153 breakdown_qualified().
7154
71552003-11-11 Tom Tromey <tromey@redhat.com>
7156
7157 PR java/12915:
7158 * parse.y (merge_string_cste): Handle case where we have a
7159 pointer that happens to be zero, not null_pointer_node.
7160
71612003-11-10 Tom Tromey <tromey@redhat.com>
7162
7163 * jcf-parse.c (classify_zip_file): Correctly compare
7164 filename_length against length of manifest file's name.
7165
71662003-11-08 Tom Tromey <tromey@redhat.com>
7167
7168 PR java/12894:
7169 * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
7170
71712003-11-06 Andrew Haley <aph@redhat.com>
7172
7173 * expr.c (java_stack_swap): Make sure destination stack slots are
7174 of the correct type.
7175
71762003-11-03 Kelley Cook <kcook@gcc.gnu.org>
7177
7178 * Make-lang.in (dvi): Move targets to $(docobjdir).
7179 (gcj.dvi): Simplify rule and adjust target.
7180 (gcj.info): Simplify rule.
7181 (gcj.pod): New intermediate rule.
7182 (gcjh.pod): Likewise.
7183 (jv-scan.pod): Likewise.
7184 (jcf-dump.pod): Likewise.
7185 (gij.pod): Likewise.
7186 (jv-convert.pod): Likewise.
7187 (rmic.pod): Likewise.
7188 (rmiregistry.pod): Likewise.
7189 (gcj.1): Delete.
7190 (gcjh.1): Delete.
7191 (jv-scan.1): Delete.
7192 (jcf-dump.1): Delete.
7193 (gij.1): Delete.
7194 (jv-convert.1): Delete.
7195 (rmic.1): Delete.
7196 (rmiregistry.1): Delete.
7197
71982003-11-02 Jeff Sturm <jsturm@one-point.com>
7199
7200 Fixes PR java/12866.
7201 * parse.y (resolve_qualified_expression_name): Move test
7202 for outer field access methods from here...
7203 (check_thrown_exceptions) ...to here.
7204
72052003-11-01 Kelley Cook <kcook@gcc.gnu.org>
7206
7207 * .cvsignore: Delete.
7208
72092003-10-28 Frank Ch. Eigler <fche@redhat.com>
7210
7211 * verify.c (verify_jvm_instructions): Don't warn about legal
7212 eh binding regions generated for example by jdk 1.4.1.
7213
72142003-10-24 David S. Miller <davem@redhat.com>
7215
7216 * jcf-parse.c (jcf_parse): Fix args to fatal_error().
7217
72182003-10-22 Andrew Haley <aph@redhat.com>
7219
7220 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
7221 (java_get_callee_fndecl): New.
7222
7223 * jcf-parse.c (java_parse_file): Call emit_catch_table().
7224
7225 * java-tree.h (ctable_decl): New.
7226 (catch_classes): New.
7227 (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
7228
7229 * decl.c (java_init_decl_processing): Add catch_class_type.
7230 Add ctable_decl.
7231 Add catch_classes field.
7232
7233 * class.c (build_indirect_class_ref): Break out from
7234 build_class_ref.
7235 (make_field_value): Check flag_indirect_dispatch.
7236 (make_class_data): Ditto.
7237 Tidy uses of PUSH_FIELD_VALUE.
7238 Add field catch_classes.
7239 (make_catch_class_record): New.
7240
7241 * java-tree.h (PUSH_FIELD_VALUE): Tidy.
7242
72432003-10-22 Kazu Hirata <kazu@cs.umass.edu>
7244
7245 * jcf-write.c: Follow spelling conventions.
7246 * parse.y: Likewise.
7247
72482003-10-22 Kazu Hirata <kazu@cs.umass.edu>
7249
7250 * ChangeLog: Fix typos.
7251 * expr.c: Fix comment typos.
7252 * jcf-write.c: Likewise.
7253 * lang.c: Likewise.
7254 * lex.c: Likewise.
7255 * mangle.c: Likewise.
7256 * parse-scan.y: Likewise.
7257 * parse.y: Likewise.
7258
72592003-10-22 Tom Tromey <tromey@redhat.com>
7260
7261 * expr.c (expand_byte_code): Only warn about dead bytecode when
7262 extra_warnings is set.
7263
72642003-10-22 Bryce McKinlay <bryce@mckinlay.net.nz>
7265
7266 Fix for PR java/12586.
7267 * mangle.c (find_compression_record_match): Don't iterate through
7268 package namespace elements unless they all match compression_table
7269 entries.
7270
72712003-10-20 Kelley Cook <kcook@gcc.gnu.org>
7272
7273 * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
7274 (generate-manpages): Likewise.
7275 (java.maintainer-clean): Likewise.
7276 (gcj.info): Likewise.
7277 (gcj.1): Likewise.
7278 (gcjh.1): Likewise.
7279 (jv-scan.1): Likewise.
7280 (jcf-dump.1): Likewise.
7281 (gij.1): Likewise.
7282 (jv-convert.1): Likewise.
7283 (rmic.1): Likewise.
7284 (rmiregistry.1): Likewise.
7285 (java.install-man): Likewise.
7286 (parse-scan.o): Move and define complete compile line.
7287 (parse.o): Likewise.
7288 (jcf-tree-inline.o): Move.
7289
72902003-10-20 Mark Mitchell <mark@codesourcery.com>
7291
7292 * Make-lang.in (info): Update dependencies.
7293 (java.install-info): Remove.
7294 ($(srcdir)/java/gcj.info): Replace with ...
7295 ($(docobjdir)/gcj.info): ... this.
7296
72972003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
7298
7299 * Make-lang.in: Replace uses of $(target_alias) with
7300 $(target_noncanonical).
7301
73022003-10-09 Tom Tromey <tromey@redhat.com>
7303
7304 * decl.c (java_init_decl_processing): Declare signers field.
7305 * class.c (make_class_data): Set signers field.
7306
73072003-10-09 Jason Merrill <jason@redhat.com>
7308
7309 * parse.y (patch_assignment): Use make_node to create a BLOCK.
7310 * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
7311 POINTER_TYPE.
7312
73132003-10-06 Mark Mitchell <mark@codesourcery.com>
7314
7315 * Make-lang.in (java.info): Replace with ...
7316 (info): ... this.
7317 (java.dvi): Replace with ...
7318 (dvi): ... this.
7319 (java.generated-manpages): Replace with ...
7320
73212003-10-03 Kelley Cook <kelleycook@wideopenwest.com>
7322
7323 * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
7324
73252003-10-01 Andrew Haley <aph@redhat.com>
7326
7327 * jcf-parse.c (java_parse_file): Write otable and atable.
7328 * java-tree.h (atable_methods): New.
7329 (atable_decl): New.
7330 (atable_syms_decl): New.
7331 (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
7332 JTI_ATABLE_SYMS_DECL. Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
7333 (symbol_*type): Rename method_symbol* to symbol*type.
7334 (emit_offset_symbol_table): Delete.
7335 (emit_symbol_table): New.
7336 (get_symbol_table_index): New.
7337 (atable_type): New.
7338 * expr.c (build_field_ref): Handle flag_indirect_dispatch.
7339 (build_known_method_ref): Likewise.
7340 (get_symbol_table_index): Rename from get_offset_table_index.
7341 Parameterize to allow re-use by differing types of symbol table.
7342 (build_invokevirtual): Pass table to get_offset_table_index.
7343 * decl.c (java_init_decl_processing): Push types and decls for
7344 atable and atable_syyms.
7345 * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
7346 (make_class_data): Add new fields atable and atable_syms.
7347 (emit_symbol_table): Rename from emit_offset_symbol_table.
7348 Parameterize to allow re-use by different types of symbol table.
7349 (build_symbol_entry): Renamed from build_method_symbols_entry.
7350
73512003-09-30 Roger Sayle <roger@eyesopen.com>
7352
7353 * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
7354 semantics for SAVE_EXPR, by caching the result in a temporary.
7355
73562003-09-28 Richard Henderson <rth@redhat.com>
7357
7358 * check-init.c (check_init): Save and restore input_location
7359 instead of file and line separately.
7360 * decl.c (java_expand_body): Likewise.
7361 * jcf-write.c (generate_bytecode_insns): Likewise.
7362 * parse.y (safe_layout_class): Likewise.
7363 * jcf-parse.c (read_class, parse_class_file): Likewise.
7364 (java_parse_file): Use %H for warning locator.
7365
73662003-09-28 Roger Sayle <roger@eyesopen.com>
7367
7368 * expr.c (java_check_reference): Use the semantics of COND_EXPRs
7369 with void-type branches instead of using a COMPOUND_EXPR.
7370
73712003-09-28 Jeff Sturm <jsturm@one-point.com>
7372
7373 * decl.c (java_optimize_inline, dump_function): Remove.
7374 * java-tree.h (java_optimize_inline): Remove declaration.
7375 * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
7376 * parse.y (source_end_java_method, java_expand_classes):
7377 Likewise. Remove dead code.
7378
73792003-09-27 Roger Sayle <roger@eyesopen.com>
7380
7381 * lang.c (java_init_options): Set flag_evaluation_order.
7382 * expr.c (force_evaluation_order): Don't attempt to force
7383 evaluation order of binary operations using save_expr.
7384 * parse.y (java_complete_lhs): No longer need to call
7385 force_evaluation_order when constructing binary operators.
7386
73872003-09-27 Alexandre Petit-Bianco <apbianco@redhat.com>
7388 Bryce McKinlay <bryce@mckinlay.net.nz>
7389
7390 PR java/1333:
7391 * parse.y (not_accessible_field_error): New function.
7392 (resolve_expression_name): Check field access permissions.
7393 (resolve_qualified_expression_name): Use
7394 not_accessible_field_error.
7395 (resolve_qualified_expression_name): Likewise.
7396
73972003-09-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7398
7399 * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
7400
74012003-09-23 Roger Sayle <roger@eyesopen.com>
7402
7403 * jcf-write.c (generate_bytecode_insns): Optimize binary operations
7404 with equal operands without side-effects.
7405
74062003-09-22 Jeff Sturm <jsturm@one-point.com>
7407
7408 * decl.c (java_init_decl_processing): Don't emit otable decls
7409 if flag_indirect_dispatch is not set.
7410
74112003-09-21 Richard Henderson <rth@redhat.com>
7412
7413 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
7414 resource.c: Revert.
7415
74162003-09-21 Richard Henderson <rth@redhat.com>
7417
7418 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
7419 resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
7420
74212003-09-20 Richard Henderson <rth@redhat.com>
7422
7423 * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
7424
74252003-09-18 Roger Sayle <roger@eyesopen.com>
7426
7427 * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
7428 * check-init.c (check_init): Likewise.
7429
74302003-09-18 Roger Sayle <roger@eyesopen.com>
7431
7432 * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
7433
74342003-09-16 Andrew Haley <aph@redhat.com>
7435
7436 * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
7437
74382003-09-17 Ranjit Mathew <rmathew@hotmail.com>
7439
7440 Fixes PR java/9577
7441 * mangle.c (find_compression_record_match): Skip
7442 over a "6JArray" (the array template mangled string)
7443 IDENTIFIER_NODE.
7444 (mangle_array_type): Correct minor typo.
7445 (atms): Move definition to the beginning.
7446
74472003-09-16 Bryce McKinlay <bryce@mckinlay.net.nz>
7448
7449 * class.c (add_miranda_methods): Ensure super-interfaces are laid
7450 out. Fix for PR java/12254.
7451
74522003-09-11 Richard Henderson <rth@redhat.com>
7453
7454 * parse.y (source_end_java_method): Update for new
7455 cgraph_finalize_function argument.
7456
74572003-09-09 Richard Henderson <rth@redhat.com>
7458
7459 * parse.y (source_end_java_method): Update call to
7460 cgraph_finalize_function.
7461
74622003-09-03 Jeff Sturm <jsturm@one-point.com>
7463
7464 * decl.c (java_expand_body): New function.
7465 * expr.c (build_class_init): Set DECL_IGNORED_P.
7466 * java-tree.h (start_complete_expand_method,
7467 java_expand_body): Declare.
7468 * jcf-parse.c (cgraph.h): Include.
7469 (java_parse_file): Handle flag_unit_at_a_time.
7470 * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
7471 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
7472 (java_estimate_num_insns): Use walk_tree_without_duplicates.
7473 (java_start_inlining): New function.
7474 * parse.h (java_finish_classes): Declare.
7475 * parse.y: Include cgraph.h.
7476 (block): Don't special-case empty block production.
7477 (craft_constructor): Set DECL_INLINE.
7478 (source_end_java_method): Handle flag_unit_at_a_time.
7479 Replace inline code with call to java_expand_body.
7480 (start_complete_expand_method): Remove static modifier.
7481 (java_expand_method_bodies): Patch function tree for
7482 class initialization and/or synchronization as needed.
7483 Don't begin RTL expansion yet.
7484 (java_expand_classes): Check flag_unit_at_a_time before
7485 calling finish_class.
7486 (java_finish_classes): New function.
7487 (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
7488 (patch_assignment): Set DECL_CONTEXT on temporary variable.
7489 (emit_test_initialization): Set DECL_IGNORED_P.
7490
74912003-09-03 Roger Sayle <roger@eyesopen.com>
7492
7493 * builtins.c (enum builtin_type): Delete unused enumeration.
7494 * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
7495
74962003-08-28 Tom Tromey <tromey@redhat.com>
7497
7498 * gcj.texi (Extensions): Document gcjlib URLs.
7499
75002003-08-20 Tom Tromey <tromey@redhat.com>
7501
7502 * gcj.texi (Extensions): Added xref.
7503 (libgcj Runtime Properties): Document
7504 gnu.gcj.runtime.VMClassLoader.library_control.
7505
75062003-08-20 Andrew Haley <aph@redhat.com>
7507
7508 * except.c (prepare_eh_table_type): Use new encoding for exception
7509 handlers when using -fno-assume-compiled.
7510
75112003-08-13 Tom Tromey <tromey@redhat.com>
7512
7513 * gcj.texi (Invoking gij): Document -X and -?.
7514
75152003-08-13 Mohan Embar <gnustuff@thisiscool.com>
7516
7517 * Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
7518 GCJH_OBJS, JCFDUMP_OBJS
7519 * win32-host.c: Removed the unnecessary and broken dependency
7520 on jcf.h
7521
75222003-08-11 Tom Tromey <tromey@redhat.com>
7523
7524 * parse.y (java_check_regular_methods): Typo fixes. Call
7525 check_interface_throws_clauses. Use
7526 check_concrete_throws_clauses.
7527 (check_interface_throws_clauses): New function.
7528 (check_concrete_throws_clauses): New function.
7529 (hack_is_accessible_p): New function.
7530 (find_most_specific_methods_list): Added FIXME.
7531 * typeck.c (lookup_do): Use `flags' argument to decide what to
7532 do. Reimplemented.
7533 (lookup_argument_method_generic): New function.
7534 (lookup_argument_method2): Removed.
7535 * jcf.h (ACC_INVISIBLE): New define.
7536 * jcf-write.c (generate_classfile): Skip invisible methods.
7537 * class.c (add_miranda_methods): New function.
7538 (layout_class_methods): Use it.
7539 (get_access_flags_from_decl): Use ACC_INVISIBLE.
7540 * java-tree.h (METHOD_INVISIBLE): New define.
7541 (lang_decl_func) [invisible]: New field.
7542 (lookup_argument_method_generic): Declare.
7543 (SEARCH_INTERFACE): New define.
7544 (SEARCH_SUPER): Likewise.
7545 (SEARCH_ONLY_INTERFACE): Likewise.
7546 (SEARCH_VISIBLE): Likewise.
7547 (lookup_argument_method2): Removed declaration.
7548
75492003-08-05 Tom Tromey <tromey@redhat.com>
7550
7551 Fix for PR java/11600:
7552 * parse.y (java_complete_lhs): See whether we're calling a method
7553 on an array.
7554 (check_thrown_exceptions): Added `is_array_call' argument;
7555 fixed `clone' checking; updated all callers.
7556
75572003-08-05 Steven Bosscher <steven@gcc.gnu.org>
7558
7559 * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h).
7560
75612003-08-03 Tom Tromey <tromey@redhat.com>
7562
7563 * java-tree.h (METHOD_TRANSIENT): Removed.
7564 * decl.c (pushdecl): Removed some dead code.
7565 * class.c (get_access_flags_from_decl): Can't have transient
7566 method.
7567 (add_method_1): Can't have a transient method.
7568
75692003-07-28 Andreas Jaeger <aj@suse.de>
7570
7571 * jvspec.c: Convert to ISO C90 prototypes.
7572
75732003-07-25 Nathan Sidwell <nathan@codesourcery.com>
7574
7575 * decl.c (force_poplevels): Fix warning call.
7576
75772003-07-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
7578
7579 * expr.c (expand_java_field_op): Don't use xxx_with_decl
7580 (expand_java_field_op): Likewise.
7581 * class.c (layout_class_method): Likewise
7582 (emit_register_classes): Likewise.
7583 * decl.c (pushdecl): Likewise.
7584 (poplevel): Likewise.
7585 (force_poplevels): Likewise.
7586 (give_name_to_locals): Likewise.
7587 * check-init.c (check_for_initialization): Likewise.
7588
75892003-07-24 Jason Merrill <jason@redhat.com>
7590
7591 * java-tree.h: Move boolean_type_node et al to the back end.
7592
75932003-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7594
7595 * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary
7596 casts.
7597
75982003-07-19 Neil Booth <neil@daikokuya.co.uk>
7599
7600 * lang.opt: Don't show -MD_ and -MDD_.
7601
76022003-07-18 Neil Booth <neil@daikokuya.co.uk>
7603
7604 * lang-options.h: Remove.
7605 * lang.opt: Add help text.
7606
76072003-07-15 Kazu Hirata <kazu@cs.umass.edu>
7608
7609 * expr.c: Remove the last argument to expand_assignment().
7610
76112003-07-09 Jan Hubicka <jh@suse.cz>
7612
7613 * java-tree.h (DECL_NUM_STMTS): Rename to...
7614 (DECL_ESTIMATED_INSNS): ... this.
7615 * lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
7616 New static functions.
7617 (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
7618 * parser.y (add_stmt_to_compound): Do not account statements.
7619
76202003-07-08 Mark Wielaard <mark@klomp.org>
7621
7622 * gcj.texi: CNI now expands to Compiled Native Interface.
7623
76242003-07-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7625
7626 * Make-lang.in (java/gcj.dvi): Use PWD_COMMAND.
7627
76282003-07-07 Nathan Sidwell <nathan@codesourcery.com>
7629
7630 * expr.c (expand_byte_code): Adjist emit_line_note call.
7631
76322003-07-06 Neil Booth <neil@daikokuya.co.uk>
7633
7634 * lang.c (java_handle_option): Don't handle filenames.
7635
76362003-07-02 Zack Weinberg <zack@codesourcery.com>
7637
7638 * jcf-path.c: Don't default-define PATH_SEPARATOR nor
7639 DIR_SEPARATOR.
7640 Use FILENAME_CMP.
7641 * jcf-write.c: Don't default-define DIR_SEPARATOR.
7642 * jcf.h: Delete COMPARE_FILENAMES definition.
7643
76442003-07-02 Neil Booth <neil@daikokuya.co.uk>
7645
7646 * lang.c (java_init_options): Update prototype.
7647
76482003-07-01 Nathan Sidwell <nathan@codesourcery.com>
7649
7650 * decl.c (poplevel): Adjust define_label call.
7651
76522003-06-27 Zack Weinberg <zack@codesourcery.com>
7653
7654 * gjavah.c (flag_jni): Make non-static.
7655 * parse-scan.y (ctxp): Make non-static.
7656
7657 * class.c (build_method_symbols_entry)
7658 * expr.c (get_offset_table_index)
7659 * jcf-parse.c (jcf_parse):
7660 Mark the definition static, matching the forward declaration.
7661
76622003-06-26 Neil Booth <neil@daikokuya.co.uk>
7663
7664 * lang.c (java_handle_option): Don't check for missing arguments.
7665
76662003-06-20 Nathan Sidwell <nathan@codesourcery.com>
7667
7668 * class.c (push_class): Use a location_t to save place.
7669 (emit_register_classes): Set input_location. Adjust
7670 expand_function_end call.
7671 * resource.c (write_resource_constructor): Likewise.
7672 * decl.c (end_java_method): Adjust expand_function_end call.
7673 * parse.y (source_end_java_method): Likewise.
7674
76752003-06-17 Robert Abeles <rabeles@archaelogic.com>
7676
7677 * lang.c (java_handle_option): Likewise.
7678
76792003-06-16 Neil Booth <neil@daikokuya.co.uk>
7680
7681 * lang.c (java_handle_option): Special-casing of optional
7682 joined arguments no longer needed.
7683 * lang.opt: Update switches that take optional argument.
7684
76852003-06-15 Neil Booth <neil@daikokuya.co.uk>
7686
7687 * lang.opt: Declare Java.
7688 * lang.c (java_init_options): Update.
7689
76902003-06-15 Neil Booth <neil@daikokuya.co.uk>
7691
7692 * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
7693
76942003-06-14 Neil Booth <neil@daikokuya.co.uk>
7695
7696 * lang-specs.h: Rewrite -MD and -MMD to append an underscore.
7697 * lang.c (java_handle_option): -MD and -MMD have an underscore.
7698 * lang.opt: -MD and -MMD have an underscore.
7699
77002003-06-14 Nathan Sidwell <nathan@codesourcery.com>
7701
7702 * class.c (emit_register_classes): Adjust init_function_start
7703 call.
7704 * decl.c (complete_start_java_method): Likewise.
7705 * resource.c (write_resource_constructor): Likewise.
7706
77072003-06-14 Neil Booth <neil@daikokuya.co.uk>
7708
7709 * Make-lang.in: Update to use options.c and options.h.
7710 * lang.c: Include options.h not j-options.h.
7711 (java_handle_option): Abort on unrecognized option.
7712 (java_init_options): Request Java switches.
7713
77142003-06-11 Neil Booth <neil@daikokuya.co.uk>
7715
7716 * Make-lang.in: Handle mostlyclean.
7717
77182003-06-11 Tom Tromey <tromey@redhat.com>
7719
7720 * lang.c (java_handle_option): Update dependency_tracking for
7721 OPT_MF case.
7722
7723 * lang.c (java_handle_option): OPT_fbootclasspath_ can take an
7724 empty argument.
7725
77262003-06-10 Andrew Haley <aph@redhat.com>
7727
7728 * resource.c (write_resource_constructor): Use expand_expr to
7729 generate the address of the label attached to a resource.
7730 * Make-lang.in (java/resource.o): Add expr.h
7731
77322003-06-10 Andrew Haley <aph@redhat.com>
7733
7734 * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
7735 (java_decl_ok_for_sibcall): New.
7736
77372003-06-09 Neil Booth <neil@daikokuya.co.uk>
7738
7739 * Make-lang.in (JAVA_OBJS, java/lang.o): Update.
7740 (java/j-options.c, java/j-options.h): New.
7741 * java-tree.h (resource_name, compile_resource_file,
7742 compile_resource_data): Constify.
7743 * jcf-write.c (jcf_write_base_directory): Similarly.
7744 * jcf.h (jcf_write_base_directory): Similarly.
7745 * lang.c: Include j-options.h.
7746 (cl_options_count, cl_options, string_option, java_decode_option,
7747 lang_f_options, lang_W_options, LANG_HOOKS_DECODE_OPTION,
7748 process_option_with_no): Remove.
7749 (resource_name): Constify.
7750 (LANG_HOOKS_HANDLE_OPTION): Override.
7751 (java_handle_option): New.
7752 (java_init): Don't call jcf_path_init.
7753 (java_init_options): Call jcf_path_init.
7754 * lang.opt: New.
7755 * resource.c (compile_resource_data, compile_resource_file): Constify.
7756
77572003-06-09 Nathan Sidwell <nathan@codesourcery.com>
7758
7759 * java-tree.h (DECL_FUNCTION_LAST_LINE): New.
7760 (struct lang_decl_func): Add last_line field.
7761 * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
7762 DECL_SOURCE_LINE_LAST): Remove.
7763 * parse.y (missing_return_error, finish_method_declaration,
7764 lookup_cl, start_artificial_method_body, source_end_java_method,
7765 start_complete_expand_method): Adjust.
7766
77672003-06-08 Tom Tromey <tromey@redhat.com>
7768
7769 * jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and
7770 fno-assume-compiled.
7771
77722003-06-08 Roger Sayle <roger@eyesopen.com>
7773
7774 * builtins.c (define_builtin_type, builtin_types): Delete.
7775 (define_builtin): Rewritten to take just the built-in code,
7776 the function's name, type and fallback library function name.
7777 All built-ins used by Java are implicit and BUILT_IN_NORMAL.
7778 (initialize_builtins): Overhaul to define the GCC builtins
7779 used by gcj manually, providing the Java run-time's
7780 implementations as the fallback library function.
7781
77822003-06-08 Anthony Green <green@redhat.com>
7783
7784 * parse.y (patch_cast): Fix conversions from floating-point to
7785 integral types.
7786
77872003-06-08 Neil Booth <neil@daikokuya.co.uk>
7788
7789 * Make-lang.in: Update.
7790 * lang.c: Include opts.h. Define cl_options_count and cl_options.
7791
77922003-06-07 Neil Booth <neil@daikokuya.co.uk>
7793
7794 * lang.c (java_init_options): Update.
7795
77962003-06-05 Jan Hubicka <jh@suse.cz>
7797
7798 * Make-lang.in: Add support for stageprofile and stagefeedback
7799
78002003-05-31 Roger Sayle <roger@eyesopen.com>
7801
7802 * lang.c (java_init_options): Prescribe wrap-around two's
7803 complement arithmetic overflow by setting flag_wrapv.
7804
78052003-05-29 Roger Sayle <roger@eyesopen.com>
7806
7807 * builtins.c (cos_builtin, sin_builtin, sqrt_builtin): Delete.
7808 (builtin_record): Add an additional builtin_code field to
7809 record which GCC built-in corresponds to the Java function.
7810 (java_builtins): Add new entries for atan, atan2, exp, log,
7811 pow and tan.
7812 (max_builtin, min_builtin, abs_builtin): Perform constant
7813 folding on the resulting tree.
7814 (java_build_function_call_expr): Likewise, perform constant
7815 folding on the resulting tree.
7816 (initialize_builtins): The NULL creators are now allowed in
7817 the java_builtins table, which is now terminated by an entry
7818 with builtin_code == END_BUILTINS.
7819 (check_for_builtin): Likewise. If the matching creator is
7820 NULL, construct the call using java_build_function_call_expr
7821 directly with the decl for the corresponding builtin_code.
7822
78232003-05-23 Nathanael Nerode <neroden@gcc.gnu.org>
7824
7825 * win32-host.c: Normalize copyright boilerplate.
7826
78272003-05-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7828
7829 * parse.y (print_int_node): Use string concatentation on
7830 HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
7831 function calls into one.
7832
78332003-05-13 Zack Weinberg <zack@codesourcery.com>
7834
7835 * jcf-parse.c, jcf-write.c, lex.c: Replace all calls to
7836 fatal_io_error with calls to fatal_error; add ": %m" to the end of
7837 all the affected error messages.
7838
78392003-05-13 Richard Henderson <rth@redhat.com>
7840
7841 * class.c (layout_class_method): Set DECL_EXTERNAL.
7842 * decl.c (java_mark_decl_local, java_mark_class_local): New.
7843 * java-tree.h (java_mark_class_local): Declare.
7844 * jcf-parse.c (parse_class_file): Use it.
7845 * parse.y (java_expand_classes): Likewise.
7846
78472003-05-04 Nathan Sidwell <nathan@codesourcery.com>
7848
7849 * Make-lang.in (java/parse.o, java/parse-scan.o): Depend on input.h.
7850 * lex.h: #include input.h.
7851 * jv-scan.c (input_filename): Remove.
7852
78532003-05-02 Tom Tromey <tromey@redhat.com>
7854
7855 PR java/10491:
7856 * gjavah.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
7857 (handle_inner_classes): New function.
7858
78592003-05-01 Tom Tromey <tromey@redhat.com>
7860
7861 PR java/10459:
7862 * parse.y (finish_for_loop): Do nothing if update expression is a
7863 EXPR_WFL_NODE wrapping nothing.
7864 (java_complete_lhs) <COMPOUND_EXPR>: Likewise.
7865
78662003-05-02 Nathan Sidwell <nathan@codesourcery.com>
7867
7868 * lex.h (input_lineno): Remove declaration.
7869 * parse-scan.y: #include input.h.
7870 (input_filename): Remove declaration.
7871 (input_location): Add definition.
7872 (input_line): Remove definition.
7873
78742003-05-01 Nathan Sidwell <nathan@codesourcery.com>
7875
7876 * lex.h (lineno): Rename to ...
7877 (input_line): ... here
7878 * parse-scan.y (lineno): Rename to ...
7879 (input_line): ... here.
7880 (reset_report): Rename lineno to input_line.
7881 * check-init.c (check_init): Likewise.
7882 * class.c (push_class): Likewise.
7883 * decl.c (complete_start_java_method, end_java_method): Likewise.
7884 * expr.c (expand_byte_code): Likewise.
7885 * jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
7886 * jcf-write.c (generate_bytecode_insns): Likewise.
7887 * lex.c (java_init_lex, java_allocate_new_line,
7888 do_java_lex): Likewise.
7889 * parse.h (YYNOT_TWICE): Likewise.
7890 * parse.y (empty_statement, expression_statement,
7891 java_pop_parser_context, java_parser_context_save_global,
7892 yyerror, register_fields, method_header, safe_layout_class,
7893 find_in_imports_on_demand, create_artificial_method,
7894 source_end_java_method, start_complete_expand_method,
7895 build_thisn_assign, java_complete_lhs,
7896 maybe_absorb_scoping_block): Likewise.
7897
78982003-04-20 Mohan Embar <gnustuff@thisiscool.com>
7899
7900 * jcf-io.c (find_class): use DIR_SEPARATOR instead of
7901 '/' when computing java source filename
7902
79032003-04-13 Tom Tromey <tromey@redhat.com>
7904
7905 * gjavah.c (print_c_decl): Indentation fix.
7906
79072003-04-12 Zack Weinberg <zack@codesourcery.com>
7908
7909 * class.c (make_field_value, make_method_value, get_dispatch_table)
7910 (make_class_data, emit_offset_symbol_table)
7911 * constants.c (build_constants_constructor)
7912 * java-tree.h (START_RECORD_CONSTRUCTOR)
7913 * parse.y (maybe_build_array_element_wfl):
7914 Use build_constructor.
7915
79162003-04-10 Eric Blake <ebb9@email.byu.edu>
7917
7918 PR java/10253:
7919 * parse.y (string_convert_int_cst): Always use at least one digit
7920 in string conversion. Remove ASCII dependence.
7921 (merge_string_cste): Fix merging of 3-byte UTF-8 characters.
7922
79232003-03-16 Mohan Embar <gnustuff@thisiscool.com>
7924
7925 * Make-lang.in: added win32-host.c
7926 * jcf.h: defined macro JCF_OPEN_EXACT_CASE which
7927 resolves to open() on non-Win32 platforms and
7928 Win32-specific jcf_open_exact_case() on Win32
7929 * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE
7930 when trying .java and .class files
7931 * win32-host.c: added to repository. Defines
7932 Win32-specific jcf_open_exact_case()
7933
79342003-04-10 Andrew Haley <aph@redhat.com>
7935
7936 * jcf-write.c (struct jcf_partial): num_jsrs: new field.
7937 (maybe_free_localvar): Renamed from localvar_free.
7938 Add new arg, really.
7939 (generate_bytecode_insns): Set new variable, jsrs.
7940 Only free local vars if no jsr insns have been emittted.
7941 Call maybe_free_localvar, not localvar_free.
7942
79432003-03-30 Joseph S. Myers <jsm@polyomino.org.uk>
7944
7945 * gcj.texi: Remove @ at start of file.
7946
79472003-03-25 Tom Tromey <tromey@redhat.com>
7948
7949 * parse.y (create_interface): Call CHECK_DEPRECATED.
7950
79512003-03-23 Zack Weinberg <zack@codesourcery.com>
7952
7953 * Make-lang.in: Link jcf-dump against $(LDEXP_LIB).
7954
79552003-03-21 Zack Weinberg <zack@codesourcery.com>
7956
7957 * javaop.h (jfloat, jdouble): Make them structures mirroring
7958 the bit fields of IEEE float and double respectively.
7959 (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
7960 JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
7961 (union Word, union DWord): Delete.
7962 (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
7963
7964 * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
7965 D_NAN_MASK): Delete.
7966 (jni_print_float, jni_print_double): New. Generate
7967 hexadecimal floating constants.
7968 (print_field_info): Use jni_print_float/double.
7969
7970 * jcf-dump.c: Include math.h. Use ldexp/frexp to assemble
7971 finite floating point numbers for output; special case
7972 non-finite floats.
7973
79742003-03-19 Nathanael Nerode <neroden@gcc.gnu.org>
7975
7976 * lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
7977 Replace 0 and 1 with true and false in return statements.
7978
79792003-03-19 Tom Tromey <tromey@redhat.com>
7980
7981 * lex.c (do_java_lex): Renamed from java_lex.
7982 (java_lex): New function.
7983 Include timevar.h.
7984
79852003-03-13 Tom Tromey <tromey@redhat.com>
7986
7987 * parse.y (resolve_inner_class): Error if qualifier is a primitive
7988 type.
7989
79902003-03-04 Andrew Haley <aph@redhat.com>
7991
7992 * gjavah.c (is_first_data_member): New global variable.
7993 (print_c_decl): If it's the first data member, align it as the
7994 superclass.
7995 (process_file): Set is_first_data_member.
7996
79972003-03-11 Tom Tromey <tromey@redhat.com>
7998
7999 * parse.y (resolve_field_access): Initialize class if field is
8000 found in another static field.
8001 * expr.c (build_class_init): Don't optimize out initialization of
8002 implemented interface.
8003
80042003-03-11 Andrew Haley <aph@redhat.com>
8005
8006 * jcf-io.c (caching_stat): Initialize origsep to remove compiler
8007 warning.
8008
80092003-03-10 Ranjit Mathew <rmathew@hotmail.com>
8010
8011 * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR
8012 and DIR_SEPARATOR_2 for a target.
8013 Correct minor typos.
8014
8015 * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR
8016 and DIR_SEPARATOR_2 for a target into account.
8017
80182003-03-08 Neil Booth <neil@daikokuya.co.uk>
8019
8020 * lang.c (java_init): Update prototype, move code to java_post_options.
8021 (java_post_options): Similarly.
8022
80232003-03-05 Ranjit Mathew <rmathew@hotmail.com>
8024
8025 * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
8026 compare file name components depending on the case-sensitivity
8027 or otherwise of the host file system.
8028
8029 * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
8030 "strcmp" to compare file name components.
8031 Use IS_DIR_SEPARATOR instead of comparing directly against
8032 DIR_SEPARATOR.
8033 (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
8034 comparing directly against DIR_SEPARATOR.
8035
80362003-03-04 Tom Tromey <tromey@redhat.com>
8037
8038 * Make-lang.in (java.tags): New target.
8039
80402003-03-01 Roger Sayle <roger@eyesopen.com>
8041
8042 * java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
8043 (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.
8044
80452003-03-01 Tom Tromey <tromey@redhat.com>
8046
8047 * parse.y (jdep_resolve_class): Only check deprecation if we found
8048 a decl.
8049
80502003-02-28 Tom Tromey <tromey@redhat.com>
8051
8052 PR java/9695:
8053 * class.c (maybe_layout_super_class): Always pass a WFL to
8054 do_resolve_class.
8055 * parse.y (do_resolve_class): Updated comment to explain
8056 parameters.
8057
80582003-02-26 Tom Tromey <tromey@redhat.com>
8059
8060 * jcf-write.c (generate_classfile): Check whether class is
8061 deprecated before writing attribute count.
8062
80632003-02-25 Roger Sayle <roger@eyesopen.com>
8064
8065 * java/decl.c (java_init_decl_processing): Get soft_fmod_node from
8066 built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.
8067
80682003-02-23 Tom Tromey <tromey@redhat.com>
8069
8070 * lang-options.h: Added -Wdeprecated.
8071 * gcj.texi (Warnings): Document -Wdeprecated.
8072 * java-tree.h (flag_deprecated): Declare.
8073 * lang.c (lang_W_options): Added deprecated.
8074 (flag_deprecated): New global.
8075 * chartables.h: Rebuilt.
8076 * gen-table.pl (process_one): Look at whitespace.
8077 (print_tables): Define LETTER_SPACE, LETTER_MASK.
8078 * parse.h (CLEAR_DEPRECATED): New macro.
8079 (CHECK_DEPRECATED_NO_RESET): New macro.
8080 * jcf-parse.c (handle_deprecated): New function.
8081 (HANDLE_DEPRECATED_ATTRIBUTE): New define.
8082 * jcf-reader.c (get_attribute): Handle Deprecated attribute.
8083 * parse.y (resolve_type_during_patch): Check deprecation.
8084 (jdep_resolve_class): Likewise.
8085 (process_imports): Likewise.
8086 (resolve_expression_name): Likewise.
8087 (check_deprecation): Strip arrays from decl. Check
8088 flag_deprecated.
8089 (patch_method_invocation): Also check the particular constructor
8090 for deprecation.
8091 (register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
8092 * jcf-write.c (append_deprecated_attribute): New function.
8093 (generate_classfile): Generate deprecated attribute when
8094 appropriate.
8095 * lex.c (java_parse_doc_section): Return type now void. Rewrote.
8096 (java_lex) [case '*']: Simplify logic.
8097 (java_start_char_p): Use LETTER_MASK.
8098 (java_part_char_p): Likewise.
8099 (java_space_char_p): New function.
8100
81012003-02-20 Nathan Sidwell <nathan@codesourcery.com>
8102
8103 Change base class access representation.
8104 * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
8105 (add_interface_do): Likewise.
8106
81072003-02-12 Ranjit Mathew <rmathew@hotmail.com>
8108
8109 * decl.c (java_init_decl_processing): Change
8110 soft_lookupjnimethod_node to reflect the change in
8111 signature of _Jv_LookupJNIMethod in libjava/jni.cc
8112 * expr.c (build_jni_stub): Calculate and pass the size
8113 on the stack of the arguments to a JNI function. Use
8114 new target macro MODIFY_JNI_METHOD_CALL to allow a
8115 target to modify the call to a JNI method.
8116
81172003-02-08 Roger Sayle <roger@eyesopen.com>
8118
8119 * jcf-io.c (java_or_class_file): Use libiberty's lbasename
8120 instead of basename to avoid compiler warnings on Tru64.
8121
81222003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
8123
8124 * gcj.texi: Update to GFDL 1.2.
8125
81262003-01-31 Andrew Haley <aph@redhat.com>
8127
8128 * parse.y (java_expand_classes): Scan the whole class list looking
8129 for access methods that haven't yet been expanded.
8130
81312003-01-31 Adrian Bunk <bunk@fs.tum.de>
8132
8133 Fix for java/4269:
8134
8135 * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO
8136 to fix bootstrap on sparc-unknown-netbsdelf1.5.
8137 * jcf-parse.c: Likewise.
8138
81392003-01-31 Mark Wielaard <mark@klomp.org>
8140
8141 * gjavah.c (throwable_p): Allocate 1 more byte for string.
8142
81432003-01-31 Nathan Sidwell <nathan@codesourcery.com>
8144
8145 * class.c (make_class): Use BINFO_ELTS.
8146 (set_super_info): Likewse.
8147 (add_interface_do): Likewise.
8148
81492003-01-30 Tom Tromey <tromey@redhat.com>
8150
8151 * jcf-parse.c (read_class): Update identifier's class value if it
8152 changed during parsing.
8153
81542003-01-30 Loren James Rittle <ljrittle@acm.org>
8155
8156 * Make-lang.in (po-generated): Find the targets in $(parsedir).
8157 Propagate change to all other rules as required.
8158 (java/parse-scan.o): Add explicit dependency on
8159 $(parsedir)/java/parse-scan.c .
8160
81612003-01-29 Tom Tromey <tromey@redhat.com>
8162
8163 * parse.y (patch_assignment): Only transform the rhs of an
8164 assignment when compiling to native.
8165
81662003-01-28 Tom Tromey <tromey@redhat.com>
8167
8168 * jcf-write.c (generate_bytecode_conditional): Typo fixes.
8169
81702003-01-28 Tom Tromey <tromey@redhat.com>
8171
8172 * lex.c (java_lex): Don't include UEOF as part of token.
8173 (java_read_unicode): Error if \u sequence prematurely terminated.
8174
81752003-01-27 Tom Tromey <tromey@redhat.com>
8176
8177 * parse.y (java_check_regular_methods): Check for construct after
8178 checking types in throws clause.
8179
81802003-01-24 Tom Tromey <tromey@redhat.com>
8181
8182 * class.c (build_static_field_ref): Only a String or numeric field
8183 can fold to a constant.
8184
81852003-01-23 Tom Tromey <tromey@redhat.com>
8186
8187 * jcf-parse.c (parse_zip_file_entries): Overwrite trailing \0 of
8188 file name in resource buffer.
8189
81902003-01-23 Tom Tromey <tromey@redhat.com>
8191
8192 * expr.c (build_known_method_ref): Use method's context to find
8193 method table index.
8194
81952003-01-23 Tom Tromey <tromey@redhat.com>
8196
8197 * constants.c (set_constant_entry): Allocated cleared memory.
8198
81992003-01-22 Tom Tromey <tromey@redhat.com>
8200
8201 * java-tree.h: Don't use PARAMS.
8202 * resource.c: Add prototypes for all functions.
8203 (write_resource_constructor): Use `const char *' to avoid
8204 warning.
8205
82062003-01-22 Nathanael Nerode <neroden@gcc.gnu.org>
8207
8208 * jcf-parse.c (process_zip_dir): Remove unused variable.
8209
82102003-01-22 Tom Tromey <tromey@redhat.com>
8211
8212 * expr.c (build_invokeinterface): Abort if method's context is not
8213 an interface.
8214
82152003-01-22 Tom Tromey <tromey@redhat.com>
8216
8217 * gcj.texi (Input and output files): Mention non-class entries.
8218 * decl.c (java_init_decl_processing): Call
8219 init_resource_processing.
8220 * java-tree.h (compile_resource_data, write_resource_constructor,
8221 compile_resource_file, init_resource_processing): Declare.
8222 * config-lang.in (gtfiles): Added resource.c.
8223 * Make-lang.in (gt-java-resource.h): New target.
8224 (JAVA_OBJS): Added resource.o.
8225 (java/resource.o): New target.
8226 * resource.c: New file.
8227 * class.c (compile_resource_file): Moved to resource.c.
8228 (registerResource_libfunc): Likewise.
8229 (utf8_decl_list): Mark with GTY; now static.
8230 * jcf-parse.c (classify_zip_file): New function.
8231 (parse_zip_file_entries): Use it; compile .properties files.
8232 (process_zip_dir): Use classify_zip_file and compute_class_name.
8233 Don't write class name into zip directory.
8234 (java_parse_file): Call write_resource_constructor.
8235 (compute_class_name): New function.
8236 * jcf-io.c (read_zip_member): Reindented.
8237
82382003-01-21 Tom Tromey <tromey@redhat.com>
8239
8240 * class.c (supers_all_compiled): New function.
8241 (make_class_data): Use it.
8242
82432003-01-21 Tom Tromey <tromey@redhat.com>
8244
8245 * parse.y (method_header): Native method can't be strictfp.
8246 No method can be transient or volatile.
8247
82482003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8249
8250 Make-lang.in (jvspec.o-warn): Add -Wno-error.
8251
82522003-01-18 Kazu Hirata <kazu@cs.umass.edu>
8253
8254 * check-init.c: Fix comment typos.
8255 * class.c: Likewise.
8256 * constants.c: Likewise.
8257 * decl.c: Likewise.
8258 * except.c: Likewise.
8259 * expr.c: Likewise.
8260 * java-except.h: Likewise.
8261 * java-tree.h: Likewise.
8262 * javaop.h: Likewise.
8263 * jcf-dump.c: Likewise.
8264 * jcf-io.c: Likewise.
8265 * jcf-parse.c: Likewise.
8266 * jcf-write.c: Likewise.
8267 * lang.c: Likewise.
8268 * mangle.c: Likewise.
8269 * typeck.c: Likewise.
8270 * verify.c: Likewise.
8271
82722003-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8273
8274 * Make-lang.in (java/jcf-write.o): Depend on $(TM_P_H).
8275 * jcf-write.c: Include "tm_p.h".
8276
82772003-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8278
8279 * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*.
8280
82812003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8282
8283 * builtins.c (java_build_function_call_expr): Renamed from
8284 build_function_call_expr. All callers changed.
8285
8286 * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H).
8287 * jcf-parse.c: Include tm_p.h.
8288
8289 * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
8290 warning.
8291
82922003-01-14 Tom Tromey <tromey@redhat.com>
8293
8294 * class.c (make_class_data): Check that super is compiled before
8295 building class reference to it.
8296
82972003-01-14 Andrew Haley <aph@redhat.com>
8298
8299 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
8300 varargs function -- correct.
8301
83022003-01-14 Andrew Haley <aph@redhat.com>
8303
8304 * decl.c (java_init_decl_processing): Temporarily back out previous patch.
8305
83062003-01-14 Andrew Haley <aph@redhat.com>
8307
8308 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
8309 varargs function -- correct.
8310
8311 * parse.y (patch_assignment): Copy the rhs of an assignment into a
8312 temporary if the RHS is a reference.
8313
83142003-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8315
8316 * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
8317 * keyword.h: Regenerated.
8318
8319 * All Files: Convert to ISO C style function definitions.
8320
83212003-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
8322
8323 * parse.y (check_pkg_class_access): ANSIfy definition.
8324
83252003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8326
8327 * decl.c, parse-scan.y, parse.y: Don't cast return value of
8328 xmalloc et al.
8329
8330 * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
8331
83322003-01-09 Geoffrey Keating <geoffk@apple.com>
8333
8334 Merge from pch-branch:
8335
8336 2002-12-02 Geoffrey Keating <geoffk@apple.com>
8337
8338 * Make-lang.in (java/gjavah.o): Update dependencies.
8339 * gjavah.c: Include ggc.h.
8340
8341 2002-08-16 Geoffrey Keating <geoffk@redhat.com>
8342
8343 * Make-lang.in (GCJH_OBJS): Add ggc-none.o.
8344 (JCFDUMP_OBJS): Add ggc-none.o.
8345 (java/jcf-dump.o): Depend on GGC_H.
8346 * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate
8347 CPool substructures.
8348 * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs.
8349 * jcf-dump.c: Include ggc.h.
8350
8351 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
8352
8353 * jcf.h (union cpool_entry): New.
8354 (struct CPool): Use gengtype to mark. Change field 'data' to be
8355 an array of unions.
8356 (struct JCF): Use gengtype to mark.
8357 (CPOOL_UINT): Update for new cpool_entry type.
8358 (CPOOL_USHORT1): Likewise.
8359 (CPOOL_USHORT2): Likewise.
8360 (CPOOL_FINISH): Use GC to free cpool subfields.
8361 * parse.h (struct parser_ctxt): Mark field current_jcf.
8362 * lex.c (java_init_lex): Use GC to allocate struct JCF.
8363 * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type.
8364 (main_jcf): Use gengtype to mark.
8365 (ggc_mark_jcf): Delete.
8366 (get_constant): Update for new cpool_entry type.
8367 (give_name_to_class): Likewise.
8368 (get_class_constant): Likewise.
8369 (init_outgoing_cpool): Use GGC to allocate struct CPool.
8370 (java_parse_file): Use GGC to allocate struct JCF.
8371 (init_jcf_parse): Don't call ggc_add_root.
8372 * jcf-reader.c (jcf_parse_constant_pool): Update for new
8373 cpool_entry type.
8374 * java-tree.h (current_jcf): Use gengtype to mark.
8375 (CPOOL_UTF): Update for new cpool_entry type.
8376 (outgoing_cpool): Use gengtype to mark.
8377 (struct lang_type): GC struct JCF and struct CPool.
8378 * config-lang.in (gtfiles): Add jcf.h.
8379 * constants.c (find_tree_constant): New.
8380 (set_constant_entry): Allocate cpool subfields using GGC. Update
8381 for new cpool_entry type.
8382 (find_constant1): Update for new cpool_entry type.
8383 (find_constant2): Likewise.
8384 (find_utf8_constant): Use find_tree_constant.
8385 (find_class_or_string_constant): Remove unnecessary cast to jword.
8386 Update for new cpool_entry type.
8387 (count_constant_pool_bytes): Update for new cpool_entry type.
8388 (write_constant_pool): Likewise.
8389 (alloc_name_constant): Use find_tree_constant.
8390 (build_constants_constructor): Update for new cpool_entry type.
8391
8392 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
8393
8394 * parse.y (mark_parser_ctxt): Delete.
8395 (goal): Don't use ggc_add_root.
8396 (create_new_parser_context): Use GC to allocate struct parser_ctxt.
8397 (java_pop_parser_context): Let GC free parser_ctxt.
8398 (java_parser_context_resume): Likewise.
8399 * parse.h (struct parser_ctxt): Use gengtype to mark.
8400 (ctxp): Likewise.
8401 (ctxp_for_generation): Likewise.
8402 * lex.h (struct java_lc_s): Mark for gengtype.
8403 (java_lexer): Rearrange for gengtype.
8404 * config-lang.in (gtfiles): Add lex.h, parse.h.
8405
84062003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8407
8408 * All Files: Remove PARAMS macro.
8409
8410 * expr.c, gjavah.c, javaop.h, jcf-dump.c, jcf-io.c, jcf-reader.c,
8411 jcf-write.c, jcf.h, jv-scan.c: Don't rely on the `DEFUN', `AND' or
8412 `__STDC__' macros.
8413
8414 * jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and
8415 VA_CLOSE.
8416
84172003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
8418
8419 * Make-lang.in (java.install-common, java.uninstall,
8420 java.install-info, java.install-man): Prepend $(DESTDIR)
8421 to destination paths in all (un)installation commands.
8422 (java.install-common): Rewrite $(LN) command to support
8423 DESTDIR with "ln" as well as with "ln -s".
8424
84252003-01-08 Nathanael Nerode <neroden@gcc.gnu.org>
8426
8427 * java-tree.h: Protect against multiple inclusion.
8428
84292003-01-07 Tom Tromey <tromey@redhat.com>
8430
8431 * class.c (add_assume_compiled): Don't adjust parent if we're
8432 already at the root of tree.
8433
84342003-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8435
8436 * lang.c (dump_compound_expr): Prototype.
8437
84382003-01-03 Tom Tromey <tromey@redhat.com>
8439
8440 Fix for PR java/8712:
8441 * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR,
8442 when simply checking against `null'.
8443
84442003-01-03 Tom Tromey <tromey@redhat.com>
8445
8446 * gcj.texi (Standard Properties): Document http.proxyHost and
8447 http.proxyPort.
8448
8449 * gcj.texi (GNU Classpath Properties): Document new properties.
8450
84512003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
8452
8453 * java/jcf-reader.c, java/jvgenmain.c, java/keyword.gperf,
8454 java/lang-options.h, java/mangle.c, java/mangle_name.c,
8455 java/xref.c, java/zextract.c,java/zipfile.h: Fix copyright years.
8456
84572003-01-01 Steven Bosscher <s.bosscher@student.tudelft.nl>
8458
8459 * Make-lang.in, boehm.c, buffer.c,
8460 buffer.h, builtins.c, class.c,
8461 config-lang.in, constants.c,
8462 convert.h, decl.c, except.c,
8463 expr.c, java-except.h,
8464 java-tree.h, javaop.def,
8465 jcf-parse.c, jcf-write.c,
8466 jv-scan.c, jvgenmain.c,
8467 jvspec.c, keyword.gperf,
8468 keyword.h, lang-options.h,
8469 lang-specs.h, lang.c, lex.c,
8470 lex.h, mangle.c, mangle_name.c,
8471 parse-scan.y, parse.h, parse.y,
8472 typeck.c, verify.c, xref.c,
8473 xref.h: Replace "GNU CC" with
8474 "GCC" in the copyright header.
8475
8476 * check-init.c, gjavah.c, javaop.h,
8477 jcf-depend.c, jcf-dump.c, jcf-io.c,
8478 jcf-path.c, jcf-reader.c, jcf.h,
8479 zextract.c, zipfile.h: These files are
8480 "part of GCC". Also say "GCC" not "GNU CC".
8481
84822002-12-30 DJ Delorie <dj@redhat.com>
8483
8484 * Make-lang.in: Protect against texi2pod/pod2man failing.
8485
84862002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
8487
8488 * gcj.texi: Use @copying.
8489
84902002-12-27 Mark Mitchell <mark@codesourcery.com>
8491
8492 * gjavah.c (print_name_for_stub_or_jni): Adjust call to
8493 print_cxx_classname.
8494 (print_cxx_classname): Add add_scope parameter.
8495 (print_class_decls): Do not emit a semicolon after the extern
8496 "Java" block.
8497 (process_file): Adjust calls to print_cxx_classname.
8498
84992002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
8500
8501 * gcj.texi: Include Cover Texts in man page.
8502
85032002-12-23 Jeff Sturm <jsturm@one-point.com>
8504
8505 * class.c (build_static_field_ref): Check FIELD_FINAL.
8506
8507 * constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
8508 instead of current_constant_pool_data_ref.
8509 * java-tree.h (current_constant_pool_data_ref): Undefine.
8510 (JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
8511 * jcf-parse.c (init_outgoing_cpool): Don't initialize
8512 current_constant_pool_data_ref.
8513
8514 * except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
8515 not build_internal_class_name.
8516
8517 * parse.y (patch_incomplete_class_ref): Always emit `class$' method.
8518 Use it when class ref isn't certain to be compiled.
8519
85202002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
8521
8522 * gcj.texi: Include gcc-common.texi.
8523 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
8524 $(srcdir)/doc/include/gcc-common.texi.
8525
85262002-12-22 Anthony Green <green@redhat.com>
8527
8528 * gcj.texi (Limitations): Add note about org.xml.sax and
8529 org.w3c.dom.
8530
85312002-12-20 Tom Tromey <tromey@redhat.com>
8532
8533 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
8534 where minimum case value is Integer.MIN_VALUE.
8535 Fixes PR java/8955.
8536
85372002-12-18 Andrew Haley <aph@redhat.com>
8538
8539 * parse.y (patch_invoke): Force evaluation order when `check' is
8540 set. For PR libgcj/8945.
8541
85422002-12-16 Mark Mitchell <mark@codesourcery.com>
8543
8544 * gcj.texi: Change version number to 3.4.
8545
85462002-12-05 Ranjit Mathew <rmathew@hotmail.com>
8547 Andrew Haley <aph@redhat.com>
8548
8549 * parse.y (source_end_java_method): Remove custom encoding of line
8550 numbers for a function decl before passing it to the back end.
8551
85522002-12-03 Andrew Haley <aph@redhat.com>
8553
8554 * class.c (make_class_data): New field, "chain".
8555 * decl.c (java_init_decl_processing): Likewise.
8556
85572002-12-02 Tom Tromey <tromey@redhat.com>
8558
8559 For PR java/8740:
8560 * parse.y (do_resolve_class): Handle qualified name via
8561 recursion.
8562
85632002-11-30 Zack Weinberg <zack@codesourcery.com>
8564
8565 * boehm.c, buffer.c, builtins.c, check-init.c, class.c,
8566 constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c,
8567 jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c,
8568 jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c,
8569 parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c:
8570 Include coretypes.h and tm.h.
8571 * Make-lang.in: Update dependencies.
8572
85732002-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8574
8575 * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant.
8576
85772002-11-25 Diego Novillo <dnovillo@redhat.com>
8578
8579 * jcf-reader.c: Don't expand JCF_readu4 inside the
8580 expansion of JCF_SKIP.
8581
85822002-11-25 Diego Novillo <dnovillo@redhat.com>
8583
8584 * jcf-reader.c: Don't expand JCF_readu4 inside the
8585 expansion of JCF_SKIP.
8586
85872002-11-22 Tom Tromey <tromey@redhat.com>
8588
8589 * parse.y (patch_binop): Cast right hand side of shift expression
8590 to `int'. Fixes PR java/8676.
8591
85922002-11-22 Ranjit Mathew <rmathew@hotmail.com>
8593 Andrew Haley <aph@redhat.com>
8594
8595 * gcc/java/jcf-write.c (write_classfile): Remove target
8596 class file, if it exists, before renaming the temporary
8597 class file to it.
8598
85992002-11-19 Jason Thorpe <thorpej@wasabisystems.com>
8600
8601 * jvspec.c (lang_specific_spec_functions): New.
8602
86032002-11-18 Tom Tromey <tromey@redhat.com>
8604
8605 Fix for PR java/7912:
8606 * expr.c (can_widen_reference_to): Allow cast of array to
8607 Cloneable or Serializable.
8608 * java-tree.h (java_lang_cloneable_identifier_node): Declare.
8609 (java_io_serializable_identifier_node): Likewise.
8610 * parse.y (java_lang_cloneable, java_io_serializable): Removed.
8611 (valid_ref_assignconv_cast_p): Use new identifier nodes.
8612 * lex.c (java_init_lex): Don't initialize java_lang_cloneable and
8613 java_io_serializable.
8614 * decl.c (java_init_decl_processing): Initialize
8615 java_lang_cloneable_identifier_node and
8616 java_io_serializable_identifier_node.
8617 (java_lang_cloneable_identifier_node): New global.
8618 (java_io_serializable_identifier_node): Likewise.
8619
86202002-11-14 Jens-Michael Hoffmann <jensmh@gmx.de>
8621
8622 * buffer.c: Remove unnecessary casts.
8623 * check-init.c: Likewise.
8624 * class.c: Likewise.
8625 * constants.c: Likewise.
8626 * decl.c: Likewise.
8627 * except.c: Likewise.
8628 * gjavah.c: Likewise.
8629 * jcf-io.c: Likewise.
8630 * jcf-parse.c: Likewise.
8631 * jcf-path.c: Likewise.
8632 * jvspec.c: Likewise.
8633 * lang.c: Likewise.
8634 * lex.c: Likewise.
8635 * verify.c: Likewise.
8636
86372002-11-06 Tom Tromey <tromey@redhat.com>
8638
8639 * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in
8640 a JNI header.
8641
86422002-11-05 Tom Tromey <tromey@redhat.com>
8643
8644 Fix for PR java/6388.
8645 * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while.
8646 * java-tree.h (enum java_tree_index): New values
8647 JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE.
8648 (decimal_int_max, decimal_long_max): New defines.
8649 * lex.c (yylex): Rewrote range checking. Sign extend literals.
8650 (error_if_numeric_overflow): Rewrote range checking.
8651 * decl.c (java_init_decl_processing): Initialize decimal_int_max,
8652 decimal_long_max.
8653
86542002-11-02 Tom Tromey <tromey@redhat.com>
8655
8656 * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE.
8657
8658 * class.c (make_method_value): Put class name, not signature, into
8659 `throws' field. For PR java/8415.
8660
86612002-10-24 Tom Tromey <tromey@redhat.com>
8662
8663 * gcj.texi (Invoking gij): Document --showversion.
8664 (Standard Properties): java.library.path now set.
8665
86662002-10-23 Tom Tromey <tromey@redhat.com>
8667
8668 * gjavah.c (decode_signature_piece): In JNI mode, print
8669 `jobjectArray' when array depth is nonzero.
8670 Fixes PR java/8296.
8671
86722002-10-15 Andrew Haley <aph@redhat.com>
8673
8674 * parse.y (patch_invoke): Call force_evaluation_order on a static
8675 arg list.
8676 (resolve_qualified_expression_name): Call force_evaluation_order
8677 on a arg list that is part of a Qualified Expression Name.
8678
8679 * lang.c (dump_compound_expr): New.
8680 (java_dump_tree): New.
8681
86822002-10-20 Ranjit Mathew <rmathew@hotmail.com>
8683
8684 * gcj.texi: Added item describing the GCJ runtime property
8685 "gnu.gcj.progname".
8686
86872002-10-15 Richard Henderson <rth@redhat.com>
8688
8689 * jcf-parse.c (get_constant): Fix type warning.
8690
86912002-10-15 Andrew Haley <aph@redhat.com>
8692
8693 * java-tree.h (java_inlining_merge_static_initializers): Declare.
8694 (java_inlining_map_static_initializers): Declare.
8695
86962002-10-14 Andrew Haley <aph@redhat.com>
8697
8698 * tree-inline.c (remap_block): All local class initialization
8699 flags go in the outermost scope.
8700 (expand_call_inline): Call java_inlining_map_static_initializers.
8701 (expand_call_inline): Call java_inlining_merge_static_initializers.
8702 * java/lang.c (merge_init_test_initialization): New.
8703 (java_inlining_merge_static_initializers): New.
8704 (inline_init_test_initialization): New.
8705 (java_inlining_map_static_initializers): New.
8706
87072002-10-11 Mark Wielaard <mark@klomp.org>
8708
8709 * gcj.texi (Compatibility): Add Limitations and Extensions section.
8710
87112002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8712
8713 * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer.
8714
87152002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8716
8717 * parse.y (merge_string_cste): Add parentheses around & within |.
8718
87192002-10-08 Tom Tromey <tromey@redhat.com>
8720
8721 * parse.y (variable_declarator_id): Simplify error path for
8722 array declarator error. For PR java/8003.
8723
87242002-10-08 Zack Weinberg <zack@codesourcery.com>
8725
8726 * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with
8727 bug_report_url.
8728
87292002-10-08 Andrew Haley <aph@redhat.com>
8730
8731 * parse.y (attach_init_test_initialization_flags): Check for
8732 error_mark_node.
8733
87342002-10-07 Anthony Green <green@redhat.com>
8735
8736 * parse.y (merge_string_cste): Fix bug in string concatenation.
8737
87382002-10-03 Michael Koch <konqueror@gmx.de>
8739
8740 * gcj.texi (Standard properties):
8741 Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit.
8742
87432002-10-02 Roger Sayle <roger@eyesopen.com>
8744
8745 PR optimization/6627
8746 * lang.c (java_init): If storing the vbit in function
8747 pointers, ensure that force_align_functions_log is atleast
8748 one to aid compatability with g++ vtables.
8749
87502002-10-01 Nathan Sidwell <nathan@codesourcery.com>
8751
8752 * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
8753 foul of type-based aliasing.
8754
87552002-09-30 Anthony Green <green@redhat.com>
8756
8757 * gcj.texi (Invoking jv-scan): Fix texinfo.
8758
87592002-09-28 Anthony Green <green@redhat.com>
8760
8761 * gcj.texi (Invoking jv-scan): Add --no-assert documentation.
8762 (Code Generation): Add -fno-assert documentation.
8763 * jv-scan.c (flag_assert): New global.
8764 (options): Add assert option.
8765 (help): Add --no-assert documentation.
8766 * parse-scan.y (flag_assert): New global.
8767 * lang.c (lang_f_options): Add -fassert/-fno-assert support.
8768 (flag_assert): New global.
8769 * java-tree.h (flag_assert): New global.
8770 * lex.c (java_lex): Obey flag_assert.
8771 * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when
8772 calling cc1.
8773
87742002-09-26 Andrew Haley <aph@redhat.com>
8775
8776 * expr.c (build_java_array_length_access): Check for null pointer.
8777 * expr.c (expand_java_arrayload): Likewise.
8778
87792002-09-21 Richard Henderson <rth@redhat.com>
8780
8781 * jcf-parse.c (get_constant): Decode from IEEE no matter
8782 what the target format.
8783
87842002-09-20 Kazu Hirata <kazu@cs.umass.edu>
8785
8786 * ChangeLog: Follow spelling conventions.
8787 * class.c: Likewise.
8788 * decl.c: Likewise.
8789 * expr.c: Likewise.
8790 * gjavah.c: Likewise.
8791 * java-tree.h: Likewise.
8792 * jcf-dump.c: Likewise.
8793 * jcf-parse.c: Likewise.
8794 * jvspec.c: Likewise.
8795 * lang.c: Likewise.
8796 * mangle.c: Likewise.
8797 * parse.y: Likewise.
8798
87992002-09-17 Tom Tromey <tromey@redhat.com>
8800
8801 * lex.c (java_read_unicode_collapsing_terminators): Handle case
8802 where \r appears at EOF. Fixes PR java/7950.
8803
88042002-09-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
8805
8806 * jvspec.c (lang_specific_driver): Remove unused variable.
8807
88082002-09-16 Geoffrey Keating <geoffk@apple.com>
8809
8810 * java-tree.h (union lang_tree_node): Add chain_next option.
8811
88122002-09-16 Richard Henderson <rth@redhat.com>
8813
8814 * jcf-parse.c (get_constant): Runtime check for IEEE format;
8815 use new real.h interface.
8816 * jcf-write.c (find_constant_index): Use new real.h interface.
8817 * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
8818
88192002-09-15 Kazu Hirata <kazu@cs.umass.edu>
8820
8821 * lang.c: Follow spelling conventions.
8822
88232002-09-11 Per Bothner <per@bothner.com>
8824
8825 * parse.y (fold_constant_for_init): If a VAR_DECL, convert numerical
8826 constant to the type of the field.
8827 (java_complete_tree): Remove now-redundant code.
8828
8829 * parse.y (fold_constant_for_init): 'null' is not a constant expr.
8830
88312002-09-03 Jesse Rosenstock <jmr@ugcs.caltech.edu>
8832
8833 For PR java/5794:
8834 * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
8835 return label if a ret instruction for the jsr has been reached.
8836
88372002-09-09 Ranjit Mathew <rmathew@hotmail.com>
8838
8839 * parse.y (DIR_SEPARATOR): Don't define.
8840 (check_class_interface_creation): Use IS_DIR_SEPARATOR.
8841
88422002-08-28 Andrew Haley <aph@redhat.com>
8843
8844 * verify.c (verify_jvm_instructions): Allow exception handler
8845 inside code that is being protected, but generate a warning.
8846 * except.c (link_handler): Initialize `expanded' in new eh_range.
8847 (binding_depth, is_class_level, current_pc): Declare extern.
8848
88492002-09-01 Mark Wielaard <mark@klomp.org>
8850
8851 * gcj.texi: Add chapter about system properties.
8852 Fixed some typos.
8853
88542002-08-26 Tom Tromey <tromey@redhat.com>
8855
8856 * parse.y (try_builtin_assignconv): Allow narrowing primitive
8857 conversion if RHS_TYPE is byte, short, or char.
8858
88592002-08-22 Tom Tromey <tromey@redhat.com>
8860
8861 * gcj.texi (Invoking gij): Document -cp and -classpath.
8862
88632002-08-21 Tom Tromey <tromey@redhat.com>
8864
8865 * Make-lang.in (java/jcf-path.o): Use $(datadir), not
8866 $(prefix)/share. For PR libgcj/7633.
8867
8868 For PR java/6005 and PR java/7611:
8869 * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
8870 (java_can_use_bit_fields_p): New function.
8871
88722002-08-16 Tom Tromey <tromey@redhat.com>
8873
8874 * gcj.texi (Class Initialization): Mention class initialization of
8875 arrays.
8876
88772002-07-30 Andrew Haley <aph@cambridge.redhat.com>
8878
8879 * Make-lang.in (java-tree-inline.o): New.
8880 (JAVA_OBJS): Add java-tree-inline.o.
8881 * parse.y (source_end_java_method): Call java_optimize_inline.
8882 (java_expand_method_bodies): Save method's tree in
8883 DECL_SAVED_TREE.
8884 (add_stmt_to_compound): Keep track of the number of statments.
8885 * lang.c (java_init): Enable flag_inline_trees.
8886 (java_post_options): If flag_inline_functions is on, enable
8887 flag_inline_trees instread.
8888 (decl_constant_value): New.
8889 (java_tree_inlining_walk_subtrees): New.
8890 * java-tree.h (DECL_NUM_STMTS): New macro.
8891 (java_optimize_inline): Declare.
8892 * expr.c (java_expand_expr): Allow a BLOCK to return a value.
8893 Handle a LABEL_EXPR.
8894 * decl.c (build_result_decl): If we already have a DECL_RESULT
8895 don't make another.
8896 (dump_function): New.
8897 (java_optimize_inline): New.
8898 (dump_function): New.
8899
89002002-08-13 Jesse Rosenstock <jmr@fulcrummicro.com>
8901
8902 For PR java/7483:
8903 * parse.y (build_assertion): Invert return from
8904 desiredAssertionStatus.
8905
89062002-08-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8907
8908 * jcf-write.c (get_access_flags): Return correct access flags for
8909 private and protected inner classes.
8910
89112002-08-08 Nathan Sidwell <nathan@codesourcery.com>
8912
8913 * java/Make-lang.in (java.mostlyclean): Remove coverage files.
8914
89152002-08-05 Geoffrey Keating <geoffk@redhat.com>
8916
8917 * mangle_name.c: Don't include obstack.h twice.
8918 * xref.c: Don't include obstack.h.
8919
89202002-08-04 Geoffrey Keating <geoffk@redhat.com>
8921
8922 * class.c: (permanent_obstack): Delete declaration.
8923 * constants.c: (permanent_obstack): Delete declaration.
8924 * except.c: (permanent_obstack): Delete declaration.
8925 * expr.c: (permanent_obstack): Delete declaration.
8926 * jcf-parse.c: (permanent_obstack): Delete declaration.
8927 (saveable_obstack): Delete declaration.
8928 * parse.h: (permanent_obstack): Delete declaration.
8929 * typeck.c: (permanent_obstack): Delete declaration.
8930
89312002-08-04 Joseph S. Myers <jsm@polyomino.org.uk>
8932
8933 * gcj.texi (version-gcc): Increase to 3.3.
8934
89352002-07-22 Tom Tromey <tromey@redhat.com>
8936
8937 * lex.c (java_lex): Check for `e' or `E' after 0.
8938
89392002-07-21 Richard Henderson <rth@redhat.com>
8940
8941 * lang.c (java_unsafe_for_reeval): New.
8942 (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
8943
89442002-07-21 Neil Booth <neil@daikokuya.co.uk>
8945
8946 * jcf-path.c (GET_ENV_PATH_LIST): Remove.
8947 (jcf_path_init): Use GET_ENVIRONMENT.
8948
89492002-07-10 Roger Sayle <roger@eyesopen.com>
8950 Zack Weinberg <zack@codesourcery.com>
8951
8952 * builtins.c (initialize_builtins): Remove defines that
8953 handled C/C++ specific junk hereby removed from builtins.def.
8954
89552002-07-07 Neil Booth <neil@daikokuya.co.uk>
8956
8957 * lang.c (java_post_options): Update prototype.
8958
89592002-07-05 Roger Sayle <roger@eyesopen.com>
8960
8961 * builtins.c (initialize_builtins): Ignore the additional
8962 parameter to DEF_BUILTIN. Handle more C/C++ specific junk in
8963 the builtins.def file.
8964
89652002-07-01 Tom Tromey <tromey@redhat.com>
8966
8967 For PR libgcj/7073:
8968 * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
8969 specially.
8970
89712002-07-01 Roger Sayle <roger@eyesopen.com>
8972
8973 * java/decl.c (builtin_function): Accept additional parameter.
8974 (java_init_decl_processing): Pass an additional NULL_TREE
8975 argument to builtin_function.
8976
89772002-06-29 T.J. Mather <tjmather@maxmind.com>
8978
8979 * gcj.texi: Fixed gcj invocation example so that it compiles.
8980
89812002-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8982
8983 * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
8984 * parse.y (mark_parser_ctxt): Likewise.
8985 (check_modifiers, declare_local_variables): Avoid incorrect
8986 hardcoded constant 10.
8987
8988 * lex.c (java_read_char): Avoid "comparison is always true"
8989 warning.
8990
89912002-06-25 Andreas Schwab <schwab@suse.de>
8992
8993 * expr.c (JSR): Avoid undefined operation on PC.
8994
89952002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8996
8997 * decl.c (clear_binding_level): Const-ify.
8998
89992002-06-13 Akim Demaille <akim@epita.fr>
9000
9001 * parse.y (class_declaration, interface_declaration): Make sure
9002 all their rules have an action, in order to avoid meaningless `$$
9003 = $1' and their type clashes.
9004
90052002-06-11 Tom Tromey <tromey@redhat.com>
9006
9007 * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
9008 * parse-scan.y (statement_without_trailing_substatement): Added
9009 assert_statement.
9010 (assert_statement): New rule.
9011 * java-tree.h (struct lang_type) [assertions]: New field.
9012 (TYPE_USES_ASSERTIONS): New macro.
9013 (CLASS_USES_ASSERTIONS): Likewise.
9014 (FIELD_SYNTHETIC): New define.
9015 * lex.c (java_lval;): Added ASSERT_TK.
9016 * parse.y (ASSERT_TK): Added.
9017 (statement_without_trailing_substatement): Added assert_statement.
9018 (assert_statement): New rule.
9019 (build_assertion): New function.
9020 (maybe_generate_pre_expand_clinit): Create and initialize
9021 $assertionsDisabled.
9022 (lookup_package_type): Removed decl.
9023 * keyword.h: Rebuilt.
9024 * keyword.gperf (assert): New token.
9025
90262002-06-10 Akim Demaille <akim@epita.fr>
9027
9028 * parse.y (interface_type_list, class_member_declaration)
9029 (unary_expression_not_plus_minus): Remove duplicate %type.
9030 Whitespace changes.
9031
90322002-06-09 Tom Tromey <tromey@redhat.com>
9033
9034 * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
9035
9036 * parse.y (method_header): Give error message in all cases.
9037 Fixes PR java/6865.
9038
90392002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9040
9041 Don't use RTL inlining. Fix for PR java/6820.
9042 * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
9043 (flag_really_inline): New.
9044 (java_decode_option): Set flag_really_inline if -finline-functions
9045 is seen.
9046 (java_post_options): New function. Turn off inlining unless
9047 flag_really_inline is set.
9048
90492002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9050
9051 * gjavah.c (throwable_p): Accept argument as either a classname or
9052 signature fragment. Create null-terminated classname string for super
9053 when calling itself recursively.
9054 (decode_signature_piece): Skip first character from class name
9055 signature when calling throwable_p.
9056
90572002-06-08 H.J. Lu (hjl@gnu.org)
9058
9059 * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
9060
90612002-06-04 Tom Tromey <tromey@redhat.com>
9062
9063 * jcf-write.c (perform_relocations): Optmize a goto to a goto.
9064
90652002-06-04 Michael Koch <konqueror@gmx.de>
9066
9067 * gcj.texi (Input Options): Fixed typo.
9068
90692002-06-04 Zack Weinberg <zack@codesourcery.com>
9070
9071 * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
9072 typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
9073 all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
9074 and all now-pointless local variables. Rename other local
9075 variables to reflect their not being handles.
9076
9077 * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
9078 #if JCF_USE_STDIO blocks.
9079
9080 * parse.y: Add missing semicolon at end of rule.
9081
90822002-06-03 Geoffrey Keating <geoffk@redhat.com>
9083
9084 * check-init.c (attach_initialized_static_class): Delete, unused.
9085 * parse.y: Use htab_t instead of struct hashtable, update
9086 all uses.
9087 * java-tree.h: Include hashtab.h instead of hash.h.
9088 (struct lang_decl_func): Use htab_t, set up for gengtype.
9089 (struct init_test_hash_entry): Delete.
9090 (struct treetreehash_entry): New.
9091 (java_treetreehash_find): New
9092 (java_treetreehash_new): New prototype.
9093 (java_treetreehash_create): New prototype.
9094 (java_mark_tree): Delete prototype.
9095 (java_hash_hash_tree_node): Delete prototype.
9096 (java_hash_compare_tree_node): Delete prototype.
9097 (attach_initialized_static_class): Delete prototype.
9098 * expr.c (build_class_init): Update to use java_treetreehash
9099 functions.
9100 (java_expand_expr): Update to use htab_t.
9101 (emit_init_test_initialization): Likewise.
9102 * decl.c (java_mark_tree): Delete.
9103 * class.c (init_test_hash_newfunc): Delete.
9104 (java_hash_hash_tree_node): Delete.
9105 (java_hash_compare_tree_node): Delete.
9106 (add_method_1): Update to use java_treetreehash functions.
9107 (JAVA_TREEHASHHASH_H): New macro.
9108 (java_treetreehash_hash): New function.
9109 (java_treetreehash_compare): New function.
9110 (java_treetreehash_find): New function.
9111 (java_treetreehash_new): New function.
9112 (java_treetreehash_create): New function.
9113 * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
9114
9115 * Make-lang.in (java/parse.o): Depend on debug.h.
9116 * java-tree.h (struct lang_identifier): Use gengtype.
9117 (union lang_tree_node): New.
9118 (struct lang_decl_func): Use gengtype.
9119 (struct lang_decl_var): Likewise.
9120 (struct lang_decl): Likewise.
9121 * parse.y: Include debug.h.
9122 * lang.c (LANG_HOOKS_MARK_TREE): Delete.
9123
9124 * lang.c (struct language_function): New dummy structure.
9125
9126 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
9127 descriminator for DECL_LANG_SPECIFIC.
9128 (struct lang_decl_func): Rename from struct lang_decl.
9129 (enum lang_decl_desc): New.
9130 (struct lang_decl): Make it a union. Update all the accessor macros.
9131 (struct lang_type): Use gengtype.
9132 * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
9133 * decl.c (java_dup_lang_specific_decl): All lang_decl structures
9134 are now the same size.
9135 (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
9136 use discriminator to mark DECL_LANG_SPECIFIC.
9137
9138 * Make-lang.in (gt-java-builtins.h): New rule.
9139 (java/builtins.o): Add dependency on gt-<filename>.h.
9140 * builtins.c: Use gengtype for roots.
9141 (union string_or_tree): Use gengtype.
9142 (struct builtin_record): Use gengtype.
9143 * config-lang.in (gtfiles): Add builtins.c.
9144
9145 * Make-lang.in (gt-java-class.h, gt-java-constants.h,
9146 gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
9147 gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
9148 gt-java-parse.h, gtype-java.h): Add rules to generate.
9149 (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
9150 (class.o): Add dependency on gt-*.h.
9151 (constants.o): Likewise.
9152 (decl.o): Likewise.
9153 (expr.o): Likewise.
9154 (jcf-parse.o): Likewise.
9155 (jcf-write.o): Likewise.
9156 (lang.o): Likewise.
9157 * config-lang.in (gtfiles): New.
9158 * class.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
9159 * constants.c: Replace uses of ggc_add_* with GTY markers.
9160 Include gt-*.h.
9161 * decl.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
9162 * expr.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
9163 * java-tree.h: Replace uses of ggc_add_* with GTY markers.
9164 * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
9165 Include gt-*.h.
9166 * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
9167 Include gt-*.h.
9168 * lang.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
9169 * mangle.c: Replace uses of ggc_add_* with GTY markers. Include
9170 gt-*.h.
9171 * parse.y: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
9172 Include gtype-java.h.
9173
91742002-06-02 Tom Tromey <tromey@redhat.com>
9175
9176 Fix for PR java/5913:
9177 * parse.y (patch_binop): Call patch_string on op1.
9178
91792002-06-02 Tom Tromey <tromey@redhat.com>
9180
9181 Fix for PR java/1343, PR java/6336:
9182 * parse.y (make_nested_class_name): Remove extraneous `else'; fix
9183 formatting. Changed return type.
9184 (anonymous_class_counter): Moved to top of file.
9185 (maybe_make_nested_class_name): Append number to class name for
9186 function-local classes.
9187
91882002-05-28 Zack Weinberg <zack@codesourcery.com>
9189
9190 * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
9191 * Make-lang.in: Update dependency lists.
9192
91932002-05-18 Mark Mitchell <mark@codesourcery.com>
9194
9195 * gjavah.c (throwable_p): Do not free the name of the class after
9196 passing it to find_class.
9197 * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
9198 * jcf-io.c (dirent.h): Include it.
9199 (fnmatch.h): Likewise.
9200 (compare_path): New function.
9201 (java_or_class_file): Likewise.
9202 (memoized_dirlist_entry): New type.
9203 (memoized_dirlist_lookup_eq): New function.
9204 (memoized_dirlists): New variable.
9205 (caching_stat): New function.
9206 (memoized_class_lookup_eq): New function.
9207 (memoized_class_lookups): Likewise.
9208 (find_class): Use memoized_class_lookups and caching_stat.
9209 * jcf.h (JCF_USE_SCANDIR): Define.
9210 * parse.y (java_expand_classes): Write the class files in reverse
9211 order.
9212
92132002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9214
9215 * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
9216
92172002-05-13 Mark Mitchell <mark@codesourcery.com>
9218
9219 * jcf-write.c (write_classfile): Unlink the temporary file if it
9220 cannot be renamed. Use concat to build up the name of the
9221 temporary file.
9222
92232002-05-08 Mark Mitchell <mark@codesourcery.com>
9224
9225 * jcf-write.c (write_classfile): Write the file to a
9226 temporary file and then rename it.
9227
92282002-05-07 Tom Tromey <tromey@redhat.com>
9229
9230 * gjavah.c (throwable_p): Use xstrdup, not strdup.
9231
9232 Fix for PR java/1200:
9233 * gjavah.c (throwable_p): New function.
9234 (decode_signature_piece): Use it. A `WeakReference' isn't the
9235 same as a `jweak'.
9236 Include hashtab.h.
9237 (gcjh_streq): New function.
9238
92392002-05-07 Andreas Jaeger <aj@suse.de>
9240
9241 * parse.y (finish_for_loop): Fix if statement.
9242
92432002-05-06 Tom Tromey <tromey@redhat.com>
9244
9245 Fix for PR java/5941:
9246 * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
9247 loop update expression.
9248 (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
9249 * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
9250
92512002-05-04 Mark Wielaard <mark@klomp.org>
9252
9253 For PR java/6519:
9254 * parse.y (build_string_concatenation): Return just op1 only when op2
9255 is null and op1 is a STRING_CST, otherwise always construct a
9256 StringBuffer.
9257
92582002-04-27 Tom Tromey <tromey@redhat.com>
9259
9260 For PR java/6382:
9261 * parse.y (string_convert_int_cst): New function.
9262 (merge_string_cste): Use it.
9263
92642002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
9265
9266 * java-tree.h (java_parse_file): Update.
9267 (java_set_yydebug): Remove.
9268 * jcf-parse.c (yydebug): Remove.
9269 (java_set_yydebug): Die.
9270 (java_parse_file): Update.
9271 * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
9272
92732002-04-24 Tom Tromey <tromey@redhat.com>
9274
9275 For PR java/6425:
9276 * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
9277 EXPR_WFL_QUALIFICATION of qual_wfl.
9278
92792002-04-23 Per Bothner <per@bothner.com>
9280
9281 * expr.c (PRE_JSR): Call NOTE_LABEL for return address.
9282 * java-tree.h (BCODE_RETURN_TARGET): Removed - never set.
9283 (BCODE_TARGET): Remove BCODE_RETURN_TARGET.
9284
92852002-04-23 Tom Tromey <tromey@redhat.com>
9286
9287 For PR java/6314:
9288 * jvspec.c (lang_specific_driver): Use --resource, not -R. Also
9289 recognize `-fcompile-resource='.
9290 * gcj.texi (Invoking gcj): Use --resource, not -R. Expanded text
9291 a bit.
9292
92932002-04-22 Alexandre Petit-Bianco <apbianco@redhat.com>
9294
9295 * jcf-parse.c: (yyparse): Don't prepend "./" to relative
9296 paths. Fixes PR java/2791.
9297
92982002-04-19 Andrew Haley <aph@redhat.com>
9299
9300 * jcf-write.c (push_long_const): lo, hi: New variables.
9301 Use rshift_double to extract the high part of a 64-bit long.
9302 Use WORD_TO_INT to extract the low part.
9303
9304 * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
9305 HOST_WIDE_INT for num. Use JPOOL_UINT to get it.
9306 CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
9307
93082002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
9309
9310 * typeck.c (incomplete_type_error): Remove.
9311
93122002-04-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9313
9314 * class.c (make_class_data): Set DECL_ALIGN on static class data,
9315 for hash synchronization.
9316 * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
9317 * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
9318 class_type_node.
9319
93202002-04-16 Mark Wielaard <mark@klomp.org>
9321
9322 * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
9323 negative zero.
9324
93252002-04-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9326
9327 Fix for PR java/6294:
9328 * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
9329 interfaces.
9330
93312002-04-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9332
9333 Fix for PR java/6085:
9334 * parse.y (patch_method_invocation): Always use build_access_to_thisn
9335 to get enclosing "this" argument for inner-class constructor
9336 invocation. Pass correct arguments to build_access_to_thisn.
9337
93382002-04-10 Andreas Jaeger <aj@suse.de>
9339
9340 * gcj.texi (Input Options): Fix extdirs patch.
9341
93422002-04-10 Anthony Green <green@redhat.com>
9343
9344 * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
9345
93462002-04-09 Anthony Green <green@redhat.com>
9347
9348 * gcj.texi (Input Options): Add --extdirs documentation.
9349 * jcf-dump.c (OPT_extdirs): New macro.
9350 (options): Add extdirs option.
9351 (help): Describe --extdirs.
9352 (main): Handle OPT_extdirs.
9353 * gjavah.c (OPT_extdirs): New macro.
9354 (options): Add extdirs option.
9355 (help): Describe --extdirs.
9356 (main): Handle OPT_extdirs.
9357 * jcf-path.c (jcf_path_init): Add extdirs support.
9358 (jcf_path_extdirs_arg): New function.
9359 (extensions): New variable to hold extensions path entries.
9360 * jvspec.c: Remove -fextdirs= when compiling main().
9361 * lang.c (java_decode_option): Handle -fextdirs=.
9362 * jcf.h (jcf_path_extdirs_arg): Declare new function.
9363 * Make-lang.in: Compile jcf-path with version info for use in
9364 identifying the appropriate libgcj.jar.
9365
93662002-04-08 Tom Tromey <tromey@redhat.com>
9367
9368 For PR libgcj/5303:
9369 * .cvsignore: Added rmic.1 and rmiregistry.1.
9370 * gcj.texi (Top): Link to new nodes.
9371 (Invoking rmic): New node.
9372 (Invoking rmiregistry): Likewise.
9373 * Make-lang.in (java.generated-manpages): Added rmic.1 and
9374 rmiregistry.1.
9375 (java.maintainer-clean): Likewise.
9376 ($(srcdir)/java/rmic.1): New target.
9377 ($(srcdir)/java/rmiregistry.1): Likewise.
9378 (java.install-man): Handle rmic.1 and rmiregistry.1.
9379
93802002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9381
9382 * gcj.texi (Invocation): Update JvAttachCurrentThread documentation.
9383 Add note about handling uncaught exceptions. Add an exception handler
9384 to example.
9385
93862002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9387
9388 * parse.y (resolve_qualified_expression_name): Clear "from_super" flag
9389 after using it to patch CALL_EXPR.
9390
93912002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9392
9393 * gcj.texi (Invocation): Document CNI invocation API.
9394
93952002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
9396
9397 * expr.c (truthvalue_conversion): Rename. Update.
9398 (expand_compare): Update.
9399 * java-tree.h (java_truthvalue_conversion): New.
9400 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
9401
94022002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
9403
9404 * java-tree.h (java_mark_addressable): New.
9405 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
9406 * typeck.c (mark_addressable): Rename, update.
9407
94082002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
9409
9410 * expr.c (build_java_binop): Update.
9411 * java-tree.h (java_signed_type, java_unsigned_type,
9412 java_signed_or_unsigned_type): Update.
9413 * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
9414 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
9415 * parse.y (patch_binop): Update.
9416 * typeck.c (signed_or_unsigned_type, unsigned_type,
9417 signed_type): Update.
9418
94192002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
9420
9421 * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
9422 (java_dummy_print): Remove.
9423 (lang_print_error): Rename. Exit early if inhibiting output.
9424 (inhibit_error_printing_function): New.
9425 (java_init): Don't set hook.
9426 (lang_init_source): Use new boolean.
9427
94282002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
9429
9430 * parse.y (do_resolve_class): Fix infinite recursion.
9431
94322002-03-29 Tom Tromey <tromey@redhat.com>
9433
9434 * parse.y (check_inner_circular_reference): Ignore incomplete
9435 types.
9436
94372002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
9438
9439 * Make-lang.in (builtins.o): Update.
9440 * boehm.c (get_boehm_type_descriptor): Update.
9441 * builtins.c: Include langhooks.h.
9442 * decl.c (java_init_decl_processing): Update.
9443 * java-tree.h (java_type_for_mode, java_type_for_size): New.
9444 * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
9445 Redefine.
9446 * typeck.c (type_for_mode, type_for_size): Update.
9447
94482002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
9449
9450 * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING.
9451
94522002-03-28 Tom Tromey <tromey@redhat.com>
9453
9454 * except.c (expand_end_java_handler): If the handler type is NULL,
9455 use java.lang.Throwable. Fixes PR java/5986.
9456
94572002-03-28 Alexandre Petit-Bianco <apbianco@redhat.com>
9458
9459 Fix for PR java/4715:
9460 * jcf-parse.c (parse_source_file_3): New function.
9461 (read_class): Call it.
9462 (java_parse_file): Likewise.
9463
94642002-03-28 Jan Hubicka <jh@suse.cz>
9465
9466 * java/lang.c (java_init_options): Set flag_trapping_math to 0.
9467
94682002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9469
9470 * parse.y (resolve_package): Initialize "decl".
9471 (lookup_package_type): Remove unused function.
9472
94732002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9474
9475 Fix for PR java/5993:
9476 * parse.y (resolve_package): Return the decl if resolution was
9477 successful. Don't special case "java.lang" and "java.lang.reflect"
9478 packages. Set type_name to the merged identifier.
9479 (resolved_qualified_expression_name): Print error using "name" if
9480 resolve_package returns NULL_TREE.
9481
94822002-03-27 Tom Tromey <tromey@redhat.com>
9483
9484 * expr.c (expand_invoke): Don't generate null pointer check if
9485 we're calling <init>.
9486
94872002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
9488
9489 * expr.c (java_lang_expand_expr): Rename java_expand_expr,
9490 fix prototype.
9491 * java-tree.h (java_lang_expand_expr): Similarly.
9492 * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
9493 (java_init): Don't set hook.
9494
94952002-03-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9496
9497 Fix for PR java/5850:
9498 * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
9499 context if field was not found in the current scope.
9500 * expr.c (lookup_field): Don't look in enclosing contexts.
9501
95022002-03-26 Tom Tromey <tromey@redhat.com>
9503
9504 Fix for PR java/5942:
9505 * parse.y (init_src_parse): Added sanity check.
9506 * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
9507 elements, not 11.
9508
95092002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
9510
9511 * decl.c (lang_mark_tree): Rename java_mark_tree.
9512 * java-tree.h (java_mark_tree): New.
9513 * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
9514
95152002-03-25 Zack Weinberg <zack@codesourcery.com>
9516
9517 * lex.c: Change java_perform_atof to take normal parameters
9518 instead of a pointer to a parameter block. Call it directly
9519 from java_lex.
9520
95212002-03-22 Mark Wielaard <mark@klomp.org>
9522
9523 Fix for PR java/5368:
9524 * parse.y (resolve_qualified_expression_name): Use decl not field_decl
9525 when printing error message.
9526
95272002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
9528
9529 * decl.c (maybe_build_cleanup): Remove.
9530
95312002-03-22 Tom Tromey <tromey@redhat.com>
9532
9533 Andrew Haley <aph@cambridge.redhat.com>
9534
9535 * expr.c (build_field_ref): Don't build a check if the field is a
9536 member of `this'.
9537
95382002-03-21 Eric Blake <ebb9@email.byu.edu>
9539
9540 Fix for PR java/6026:
9541 * lex.c (java_lex): Fix parsing of consecutive floats.
9542
95432002-03-21 Tom Tromey <tromey@redhat.com>
9544
9545 * parse.y (build_access_to_thisn): Stop when FROM is not an inner
9546 class.
9547
95482002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
9549
9550 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
9551 insert_block, getdecls, kept_level_p, global_bindings_p): New.
9552
95532002-03-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
9554
9555 * gcj.texi: @code{gcj} becomes @command{gcj}.
9556 @code{gcc} becomes @command{gcc}.
9557 GcjRaw changed to gnu.gcc.RawData.
9558
95592002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
9560
9561 * decl.c (start_java_method): Use new hook.
9562 * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
9563 (java_init): Remove old hook.
9564
95652002-03-18 Alexandre Petit-Bianco <apbianco@redhat.com>
9566
9567 * builtins.c (define_builtin): Do nothing if `type' is null.
9568 Fixes PR java/5876.
9569
95702002-03-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9571
9572 * parse.y (parser_check_super_interface): Fix error message
9573 grammar/order.
9574
95752002-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9576
9577 * jcf-parse.c (get_constant): Delete unused variables.
9578
95792002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
9580
9581 * java-tree.h (java_parse_file): New.
9582 * jcf-parse.c (yyparse): Rename java_parse_file.
9583 * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
9584
95852002-03-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9586
9587 * parse.y (craft_constructor): Return the constructor decl.
9588 (java_expand_classes): Update comments.
9589 (lookup_method_invoke): Call fix_constructors immediately for
9590 anonymous class. Fixes PR java/5935.
9591
95922002-03-15 Anthony Green <green@redhat.com>
9593
9594 * jcf-parse.c (yyparse): Don't emit class registration
9595 constructor when compiling resource files.
9596
95972002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9598
9599 * lang.c (java_tree_code_type, java_tree_code_length,
9600 tree_code_name): Delete.
9601 (tree_code_type, tree_code_length, tree_code_name): Define.
9602 (java_init): Don't try to copy into the various tree_code
9603 arrays.
9604
96052002-03-12 Tom Tromey <tromey@redhat.com>
9606
9607 * jcf-parse.c (get_constant) [CONSTANT_String]: String values are
9608 UTF-8, not UCS-2. Fixes PR java/5923.
9609
9610 * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
9611 a call_expr wrapped in a convert. Fixes PR java/5848.
9612
96132002-03-12 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9614
9615 * jcf-write.c (write_classfile): Improve error strings.
9616
96172002-03-11 Eric Blake <ebb9@email.byu.edu>
9618
9619 * lex.c: Adjust comments to GNU standards.
9620
96212002-03-11 Eric Blake <ebb9@email.byu.edu>
9622
9623 Fix for PR java/5902:
9624 * lex.c (java_lex): Fix parsing of literals.
9625
96262002-03-11 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9627
9628 * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
9629 to prevent it getting evaluated twice in the store checking case.
9630 * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
9631 examining OBJECT.
9632
96332002-03-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9634
9635 * decl.c (java_init_decl_processing): Make sure class_type_node
9636 alignment is not less than 64 bits if hash synchronization is enabled.
9637
96382002-03-08 Per Bothner <per@bothner.com>
9639
9640 * parse.y (java_complete_lhs): Check if patch_assignment
9641 returned an error-mark.
9642
9643 * parse.y (try_builtin_assignconv): Don't special-case zero.
9644
96452002-03-08 Per Bothner <per@bothner.com>
9646
9647 Fix for PR java/5812.
9648 * expr.c (build_java_jsr): Take pc arguments, and do lookup_label
9649 here instead of in JSR macro. Likewise with load_type_state call.
9650 Do the latter on if the return_pc has been verified (the jsr returns).
9651 (JSR): Now just call build_java_jsr.
9652
96532002-03-07 Jeff Sturm <jsturm@one-point.com>
9654
9655 * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define.
9656 (java.install-common): Link native driver to
9657 JAVA_TARGET_INSTALL_NAME.
9658
96592002-03-05 David Billinghurst <David.Billinghurst@riotinto.com>
9660
9661 * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED
9662 * builtins.c(sin_builtin): Likewise
9663 * builtins.c(sqrt_builtin): Likewise
9664
96652002-03-03 Zack Weinberg <zack@codesourcery.com>
9666
9667 * java/expr.c, java/jcf-parse.c, java/lex.c:
9668 Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
9669 REAL_ARITHMETIC blocks unconditional. Delete some further
9670 #ifdef blocks predicated on REAL_ARITHMETIC.
9671
96722002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9673
9674 * class.c (init_class_processing): Use ARRAY_SIZE in lieu of
9675 explicit sizeof/sizeof.
9676 * decl.c (java_init_decl_processing): Likewise.
9677 * jcf-parse.c (init_jcf_parse): Likewise.
9678 * parse.y (init_src_parse): Likewise.
9679
96802002-03-02 Per Bothner <per@bothner.com>
9681
9682 Make --CLASSPATH by a synonym for --classpath and -classpath.
9683 Implement --bootclasspath.
9684 * jcf-path.c (classpath_u): Rename static variable to classpath_user.
9685 (classpath_l): Remove.
9686 (jcf_path_CLASSPATH_arg): Remove.
9687 (jcf_path_bootclasspath_arg): New function.
9688 (jcf_path_seal): Simplify accordingly.
9689
9690 * jcf.h (jcf_path_bootclasspath_arg): New declarations.
9691 (jcf_path_CLASSPATH): Remove declaration.
9692 * jvspec.c (jvgenmain_spec): Also accept -fbootclasspath*.
9693 (lang_specific_driver): Translate -bootclasspath.
9694 * lang-options.h: Add --bootclasspath. Update --CLASSPATH.
9695 * lang.c (decode_lang_options): Do jcf_path_init first.
9696 Handle -fCLASSPATH same as -fclasspath. Also process -fbootclasspath.
9697 * gjavah.c: Also handle --bootclasspath.
9698 Handle --CLASSPATH as a synonum for --classpath.
9699 * jcf-dump.c: Likewise.
9700
9701 "." is not part of system path, but is the default for --classpath.
9702 * jcf-path.c (jcf_path_init): Don't add "." to sys_dirs.
9703 (jcf_path_seal): Add "." if no CLASSPATH specified.
9704
9705 * gcj.texi: Document changes.
9706
97072002-03-01 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9708
9709 * expr.c (build_java_arraystore_check): Fix formatting.
9710
97112002-02-28 Alexandre Petit-Bianco <apbianco@redhat.com>
9712
9713 Fix for PR java/5758, java/5632:
9714 * jcf-parse.c (load_class): Renamed local variable, consider `.' an
9715 inner-class separator too.
9716 * parse.y (do_resolve_class): New local `decl_result.'
9717 Progressively build a name for what can have been loaded.
9718
97192002-02-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9720
9721 * expr.c (java_array_data_offset): Removed function.
9722 (JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
9723 (build_java_array_length_access): Obtain "length" value using a
9724 COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
9725 (build_java_arrayaccess): Correct comment. Access "data" using a
9726 COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
9727 (build_java_arraystore_check): New function.
9728 (expand_java_arraystore): Use build_java_arraystore_check.
9729 * parse.y (patch_assignment): Simplify code to insert a store check
9730 when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
9731 * check-init.c (check_init): Update to reflect that an array length
9732 access is now a COMPONENT_REF.
9733 * gcj.texi (Code Generation): Improve documentation of
9734 -fno-bounds-check. Add documentation for -fno-store-check.
9735 * java-tree.h (flag_store_check): Declare.
9736 (build_java_arraystore_check): Declare.
9737 * lang.c (flag_store_check): Initialize to 1.
9738 (lang_f_options): Add store-check option.
9739 * jvspec.c: Don't pass store-check option to jvgenmain.
9740 * lang-options.h: Add help string for -fno-store-check.
9741
97422002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
9743
9744 * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
9745 * java-tree.h (java_dup_lang_specific_decl): New.
9746 * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
9747
97482002-02-27 Zack Weinberg <zack@codesourcery.com>
9749
9750 * builtins.c, decl.c: Delete traditional-mode-related code
9751 copied from the C front end but not used, or used only to
9752 permit the compiler to link.
9753
97542002-02-22 Tom Tromey <tromey@redhat.com>
9755
9756 Fix for PR java/2369:
9757 * jvspec.c (verify_class_name): New function.
9758 (lang_specific_driver): Call it.
9759 (JAVA_START_CHAR_P): New macro.
9760 (JAVA_PART_CHAR_P): Likewise.
9761
97622002-02-22 Per Bothner <per@bothner.com>
9763
9764 * class.c: Change vtable to be more compatible with g++ v3 abi.
9765 (get_dispatch_table): Prepend offset-to-top (always 0) and
9766 type_info pointer (currently unimplemented hence NULL) to vtable.
9767 Specifically, prepend offset-to-top and typeinfo ptr (currently null).
9768 (make_class_data): Variable dtable_start_offset is sizeof 2 pointers.
9769 Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
9770 (build_dtable_decl): Add declarations for new fields.
9771
97722002-02-20 Per Bothner <per@bothner.com>
9773
9774 * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
9775 to finit$ (otherwise generate_bytecode_insns drops it). However, we
9776 don't need to set it on the COMPOUND_EXPR - the caller does that.
9777
97782002-02-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
9779
9780 * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option
9781 `--CLASSPATH' becomes `--classpath.'
9782 * gjavah.c: Likewise.
9783 * jcf-dump.c: Likewise.
9784 * lang-options.h: Likewise.
9785 * lang.c: Likewise.
9786 * jcf-path.c: Updated comment.
9787 (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.'
9788 (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.'
9789 * jcf.h (jcf_path_CLASSPATH_arg): Ditto.
9790 (jcf_path_CLASSPATH_arg): Ditto.
9791 (classpath_u): Updated leading comment.
9792
97932002-02-20 Per Bothner <per@bothner.com>
9794
9795 * builtins.c (check_for_builtin): New function.
9796 (build_call_or_builtin): Remove.
9797 * java-tree.h: Update accordingly.
9798 * expr.c (expand_invoke): Use build + check_for_builtin instead
9799 of build_call_or_builtin.
9800 * parse.y (patch_invoke): Likewise. This avoids needlessly creating
9801 a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
9802 flag (which had caused jcf-write to incorrectly emit invokevirtual).
9803
98042002-02-17 Tom Tromey <tromey@redhat.com>
9805
9806 * java-tree.h (TYPE_STRICTFP): New macro.
9807 (struct lang_type) [strictfp]: New field.
9808 (CLASS_STRICTFP): New macro.
9809 (METHOD_STRICTFP): New macro.
9810 (struct lang_decl) [strictfp]: New field.
9811 * parse.y (method_header): Disallow strictfp constructor or
9812 abstract method.
9813 (STRICT_TK): Move before MODIFIER_TK.
9814 * parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
9815 (METHOD_MODIFIERS): Likewise.
9816 (INTERFACE_MODIFIERS): Likewise.
9817 * jcf-write.c (get_access_flags): Likewise.
9818 * class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
9819 (add_method_1): Likewise.
9820 (get_access_flags_from_decl): Likewise.
9821 * jcf-dump.c (print_access_flags): Print in standard order. Also,
9822 recognize strictfp flag.
9823 * jcf.h (ACC_STRICT): New define.
9824
98252002-02-12 David Billinghurst <Davod.Billinghurst@riotinto.com>
9826
9827 * class.c(build_utf8_ref): Move declaration of decl_size
9828
98292002-02-07 Tom Tromey <tromey@redhat.com>
9830
9831 * gcj.texi (Input Options): --CLASSPATH does not suppress system
9832 path.
9833
98342002-02-04 Anthony Green <green@redhat.com>
9835
9836 * class.c (build_utf8_ref): Put UTF-8 constants into merged
9837 sections if available.
9838
98392002-02-04 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9840
9841 * parse.y (java_expand_classes): Fix typo in static field loop.
9842
98432002-02-02 Richard Henderson <rth@redhat.com>
9844
9845 * class.c (add_field): Mark static fields external.
9846 (build_class_ref): Remove redundant set.
9847 * parse.y (java_expand_classes): Mark static fields of classes
9848 to be compiled as local.
9849 * jcf-parse.c (parse_class_file): Likewise.
9850
98512002-02-02 Nic Ferrier <nferrier@tapsellferrier.co.uk>
9852
9853 * gcj.texi (About CNI): New node.
9854
98552002-02-01 Craig Rodrigues <rodrigc@gcc.gnu.org>
9856
9857 PR java/5080
9858 * jcf-parse.c : Check for HAVE_LOCALE_H before using
9859 setlocale() with LC_CTYPE as a parameter.
9860 * jv-scan.c: Same.
9861
98622002-01-31 Joseph S. Myers <jsm28@cam.ac.uk>
9863
9864 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
9865 Follow GNU Coding Standards for --version.
9866
98672002-01-28 Tom Tromey <tromey@redhat.com>
9868
9869 * expr.c (build_jni_stub): Ensure storage for `meth' is
9870 generated.
9871 * parse.y (java_complete_expand_methods): Set
9872 current_function_decl before building JNI stub.
9873
98742002-01-26 Andreas Tobler <a.tobler@schweiz.ch>
9875
9876 * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
9877 BUILT_IN_SQRTF.
9878
98792002-01-22 Tom Tromey <tromey@redhat.com>
9880
9881 * decl.c (java_init_decl_processing): Use add_predefined_file.
9882 Predefine RawData.java.
9883 (predef_filenames): Removed.
9884 (java_init_decl_processing): Don't register predef_filenames.
9885 * jcf-parse.c (add_predefined_file): New function.
9886 (predefined_filename_p): Rewrote.
9887 (predefined_filename_p): No longer static.
9888 * decl.c (java_init_decl_processing): Call initialize_builtins.
9889 * Make-lang.in (JAVA_OBJS): Added builtins.o.
9890 (java/builtins.o): New target.
9891 * builtins.c: New file.
9892 * parse.y (patch_invoke): Use build_call_or_builtin.
9893 * java-tree.h (build_call_or_builtin): Declare.
9894 (initialize_builtins): Declare.
9895 (java_set_exception_lang_code): Removed unused declaration.
9896 (PREDEF_FILENAMES_SIZE): Removed.
9897 (java_tree_index): Added JTI_PREDEF_FILENAMES.
9898 (predef_filenames): New define.
9899 (add_predefined_file): Declare.
9900 (predefined_filename_p): Declare.
9901 * expr.c (expand_invoke): Use build_call_or_builtin.
9902
99032002-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9904
9905 * parse.y (patch_switch_statement): Fix format specifier.
9906
99072002-01-16 Tom Tromey <tromey@redhat.com>
9908
9909 More for PR java/5365:
9910 * gjavah.c (print_stub_or_jni): Cause exception to be thrown by
9911 default.
9912 (process_file): Generate include for
9913 java.lang.UnsupportedOperationExceptions.
9914
99152002-01-15 Andreas Jaeger <aj@suse.de>
9916
9917 * .cvsignore: Add man pages.
9918
99192002-01-15 Tom Tromey <tromey@redhat.com>
9920
9921 Fix for PR java/5365:
9922 * gjavah.c (process_file): Turn class name into a file name.
9923
99242002-01-14 Matthias Klose <doko@debian.org>
9925
9926 * gcj.texi: Fix whitespace and formatting errors in the
9927 synopsis of the man pages. Update copyright.
9928
99292002-01-14 Tom Tromey <tromey@redhat.com>
9930
9931 For PR libgcj/5303:
9932 * Make-lang.in (java.install-man): Handle jv-convert man page.
9933 (java.generated-manpages): Added jv-convert.1.
9934 (java.uninstall): Remove jv-convert.1.
9935 (java.maintainer-clean): Likewise.
9936 ($(srcdir)/java/jv-convert.1): New target.
9937 * gcj.texi (Top): Link to jv-convert node.
9938 (Individual utilities): Likewise.
9939 (Invoking jv-convert): New node.
9940
99412001-01-10 Jeff Sturm <jsturm@one-point.com>
9942 Martin Kahlert <martin.kahlert@infineon.com>
9943
9944 * jcf-parse.c (get_constant): Don't swap lo/hi for big
9945 endian targets when HOST_BITS_PER_WIDE_INT >= 64.
9946
99472002-01-03 Graham Stott <grahams@redhat.com>
9948
9949 * class.c (compile_resource_file): Update copyright date.
9950 Constify filename parameter.
9951 (java-tree.h): Update copyright date.
9952 (compile_resource_file): Constify filename parameter.
9953
99542002-01-03 Graham Stott <grahams@redhat.com>
9955
9956 * gcc/jcf-parse.c: Update copyright date.
9957 (yyparse): Constify resource_filename.
9958
99592002-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9960
9961 * parse.y (src_parse_roots): Don't needlessly zero init.
9962
99632001-12-31 Tom Tromey <tromey@redhat.com>
9964
9965 * parse.y (dump_java_tree): New function.
9966 (source_end_java_method): Call it.
9967 (end_class_declaration): Likewise.
9968 * lang.c (java_decode_option): Call dump_switch_p.
9969
99702001-12-28 Tom Tromey <tromey@redhat.com>
9971
9972 * gen-table.pl: Don't process characters after \uffff. Added
9973 comment pointing to input file.
9974
99752001-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9976
9977 * gen-table.pl: Const-ify output. Document the location of a
9978 suitable unicode input file.
9979
9980 * chartables.h: Regenerate.
9981
99822001-12-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9983
9984 * chartables.h: Const-ify.
9985 * gjavah.c (options): Likewise.
9986 * jcf-dump.c (options): Likewise.
9987 * jv-scan.c (options): Likewise.
9988 * lex.c (java_start_char_p, java_part_char_p): Likewise.
9989 * parse.y (binop_lookup): Likewise.
9990
99912001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9992
9993 * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
9994 the static arrays that are output.
9995 * jvspec.c (jvgenmain_spec): Make static.
9996 * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
9997 * keyword.h: Regenerate.
9998 * lang.c (string_option, process_option_with_no, lang_f_options,
9999 lang_W_options): Const-ify.
10000 * lex.c (java_lex): Likewise.
10001
100022001-12-21 Richard Henderson <rth@redhat.com>
10003
10004 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
10005 (get_boehm_type_descriptor): ... here. Arrange for the
10006 TREE_TYPE to get set properly.
10007
100082001-12-21 Richard Henderson <rth@redhat.com>
10009
10010 * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
10011 only if the target requires collect2.
10012
10013 * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
10014
100152001-12-20 Tom Tromey <tromey@redhat.com>
10016
10017 For PR java/4509:
10018 * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
10019 CAN_COMPLETE_NORMALLY for the node.
10020 * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
10021 generate code for second branch if first branch can't complete
10022 normally.
10023 (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
10024 the loop head if the loop body can't complete normally.
10025
100262001-12-20 Tom Tromey <tromey@redhat.com>
10027
10028 For PR java/4766:
10029 * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
10030 case where `finally' clause can't complete normally.
10031
100322001-12-20 Tom Tromey <tromey@redhat.com>
10033
10034 Fixes PR java/5057:
10035 * parse.y (analyze_clinit_body): Added this_class parameter.
10036 Check for more cases where we must keep <clinit>.
10037 (maybe_yank_clinit): Cleaned up flow control.
10038
100392001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10040
10041 * decl.c (java_init_decl_processing): Don't initialize
10042 finit_leg_identifier_node.
10043 * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
10044 (finit_leg_identifier_node): Remove.
10045 (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
10046
100472001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10048
10049 * mangle.c (mangle_member_name): Don't special-case for
10050 NO_DOLLAR_IN_LABEL.
10051 * mangle_name.c (unicode_mangling_length): Likewise.
10052 (append_unicode_mangled_name): Likewise.
10053 * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
10054 code.
10055
100562001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10057
10058 * expr.c (build_java_array_length_access): Don't force null pointer
10059 check unless flag_check_references is set.
10060
100612001-12-20 Tom Tromey <tromey@redhat.com>
10062
10063 Fix for PR java/3417:
10064 * parse.y (patch_assignment): Added special processing for
10065 `return'.
10066 (patch_return): Don't convert booleans to integers, and don't
10067 special-case `null'.
10068
100692001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
10070
10071 * config-lang.in (diff_excludes): Remove.
10072
100732001-12-17 Joseph S. Myers <jsm28@cam.ac.uk>
10074
10075 * gcj.texi: Update link to GCC manual.
10076
100772001-12-17 Tom Tromey <tromey@redhat.com>
10078
10079 * parse.y (link_nested_class_to_enclosing): Removed useless
10080 statement.
10081
100822001-12-16 Tom Tromey <tromey@redhat.com>
10083
10084 * mangle.c (mangle_method_decl): Never emit `C2' constructor.
10085 Fixes PR java/5088.
10086
100872001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
10088
10089 * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
10090 jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
10091 spelling errors.
10092
100932001-12-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10094
10095 * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
10096
100972001-12-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10098
10099 * decl.c (java_init_decl_processing): Build otable_type correctly.
10100 otable_decl is an otable_type.
10101
101022001-12-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10103
10104 * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
10105 otable_type, otable_ptr_type, method_symbol_type,
10106 method_symbols_array_type, method_symbols_array_ptr_type): New
10107 field/global tree definitions.
10108 (flag_indirect_dispatch): New flag.
10109 * decl.c (java_init_decl_processing): Initialize new otable and
10110 otable_syms type nodes and decls. Add new field "index" to
10111 method_type_node.
10112 * class.c (build_method_symbols_entry): New function.
10113 (make_method_value): Set "index" to to method's vtable index for
10114 virtual methods when indirect-dispatch is not used.
10115 (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
10116 and set vtable_method_count to -1. Set otable and otable_syms field
10117 if indirect-dispatch is used and there was something to put in them.
10118 (build_method_symbols_entry): New function.
10119 (emit_offset_symbol_table): New function.
10120 * expr.c (get_offset_table_index): New function.
10121 (build_invokevirtual): Build array reference to otable at the index
10122 returned by get_offset_table_index, and use the result as the vtable
10123 offset.
10124 (build_invokeinterface): Similar.
10125 * jcf-parse.c (yyparse): If indirect-dispatch, call
10126 emit_offset_symbol_table at the end of compilation, after all classes
10127 have been generated.
10128 * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
10129 * lang.c (flag_indirect_dispatch): Define.
10130 (lang_f_options): Add indirect-dispatch flag.
10131
101322001-12-14 Matthias Klose <doko@debian.org>
10133
10134 * gcj.texi: Markup for man page generation. Document missing
10135 options printed by <tool> --help.
10136 Terminate description of gij's -ms option with a dot.
10137 * Make-lang.in ($(srcdir)/java/*.1): New targets.
10138 (java.generated-manpages java.install-man, java.uninstall,
10139 java-maintainer-clean) Updated.
10140
101412001-12-14 Hans Boehm <Hans_Boehm@hp.com>
10142
10143 * class.c (get_dispatch_table): Fix java vtable layout
10144 for TARGET_VTABLE_USES_DESCRIPTORS.
10145 * decl.c (java_init_decl_processing): Initialize
10146 alloc_no_finalizer_node, finalize_identifier_node.
10147 * expr.c (class_has_finalize_method): New function.
10148 (expand_java_NEW): Generate calls for finalizer-free allocation.
10149 (build_invokevirtual): Fix java vtable layout for
10150 TARGET_VTABLE_USES_DESCRIPTORS.
10151 * java-tree.h (enum java_tree_index): New entries:
10152 JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
10153 (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
10154 (class_has_finalize_method): declare.
10155 (HAS_FINALIZER_P): New macro.
10156 * parse.y (patch_invoke): Generate calls for finalizer-free
10157 allocation.
10158
101592001-12-12 Matthias Klose <doko@debian.org>
10160
10161 * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
10162 whitespace at end of line.
10163
101642001-12-11 Tom Tromey <tromey@redhat.com>
10165
10166 * lex.c (java_init_lex): Define wfl_to_string as
10167 gnu.gcj.runtime.StringBuffer unless generating bytecode.
10168
101692001-12-11 Jeff Sturm <jsturm@one-point.com>
10170
10171 * class.c (make_method_value): Use null_pointer_node to
10172 represent empty exception table.
10173
101742001-12-10 Tom Tromey <tromey@redhat.com>
10175
10176 * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
10177
101782001-12-10 Douglas B. Rupp <rupp@gnat.com>
10179
10180 * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
10181
101822001-12-09 Per Bothner <per@bothner.com>
10183
10184 * check-init.c (current_switch_has_default): New static field.
10185 (check_init): Case DEFAULT_EXPR: Set current_switch_has_default.
10186 Case SWITCH_EXPR: Save/restore current_switch_has_default. If no
10187 DEFAULT_EXPR seen, simulate a default alternative that copies state.
10188
101892001-12-09 Tom Tromey <tromey@redhat.com>
10190
10191 * check-init.c (check_init): Don't allow pre- or post- increment
10192 or decrement of final variable.
10193 (final_assign_error): Minor error message rewording.
10194
101952001-12-08 Tom Tromey <tromey@redhat.com>
10196
10197 * java-tree.h: Fixed typo.
10198
10199 * gjavah.c (decompile_method): Don't decompile to `return this'
10200 for static methods.
10201
10202 * gjavah.c (cxx_keywords): Re-sorted.
10203 * lex.c (cxx_keywords): Re-sorted.
10204
10205 * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
10206 else.
10207
10208 * gjavah.c (print_namelet): Clear subnamelets.
10209 (HANDLE_METHOD): Set `method_printed' earlier.
10210
102112001-12-07 Tom Tromey <tromey@redhat.com>
10212
10213 * lang.c (lang_f_options): Added
10214 optimize-static-class-initialization.
10215 (java_decode_option): Removed special case.
10216
102172001-12-07 Per Bothner <per@bothner.com>
10218
10219 * check-init.c (check_init): Fix typo freeing memory twice.
10220
102212001-12-05 Per Bothner <per@bothner.com>
10222
10223 Restore support for static class initialization optimization.
10224 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
10225 * check-init.c (check_int): At end of BLOCK handle initialization
10226 blocks, which used to be done in java_complete_expand_method but did
10227 not handle the case where check_for_initialization might allocate
10228 more than a word of bits.
10229 * decl.c (lang_make_tree): The smic field is now a tree.
10230 * expr.c (build_class_init): Set DECL_FUNCTION_INIT_TEST_CLASS field.
10231 * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE): New macro.
10232
10233 * parse.y (emit_test_initialization): Combine hash_lookup calls.
10234
10235 * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
10236 Change from a hash table to a list.
10237 (struct_lang_decl): Change field 'smic' to match.
10238 * class.c (add_method_1): Initialize
10239 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
10240 * parse.y (adjust_init_test_initialization): Removed - inlined into -
10241 (java_expand_method_bodies): -here, since 'smic' is now a list.
10242 (patch_invoke): Add to 'smic' list, instead of hash_lookup.
10243
10244 * check-init.c (WORD_SIZE): Use BITS_PER_UNIT.
10245
10246 * class.c (java_hash_compare_tree_node): Fix casts.
10247
102482001-12-04 Per Bothner <per@bothner.com>
10249
10250 * check-init.c: Handle definite unassignment to finals in addition
10251 to definite assignment.
10252 (loop_current_locals): New field.
10253 (num_current_locals, int start_current_locals, num_current_words):
10254 Make static.
10255 (SET_P, CLEAR_P, SET_BIT): Add needed but missing parentheses.
10256 (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
10257 CLEAR_ASSIGNED, CLEAR_UNASSIGNED): New macros.
10258 (get_variable_decl, check_final_reassigned): New functions.
10259 (check_init, check_bool_init): Modify as needed for checking finals.
10260 (check_for_initialization): Take extra parameter and return void.
10261 Do extra start-up logic to check final fields for assignment.
10262 * parse.y (check_static_final_variable_assignment_flag,
10263 reset_static_final_variable_assignment_flag, check_final_assignment,
10264 check_final_variable_local_assignment_flag,
10265 reset_final_variable_indirect_assignment_flag,
10266 reset_final_variable_global_assignment_flag): Remove functions.
10267 (java_complete_expand_methods, outer_field_access_fix,
10268 patch_assignment): Remove no-longer used logic.
10269 * java-tree.h (DECL_FIELD_FINAL_IUD): Change usage and comments.
10270 * parse.y (register_fields, java_complete_tree): Update accordingly.
10271
10272 * check-init.c (ALLOC_WORDS/FREE_WORDS): Use xmalloc/free, not alloca.
10273 (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER): New.
10274 (check_cond_init, check_bool2_init): Use DECLARE_BUFFERS.
10275
10276 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Temporarily turn off.
10277
10278 * java-tree.h (DECL FINAL): New bit-field.
10279 (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL): Define as DECL_FINAL.
10280 (LOCAL_FINAL_P): Use DECL_FINAL rather than old LOCAL_FINAL.
10281 (DECL_INIT_CALLS_THIS): New macro.
10282 (struct lang_decl): New bit-field init_calls_this.
10283 (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
10284 DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
10285 (DECL_BIT_INDEX): Change to use pointer_alias_set since we now
10286 use it for both local variables and final fields.
10287 (struct lang_decl_var): Remove bit-fields final_liic, final_ierr,
10288 and local_final.
10289 (struct lang_type): Remove hfv bit-field.
10290 (check_for_initialization): Change to return void.
10291
10292 * java-tree.h (IS_ARRAY_LENGTH_ACCESS): New macros.
10293 * expr.c (build_java_array_length_access): Set IS_ARRAY_LENGTH_ACCESS.
10294 * check-init.c (final_assign_error): New helper function.
10295 (check_final_reassigned, check_init): Use it.
10296 (check_init): Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
10297
10298 * java-tree.h (struct lang_decl, struct lang_decl_var): Change all
10299 bit-fields to unsigned.
10300
103012001-12-03 Per Bothner <per@bothner.com>
10302
10303 * parse.y (patch_binop): Minor constant folding.
10304
10305 * parse.y (build_current_thisn): Shorter 'buffer'.
10306
103072001-12-03 Per Bothner <per@bothner.com>
10308
10309 * decl.c (complete_start_java_method): Now generate TRY_FINALLY_EXPR
10310 instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
10311 * jcf-write.c (generate_bytecode_insns): Remove support for
10312 CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
10313 * check-init.c (check_init): Likewise.
10314
103152001-12-03 Per Bothner <per@bothner.com>
10316
10317 * verify.c (subroutine_nesting): New function.
10318 (verify_jvm_instructions): Use it to fix logic for checking that
10319 we're done with the current subroutine.
10320
10321 * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
10322 OPCODE_instanceof use POP_TYPE macro for better diagnostics.
10323
103242001-12-03 Per Bothner <per@bothner.com>
10325
10326 * jcf.h: Fix obvious typo in comment.
10327 * typeck.c (build_null_signature): Add comment.
10328
103292001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
10330
10331 * expr.c: Remove leading capital from diagnostic messages, as
10332 per GNU coding standards.
10333 * jcf-io.c: Similarly.
10334 * jcf-parse.c: Similarly.
10335 * jv-scan.c: Similarly.
10336 * jvspec.c: Similarly.
10337 * mangle.c: Similarly.
10338
103392001-12-02 Tang Ching-Hui <nicholas@cs.nthu.edu.tw>
10340 Alexandre Petit-Bianco <apbianco@redhat.com>
10341
10342 * expr.c (build_java_arrayaccess): Call save_expr on array for
10343 correct evaluation order, modified comment, fixed indentation.
10344 * parse.y: (patch_assignment): Correctly extract the array base
10345 from the tree generate by build_java_arrayaccess, added comments.
10346 (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
10347 Fixes PR java/3096, PR java/3803, PR java/3965.
10348
103492001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
10350
10351 * expr.c (expand_byte_code): Remove trailing periods from messages.
10352 * jcf-parse.c (load_class, jcf_parse): Similarly.
10353 * jcf-write.c (generate_classfile): Similarly.
10354 * lex.c (java_lex): Similarly.
10355
103562001-11-30 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10357
10358 * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
10359
103602001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
10361
10362 * Make-lang.in (java.generated-manpages): New dummy target.
10363
103642001-11-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10365
10366 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10367 ASM_FINAL_SPEC.
10368 (lang_specific_pre_link): Use set_input to set input_filename.
10369 Append `main' here.
10370 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10371 (main): Fix definition.
10372 Strip `main' from classname.
10373 Fixes PR java/227.
10374
103752001-11-18 Roger Sayle <roger@eyesopen.com>
10376
10377 * parse.h (java_expand_switch): Remove old prototype.
10378
103792001-11-18 Tom Tromey <tromey@redhat.com>
10380
10381 Fix for PR java/1401:
10382 * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
10383 arg0 is null.
10384 (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
10385 correctly.
10386
103872001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
10388
10389 * lang.c (finish_parse): Rename to java_finish.
10390 (LANG_HOOKS_FINISH, java_finish): New.
10391
103922001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
10393
10394 * decl.c (init_decl_processing): Rename java_init_decl_processing.
10395 * java-tree.h: New prototype.
10396 * lang.c (java_init): Update prototype. Combine with old init_parse.
10397
103982001-11-13 Tom Tromey <tromey@redhat.com>
10399
10400 * gjavah.c (method_signature): New global.
10401 (HANDLE_METHOD): Set it.
10402 (decompile_return_statement): New function.
10403 (decompile_method): Use it.
10404 (print_method_info): Removed `synth' argument.
10405
104062001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
10407
10408 * java-tree.h (java_set_yydebug): New.
10409 * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
10410 * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
10411 (print_lang_decl, print_lang_type, print_lang_identifier,
10412 print_lang_statistics, lang_print_xnode): Remove.
10413
104142001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
10415
10416 * jcf-parse.c (init_lex): Remove.
10417 * lang.c (language_string, lang_identify): Remove.
10418 (struct lang_hooks): Constify.
10419 (LANG_HOOKS_NAME): Override.
10420 (init_parse): Update.
10421
104222001-11-08 Andreas Franck <afranck@gmx.de>
10423
10424 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
10425 program_transform_name the way suggested by autoconf.
10426 (java.install-common): Also transform auxiliary program names with
10427 program_transform_name.
10428
104292001-11-08 Tom Tromey <tromey@cygnus.com>
10430
10431 * parse.y (trap_overflow_corner_case): New rule.
10432 (unary_expression): Use it.
10433 * lex.c (java_init_lex): Don't set minus_seen.
10434 (yylex): Don't use minus_seen. Communicate overflow to parser for
10435 it to handle.
10436 (error_if_numeric_overflow): New function.
10437 * parse.h (minus_seen): Removed field.
10438 (JAVA_RADIX10_FLAG): New define.
10439
104402001-11-07 Tom Tromey <tromey@redhat.com>
10441
10442 Patch for PR java/1414:
10443 * parse.y (case_label_list): New global.
10444 (goal): Register case_label_list with GC.
10445 (java_complete_lhs): Save new case on case_label_list.
10446 (patch_switch_statement): Check for duplicate case labels.
10447
104482001-11-07 Alexandre Petit-Bianco <apbianco@redhat.com>
10449
10450 * parse.y (patch_assignment): Removed unused third argument.
10451 (java_complete_lhs): Removed unused third argument to patch_assignment.
10452
104532001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
10454
10455 * lang.c: Include langhooks-def.h.
10456 * Make-lang.in: Update.
10457
104582001-10-31 Zack Weinberg <zack@codesourcery.com>
10459
10460 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
10461
104622001-10-29 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10463
10464 * mangle.c (find_compression_record_match): Don't match compression
10465 records for package name elements unless they occur at the start of
10466 the name. Fix for PR java/4717.
10467
104682001-10-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10469
10470 * expr.c (expand_java_field_op): Don't special-case references to
10471 java.lang.PRIMTYPE.TYPE.
10472 (build_primtype_type_ref): Removed.
10473 * java-tree.h (build_primtype_type_ref): Remove prototype.
10474 * parse.y (maybe_build_primttype_type_ref): Removed.
10475 (complete_function_arguments): Don't special-case references to
10476 java.lang.PRIMTYPE.TYPE.
10477 (patch_assignment): Likewise.
10478 (array_constructor_check_entry): Likewise.
10479
104802001-10-24 Alexandre Petit-Bianco <apbianco@redhat.com>
10481
10482 * mangle.c (static tree compression_table): Fixed leading comment.
10483 * parse.h (struct parser_ctxt): Fixed field comment.
10484 * parse.y (check_pkg_class_access): New prototype, fixed leading
10485 comment, new parameter used to emit error only if passed as true.
10486 (parse_check_super): Pass extra argument to check_pkg_class_access.
10487 (do_resolve_class): Likewise.
10488 (process_imports): Likewise.
10489 (read_import_dir): Fixed indentation.
10490 (find_in_imports_on_demand): New local class_type_name. Local
10491 node_to_use deleted. while loop changed into for loop. Report
10492 multiple definition only for accessible classes. Improved error
10493 message.
10494 (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
10495 assigned to parameter list, fixed indentation. while loop changed
10496 into for loop, restore TREE_CHAIN on local `tem' before the next
10497 iteration.
10498
104992001-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10500
10501 * lang.c (lang_get_alias_set): Deleted.
10502
105032001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10504
10505 * gjavah.c (jni_print_char): Fix thinko in last change.
10506
10507 * gjavah.c (jni_print_char, decode_signature_piece): Use
10508 safe-ctype macros and/or fold extra calls into fewer ones.
10509 * lex.c (java_read_unicode, java_lex): Likewise.
10510 * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
10511 JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
10512 * mangle_name.c (append_unicode_mangled_name,
10513 unicode_mangling_length): Likewise.
10514
105152001-10-17 Richard Henderson <rth@redhat.com>
10516
10517 * Make-lang.in (java/lang.o): Depend on langhooks.h.
10518
105192001-10-15 Alexandre Petit-Bianco <apbianco@redhat.com>
10520
10521 * lang.c (langhooks.h): Included.
10522 (LANG_HOOKS_INIT): Redefined.
10523 (LANG_HOOKS_INIT_OPTIONS): Likewise.
10524 (LANG_HOOKS_DECODE_OPTION): Likewise.
10525 (struct lang_hooks lang_hooks): New initialization.
10526
105272001-10-11 Per Bothner <per@bothner.com>
10528
10529 * parse.y (patch_synchronized_statement): Use a TRY_FINALLY_EXPR
10530 rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
10531 The former is simpler, and jcf-write.c handles it better.
10532 (java_complete_lhs): No longer need to handle CLEANUP_POINT_EXPR
10533 or WITH_CLEANUP_EXPR.
10534 * jcf-write.c: Revert Alex's change from 2000-10-18. It is no
10535 longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
10536
10537 * parse.y (patch_if_else_statement): If the condition is constant,
10538 optimize away the test.
10539
105402001-10-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10541
10542 * parse.y (patch_cast): Call patch_string on the first operand of
10543 the incoming node, update it if necessary. Fixes PR java/4510.
10544
105452001-10-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10546
10547 * parse.y (find_as_inner_class): Don't disregard the enclosing scope
10548 when name qualifier matches a package name.
10549
105502001-10-08 Tom Tromey <tromey@redhat.com>
10551
10552 Fix for PR java/4489:
10553 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
10554 force a new label when computing `body_block'.
10555
105562001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10557
10558 * jcf-io.c (format_uint): Const-ify.
10559 * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
10560 * lex.c (java_get_line_col): Likewise.
10561 * parse.y (build_incdec): Likewise.
10562
105632001-10-05 Alexandre Petit-Bianco <apbianco@redhat.com>
10564
10565 * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
10566 a NULL enclosing context if appropriate. Fixes PR java/4466.
10567
105682001-10-03 Alexandre Petit-Bianco <apbianco@redhat.com>
10569
10570 * parse.y (patch_assignment): Use lvalue's original TYPE when
10571 building the final COMPOUND_EXPR.
10572 (try_reference_assignconv): Fixed leading comment.
10573
105742001-09-26 Alexandre Petit-Bianco <apbianco@redhat.com>
10575
10576 * parse.y (check_final_variable_indirect_assignment): For
10577 COMPOUND_EXPR, return only if finals were found initialized
10578 properly, if not, keep on checking.
10579 (check_final_variable_global_assignment_flag): New local
10580 error_found, set when appropriate and used to decide whether to
10581 report uninitialized finals. Fixed typo in comment.
10582
105832001-09-22 Alexandre Petit-Bianco <apbianco@redhat.com>
10584
10585 * decl.c (init_decl_processing): Fixed typo in predef_filenames
10586 last three initializations. Fixes PR java/4360.
10587
105882001-09-21 Richard Henderson <rth@redhat.com>
10589
10590 * class.c (get_dispatch_table): Handle function descriptors.
10591 (build_dtable_decl): Likewise.
10592 * expr.c (build_invokevirtual): Likewise.
10593
105942001-09-20 Alexandre Petit-Bianco <apbianco@redhat.com>
10595
10596 * parse.y (patch_method_invocation): Build class initialization
10597 when static finals are used to qualify method invocation.
10598 Fixes PR java/4366.
10599
106002001-09-19 Alexandre Petit-Bianco <apbianco@redhat.com>
10601
10602 * parse.h: (WFL_STRIP_BRACKET): Re-written using
10603 build_type_name_from_array_name.
10604 (STRING_STRIP_BRACKETS): New macro.
10605 * parse.y (build_type_name_from_array_name): New function.
10606 (array_creation_expression:): Accumulate []s instead of [s.
10607 (cast_expression:): Accumulate []s instead of [s after cast type
10608 name.
10609 (build_array_from_name): Local string deleted, use
10610 build_type_name_from_array_name.
10611 (build_unresolved_array_type): Accumulate []s instead of [s after
10612 type name.
10613 (register_fields): Fixed comment.
10614 (resolve_class): Local name, base deleted, new locals tname and
10615 array_dims. Use build_type_name_from_array_name. Use array_dims to
10616 build array type.
10617 (purify_type_name): Use STRING_STRIP_BRACKETS.
10618
106192001-09-18 Andreas Jaeger <aj@suse.de>
10620
10621 * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
10622 * jv-scan.c: Likewise.
10623
106242001-09-17 Alexandre Petit-Bianco <apbianco@redhat.com>
10625
10626 * parse.y (patch_method_invocation): Inner class creation context
10627 check not enforced within constructors. Fixes PR java/1873.
10628
106292001-09-16 Tom Tromey <tromey@redhat.com>
10630
10631 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
10632 NOTE_PUSH for single-case push. Fixes PR java/4189.
10633
106342001-09-13 Alexandre Petit-Bianco <apbianco@redhat.com>
10635
10636 * java-tree.h (TYPE_IMPORT_LIST): New macro.
10637 (TYPE_IMPORT_DEMAND_LIST): Likewise.
10638 (struct lang_type): New fields import_list and import_demand_list.
10639 * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
10640 TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
10641 (do_resolve_class): New local saved_enclosing_type, initialized,
10642 passed as parameter to find_in_imports and find_in_imports_on_demand.
10643 (find_in_imports): Added paramater enclosing_type, use its
10644 TYPE_IMPORT_LIST when applicable.
10645 (find_in_imports_on_demand): Added parameter enclosing_type, use
10646 its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
10647 declaration and initialization.
10648 (fold_constant_for_init): Switch/restore current_class to the
10649 appropriate context.
10650
106512001-09-13 Mark Mitchell <mark@codesourcery.com>
10652
10653 * verify.c (verify_jvm_instructions): Fix typo.
10654
106552001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10656
10657 * expr.c (expand_invoke): Const-ification.
10658 * parse.y (patch_method_invocation): Likewise.
10659
106602001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10661
10662 * gjavah.c (cxx_keywords): Const-ification.
10663 * keyword.gperf (java_keyword): Likewise.
10664 * lang.c (java_tree_code_name): Likewise.
10665 * lex.c (cxx_keywords): Likewise.
10666 * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
10667
106682001-09-11 Richard Henderson <rth@redhat.com>
10669
10670 * parse.h (ctxp_for_generation): Mark extern.
10671
106722001-09-10 Richard Henderson <rth@redhat.com>
10673
10674 * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
10675
106762001-09-07 Matt Kraai <kraai@alumni.carnegiemellon.edu>
10677
10678 * typeck.c (java_array_type_length, build_prim_array_type):
10679 Represent empty arrays by NULL index.
10680
106812001-09-06 Alexandre Petit-Bianco <apbianco@redhat.com>
10682
10683 * java-tree.h (compile_resource_file): Grouped with other prototypes.
10684 * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
10685
106862001-09-06 Anthony Green <green@redhat.com>
10687
10688 * class.c (O_BINARY): Define if necessary.
10689 (registerResource_libfunc): Declare.
10690 (init_class_processing): Initilize registerResource_libfunc.
10691 (compile_resource_file): New function.
10692 * java-tree.h (resource_name): Declare.
10693 (compile_resource_file): Declare.
10694 * jcf-parse.c (yyparse): Handle compiling java resource files.
10695 * lang.c (java_decode_option): Handle -fcompile-resource option.
10696 * jvspec.c (lang_specific_driver): Handle -R flag for compiling
10697 resource files.
10698 * gcj.texi (Code Generation): Add documentation for -R flag.
10699
107002001-09-05 Alexandre Petit-Bianco <apbianco@redhat.com>
10701
10702 * jcf-write.c (generate_classfile): Issue an error in case of
10703 field/initial value mismatch.
10704 * parse.y (analyze_clinit_body): Keep <clinit> if an array is
10705 being initialized and we're generating bytecode.
10706 (java_complete_lhs): In MODIFY_EXPR section: added comments,
10707 set DECL_INITIAL properly when appropriate.
10708 Fixes PR java/4230
10709 Fixes PR java/4204
10710
107112001-09-01 Per Bothner <per@bothner.com>
10712
10713 * parse.y (maybe_yank_clinit): A field without an initializer is not
10714 relevant. All initializers except static final and constant require
10715 <clinit>, regardless of flag_emit_class_files.
10716
107172001-08-31 Per Bothner <per@bothner.com>
10718
10719 * class.c (set_constant_value): When not emitting class files, then a
10720 String ConstantValue is a utf8const_ptr_type.
10721
107222001-08-30 Per Bothner <per@bothner.com>
10723
10724 * jcf-write.c (generate_classfile): Check that field is primitive
10725 or string before emitting ConstantValue attribute.
10726
107272001-08-30 Per Bothner <per@bothner.com>
10728
10729 * parse.y (resolve_qualified_expression_name): If creating a
10730 COMPOUND_EXPR, set it's type correctly.
10731
107322001-08-30 Per Bothner <per@bothner.com>
10733
10734 * jcf-io.c (open_class): Set filename field.
10735
10736 * jcf-parse,c (parse_class_file): Set current_function_decl
10737 for better error message when Code attribute is missing.
10738
10739 * lang.c (put_decl_node, lang_print_error): Re-arrange for
10740 better diagnostics, especially for constructors.
10741
107422001-08-30 Per Bothner <per@bothner.com>
10743
10744 * jcf-write.c (generate_classfile): Don't write ConstantValue
10745 attribute if field is not final, for compatibility with jdk.
10746
10747 * jcf-write.c (generate_classfile): Convert ConstantValue values
10748 to correct type. Work-around for front-end bug.
10749 * class.c (set_constant_value): Error if constant has wrong type.
10750
107512001-08-30 Per Bothner <per@bothner.com>
10752
10753 * jcf-dump.c (print_constant): Fix fencepost error so "Float" and
10754 "Double" are printed at verbosity 1.
10755
10756 * jcf-dump.c (main): Disable flag_print_attributes if --javap.
10757
10758 * jcf-dump.c (SPECIAL_IINC): Remove unneeded casts to long.
10759
107602001-08-30 Alexandre Petit-Bianco <apbianco@redhat.com>
10761
10762 * parse.y (patch_assignment): Don't verify final re-assignment here.
10763 (java_complete_lhs): Verify assignments to finals calling
10764 patch_assignment. Verify re-assignments to finals before calling
10765 patch_assignment.
10766
107672001-08-29 Alexandre Petit-Bianco <apbianco@redhat.com>
10768
10769 * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
10770 Fixes PR java/1413
10771
107722001-08-28 Alexandre Petit-Bianco <apbianco@redhat.com>
10773
10774 * lex.c (java_lex): new local found_hex_digits. Set and then used
10775 in test to reject invalid hexadecimal numbers.
10776 * parse.y (java_complete_tree): Prevent unwanted cast with
10777 initialized floating point finals.
10778 (patch_binop): Emit a warning when detecting a division by zero,
10779 mark result not constant, don't simplify non integer division.
10780
107812001-08-28 Per Bothner <per@bothner.com>
10782
10783 * jcf-write.c (generate_bytecode_insns): For increments and
10784 decrements just recurse to push constant. Improvement on Mark's patch.
10785
107862001-08-28 Mark Mitchell <mark@codesourcery.com>
10787
10788 * jcf-write.c (generate_bytecode_insns): Generate an integer to
10789 real conversion for increments and decrements of reals.
10790
107912001-08-27 Alexandre Petit-Bianco <apbianco@redhat.com>
10792
10793 * parse.y (resolve_qualified_expression_name): Handle unresolved
10794 qualified expressions, prevent numerical qualifiers, fixed typo.
10795 Fixes PR java/4141
10796
107972001-08-24 Alexandre Petit-Bianco <apbianco@redhat.com>
10798
10799 * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
10800 don't report anything but deprecated class when marked so. Handle
10801 VAR_DECL.
10802 (patch_method_invocation): Check deprecation on methods and types.
10803 (patch_binop): code becomes an enum tree_code, added default: to
10804 switch to handle that. Detect division by zero, try to fold and
10805 return before using a subroutine.
10806
108072001-08-23 Alexandre Petit-Bianco <apbianco@redhat.com>
10808
10809 * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
10810 file smaller than 4 bytes.
10811 * parse.y (check_inner_circular_reference): New function.
10812 (check_circular_reference): Likewise.
10813 (array_initializer:): Accept {,}.
10814 (java_check_circular_reference): Rewritten using
10815 check_circular_reference and check_inner_circular_reference.
10816 (java_complete_expand_method): Unconditionally save and restore
10817 the unpurged exception list.
10818 (build_dot_class_method_invocation): Unmangle signature parameter.
10819
108202001-08-21 Tom Tromey <tromey@redhat.com>
10821
10822 * decl.c (init_decl_processing): Add `throws' field to method
10823 descriptor.
10824 * class.c (make_method_value): Compute `throws' field for method.
10825
108262001-08-22 Alexandre Petit-Bianco <apbianco@redhat.com>
10827
10828 * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
10829 circularity is detected.
10830 (ctors_unchecked_throws_clause_p): Fixed leading comment.
10831
108322001-08-17 Richard Henderson <rth@redhat.com>
10833
10834 * class.c (emit_register_classes): Add align parameter to
10835 call to assemble_integer.
10836
108372001-08-16 Alexandre Petit-Bianco <apbianco@redhat.com>
10838
10839 * jcf-parse.c (load_class): New locals saved and class_loaded. If
10840 loading a class_or_name fails, try considering an innerclass name
10841 and load the enclosing context.
10842 * parse.y (resolve_inner_class): New function.
10843 (find_as_inner_class): Added leading comment.
10844 (register_incomplete_type): Keep the current context as enclosing
10845 context for JDEP_FIELD dependencies.
10846 (do_resolve_class): Locals new_class_decl and super initialized to
10847 NULL. Call resolve_inner_class, explore the enclosing context
10848 superclass if necessary.
10849 Fixes PR java/4007
10850
108512001-08-16 Tom Tromey <tromey@redhat.com>
10852
10853 * jcf-dump.c (main): Updated for change to jcf_path_seal.
10854 * gjavah.c (main): Updated for change to jcf_path_seal.
10855 * lang.c (version_flag): New global.
10856 (java_decode_option): Recognize `-version'.
10857 (java_init): Update for change to jcf_path_seal.
10858 * jcf.h (jcf_path_seal): Added `print' argument.
10859 * jcf-path.c (jcf_path_seal): Added `print' argument.
10860
108612001-08-13 Zack Weinberg <zackw@panix.com>
10862
10863 * Make-lang.in (java/decl.o): Update dependencies.
10864 * decl.c: Include libfuncs.h, don't include toplev.h.
10865
108662001-08-12 Alexandre Petit-Bianco <apbianco@redhat.com>
10867
10868 * decl.c (init_decl_processing): exception_type_node,
10869 class_not_found_type_node, and no_class_def_found_type_node
10870 initialized. predef_filenames augmented accordingly.
10871 instinit_identifier_node initialized.
10872 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
10873 * java-tree.h (enum java_tree_index): New entries
10874 JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
10875 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
10876 (exception_type_node): New macro.
10877 (class_not_found_type_node): Likewise.
10878 (no_class_def_found_type_node): Likewise.
10879 (instinit_identifier_node): Likewise.
10880 (PREDEF_FILENAMES_SIZE): Adjusted.
10881 (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
10882 (struct lang_type): Fixed typo in bitfield name.
10883 (DECL_INSTINIT_P): New macro.
10884 (ID_INSTINIT_P): Likewise.
10885 * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
10886 attribute.
10887 * parse.y (encapsulate_with_try_catch): New function.
10888 (generate_instinit): Likewise.
10889 (build_instinit_invocation): Likewise.
10890 (ctors_unchecked_throws_clause_p): Likewise.
10891 (add_instance_initializer): Deleted.
10892 (build_instance_initializer): Likewise.
10893 (in_instance_initializer): Likewise.
10894 (check_method_redefinition): instinit$ not to be verified.
10895 (java_complete_expand_methods): Generate instinit$, simplified code.
10896 (build_dot_class_method): Eliminated unnecessary locals. Use
10897 encapsulate_with_try_catch, removed unnecessary code.
10898 (fix_constructors): New local iii. Use build_instinit_invocation.
10899 (patch_method_invocation): Added comment.
10900 (maybe_use_access_method): Don't consider instinit$.
10901 (find_applicable_accessible_methods_list): Shorten the search for
10902 instinit$ too.
10903 (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
10904 (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
10905 (patch_throw_statement): Likewise. Fixed typo.
10906
109072001-08-12 David Edelsohn <edelsohn@gnu.org>
10908
10909 Revert:
10910 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10911 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10912 ASM_FINAL_SPEC.
10913 (lang_specific_pre_link): Use set_input to set input_filename.
10914 Append `main' here.
10915 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10916 (main): Fix definition.
10917 Strip `main' from classname.
10918 Fixes PR java/227.
10919
109202001-08-11 Zack Weinberg <zackw@panix.com>
10921
10922 * lex.h: Don't include setjmp.h. Don't define
10923 SET_FLOAT_HANDLER or prototype set_float_handler.
10924
109252001-08-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10926
10927 * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
10928 `poplevel' in the right order.
10929
109302001-08-09 Richard Henderson <rth@redhat.com>
10931
10932 * Make-lang.in (class.o): Depend on TARGET_H.
10933 * class.c (emit_register_classes): Use target hooks instead of
10934 assemble_constructor and assemble_destructor.
10935
109362001-08-08 Alexandre Petit-Bianco <apbianco@redhat.com>
10937
10938 * check-init.c (flags.h): Include
10939 (check_init): Don't report uninitialized static class
10940 initialization flags, don't free bit index when doing static class
10941 initialization optimization.
10942 (check_for_initialization): Return type changed to `unsigned int.'
10943 (attach_initialized_static_class): New function.
10944 * class.c (add_method_1): Create the initialized static class
10945 table if necessary.
10946 (finish_class): Always emit deferred inline methods.
10947 * decl.c (emit_init_test_initialization): Moved to expr.c
10948 (complete_start_java_method): Don't traverse
10949 DECL_FUNCTION_INIT_TEST_TABLE.
10950 (lang_mark_tree): Mark hash tables in function decls.
10951 * expr.c (emit_init_test_initialization): Moved from decl.c.
10952 (build_class_init): Create LAG_DECL_SPECIFIC for the static class
10953 initialization flag, set DECL_CONTEXT and
10954 LOCAL_CLASS_INITIALIZATION_FLAG.
10955 (java_lang_expand_expr): Emit initialization code for static class
10956 initialized flags when entering block, if necessary.
10957 * gcj.texi (-fno-optimize-static-class-initialization): Documented.
10958 * java-tree.h (flag_optimize_sci): New global variable declaration.
10959 (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
10960 (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
10961 (LOCAL_FINAL_P): Fixed typo in comment.
10962 (FINAL_VARIABLE_P): Likewise.
10963 (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
10964 (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
10965 (struct lang_decl): New fields `ict', `smic' and `cif.'
10966 (check_for_initialization): New returned value for global.
10967 (attach_initialized_static_class): New global function.
10968 (STATIC_CLASS_INIT_OPT_P): New macro.
10969 * lang-options.h (-fno-optimize-static-class-initialization): New flag.
10970 * lang.c (java_decode_option): Handle
10971 `-fno-optimize-static-class-initialization'
10972 * parse.y (start_complete_expand_method): New function.
10973 (java_expand_method_bodies): Likewise.
10974 (attach_init_test_initialization_flags): Likewise.
10975 (adjust_init_test_initialization): Likewise.
10976 (emit_test_initialization): Likewise.
10977 (java_complete_expand_methods): Nullify abstract and native method
10978 bodies.
10979 (java_complete_expand_method): New locals `fbody', `block_body'
10980 and `exception_copy.' Reorganized: directly return on empty method
10981 bodies, call `start_complete_expand_method', remember definitely
10982 initialized static class in function, don't expand method bodies.
10983 (java_expand_classes): Call `java_expand_method_bodies' before
10984 `finish_class' when compiling to native.
10985 (resolve_expression_name): Use `orig' after building outer class
10986 field access.
10987 (patch_invoke): Remember static method invocations.
10988
109892001-08-06 Richard Henderson <rth@redhat.com>
10990
10991 * class.c (emit_register_classes): Pass a symbol_ref and priority
10992 to assemble_constructor.
10993
109942001-08-02 Alexandre Petit-Bianco <apbianco@redhat.com>
10995
10996 * java-tree.h (all_class_filename): New macro.
10997 (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
10998 (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
10999 newly created IDENTIFIER_NODE to `all_class_filename.'
11000
110012001-08-01 Jeff Sturm <jsturm@one-point.com>
11002
11003 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
11004 Use ggc_add_tree_root to register roots.
11005
110062001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
11007
11008 * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
11009 second operand calling check_init.
11010 * decl.c (complete_start_java_method): Swaped second and third
11011 arguments while creating WITH_CLEANUP_EXPR node.
11012 * jcf-write.c (generate_bytecode_insns): Use second operand
11013 instead of third when handling WITH_CLEANUP_EXPR.
11014 * parse.y (java_complete_lhs): Expand second operand of
11015 WITH_CLEANUP_EXPR nodes.
11016 (patch_synchronized_statement): Swaped second and third arguments
11017 while creating WITH_CLEANUP_EXPR node.
11018
110192001-07-18 Alexandre Petit-Bianco <apbianco@redhat.com>
11020
11021 * parse.y (create_interface): Avoid cyclic inheritance report when
11022 syntax error encountered during class definition.
11023 Fixes PR java/2956
11024
110252001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11026
11027 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
11028 ASM_FINAL_SPEC.
11029 (lang_specific_pre_link): Use set_input to set input_filename.
11030 Append `main' here.
11031 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
11032 (main): Fix definition.
11033 Strip `main' from classname.
11034 Fixes PR java/227.
11035
110362001-07-18 Tom Tromey <tromey@redhat.com>
11037
11038 For PR java/2812:
11039 * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
11040 * lex.c (java_new_lexer): Use ICONV_CONST.
11041 (java_read_char): Likewise.
11042 * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
11043 (jv-scan$(exeext)): Likewise.
11044
110452001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
11046
11047 * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
11048 * parse.y (check_class_interface_creation): Allow `private' if the
11049 enclosing is not an interface.
11050 (create_interface): Interface tagged public if the enclosing
11051 context is an interface.
11052 (create_class): Class tagged public if the enclosing context
11053 is an interface.
11054 Fixes PR java/2959
11055
110562001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
11057
11058 * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
11059 Fixes PR java/2665
11060
110612001-07-14 Tim Josling <tej@melbpc.org.au>
11062
11063 * check-init.c (check_init): Remove references to EXPON_EXPR.
11064
110652001-07-13 Alexandre Petit-Bianco <apbianco@redhat.com>
11066
11067 * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
11068 TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
11069 Fixes PR java/3602
11070
110712001-07-13 Tom Tromey <tromey@redhat.com>
11072
11073 * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
11074 invocation.
11075
110762001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
11077
11078 * parse.y (patch_method_invocation): Don't override primary if one
11079 is already provided, but let this$<n> be built. Fixed comment.
11080
110812001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
11082
11083 * parse.y (empty_statement:): Report empty statement error only
11084 when found at class declaration level.
11085 Fixes PR java/3635
11086
110872001-07-12 Tom Tromey <tromey@redhat.com>
11088
11089 * expr.c (expand_load_internal): New function.
11090 (LOAD_INTERNAL): Use it.
11091
110922001-07-11 Alexandre Petit-Bianco <apbianco@redhat.com>
11093
11094 * parse.y (verify_constructor_super): Compare anonymous class ctor
11095 args with `valid_method_invocation_conversion_p.'
11096 Fixes PR java/3285
11097
110982001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
11099
11100 * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
11101 `-fsyntax-only.' Fixes PR java/3248
11102
111032001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
11104
11105 * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
11106
111072001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
11108
11109 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
11110 current function is static. Fixes PR java/1970
11111
111122001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11113
11114 * parse.y (patch_method_invocation): Add enclosing context to ctor
11115 calls if necessary. Fixes PR java/2953
11116
111172001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11118
11119 * parse.y (resolve_package): Abort if qualified expression member
11120 isn't right.
11121 (qualify_ambiguous_name): Don't qualify as type if `this' in use.
11122 Fixes PR java/1391
11123
111242001-07-07 Zack Weinberg <zackw@stanford.edu>
11125
11126 * verify.c: Don't use // comments.
11127
111282001-07-05 Tom Tromey <tromey@redhat.com>
11129
11130 * lang.c (flag_assume_compiled): Removed.
11131 * java-tree.h (flag_assume_compiled): Removed.
11132 * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
11133 -fhash-synchronization, -fuse-divide-subroutine,
11134 -fcheck-references, -femit-class-file, -femit-class-files,
11135 -fassume-compiled. Updated --encoding information. Changed
11136 -foutput-class-dir to `-d'.
11137
111382001-07-04 Daniel Berlin <dan@cgsoftware.com>
11139
11140 * jcf-parse.c (parse_class_file): Add lineno parameter to
11141 debug_start_source_file call.
11142
111432001-07-04 Joseph S. Myers <jsm28@cam.ac.uk>
11144
11145 * gcj.texi: Use gpl.texi.
11146 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
11147 dependencies and use doc/include in search path.
11148
111492001-07-03 Jeff Sturm <jsturm@one-point.com>
11150
11151 * parse.y (fix_constructors): Test if a CALL_EXPR invokes
11152 `this'. If so, don't build instance initializers.
11153
111542001-07-03 Alexandre Petit-Bianco <apbianco@redhat.com>
11155
11156 * parse.y (resolve_expression_name): Improved error message for
11157 inner class cases. Fixes PR java/1958
11158
111592001-06-28 Gabriel Dos Reis <gdr@codesourcery.com>
11160
11161 * lang.c: #include diagnostic.h
11162 (lang_print_error): Add a `diagnostic_context *' parameter.
11163 (java_dummy_print): Likewise.
11164 * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
11165
111662001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
11167
11168 * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
11169 * jcf.h (typedef struct JCF): New bitfield `finished.'
11170 (JCF_FINISH): Set `finished.'
11171 (JCF_ZERO): Reset `finished.'
11172 Fixes PR java/2633
11173
111742001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
11175
11176 * parse.y (class_body_declaration:): Don't install empty instance
11177 initializers.
11178 Fixes PR java/1314
11179
111802001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
11181
11182 * class.c (set_super_info): Call `set_class_decl_access_flags.'
11183 (set_class_decl_access_flags): New function.
11184 * java-tree.h (set_class_decl_access_flags): New prototype.
11185 * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
11186 (parse_class_file): New local `decl_max_locals.' Take wide types
11187 into account to compute DECL_MAX_LOCALS.
11188 * parse.y (type_import_on_demand_declaration:): Ignore duplicate
11189 imports on demand.
11190
111912001-06-22 Jan van Male <jan.vanmale@fenk.wau.nl>
11192
11193 * zipfile.h: Use GCC_JCF_H instead of JCF_H.
11194
111952001-06-20 Alexandre Petit-Bianco <apbianco@redhat.com>
11196
11197 * class.c (java_hash_tree_node): Fixed indentation in leading comment.
11198 * parse.y (do_resolve_class): Moved comments out to leading comment
11199 section. Removed local `start', New local `_ht' and
11200 `circularity_hash.' Record `enclosing' in hash table and search
11201 it to detect circularity. Use `enclosing' as an argument to
11202 `lookup_cl.' Free the hash table when done.
11203
112042001-06-19 Tom Tromey <tromey@redhat.com>
11205
11206 * lex.c (java_read_char): Disallow invalid and overlong
11207 sequences. Fixes PR java/2319.
11208
112092001-06-05 Jeff Sturm <jsturm@one-point.com>
11210
11211 * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
11212
112132001-06-04 Alexandre Petit-Bianco <apbianco@redhat.com>
11214
11215 * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
11216 arguments accordingly.
11217
112182001-06-02 Joseph S. Myers <jsm28@cam.ac.uk>
11219
11220 * gcj.texi: Move contents to just after title page.
11221
112222001-06-01 Alexandre Petit-Bianco <apbianco@redhat.com>
11223
11224 * parse.y (type_literals:): Use `build_incomplete_class_ref' with
11225 builtin type.
11226 (patch_incomplete_class_ref): Build the class ref, build the class
11227 init if necessary, complete the tree.
11228 Fixes PR java/2605
11229
112302001-05-31 Alexandre Petit-Bianco <apbianco@redhat.com>
11231
11232 * parse.y (lookup_field_wrapper): Test `name' code.
11233 (resolve_qualified_expression_name): Test `qual_wfl' code.
11234 (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
11235 handle `qual_wfl' by code.
11236 (maybe_build_primttype_type_ref): Test `wfl' code.
11237
112382001-05-23 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
11239
11240 * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
11241 fdl.texi.
11242 (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls. Create
11243 the dvi file in the java directory.
11244
112452001-05-25 Sam TH <sam@uchicago.edu>
11246
11247 * gen-table.pl javaop.h jcf.h lex.h,
11248 parse.h: Fix header include guards.
11249
112502001-05-23 Joseph S. Myers <jsm28@cam.ac.uk>
11251
11252 * jv-scan.c (version): Update copyright year.
11253
112542001-05-21 Per Bothner <per@bothner.com>
11255
11256 * jcf-parse.c (read_class): If class is from .class or .zip file
11257 and it's already been read, don't push/pop parser context.
11258
112592001-05-18 Per Bothner <per@bothner.com>
11260
11261 * jvspec.c (lang_specific_pre_link): Re-arrange the linker
11262 command line so the jvgenmain-generated main program comes first.
11263
112642001-05-15 Tom Tromey <tromey@redhat.com>
11265
11266 * class.c (build_utf8_ref): Don't generate identifier based on
11267 utf8const contents.
11268
112692001-05-12 Richard Henderson <rth@redhat.com>
11270
11271 * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
11272 * expr.c (java_lang_expand_expr): Expand it.
11273 (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
11274 calling build_exception_object_ref.
11275 * parse.y (catch_clause_parameter): Likewise.
11276 (build_dot_class_method): Likewise.
11277 (try_reference_assignconv): Likewise.
11278 * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
11279 * jcf-write.c (generate_bytecode_insns): Likewise.
11280
112812001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
11282
11283 * parse.y (build_unresolved_array_type): Set
11284 EXPR_WFL_QUALIFICATION on the newly created wfl.
11285 Fixes PR java/2538. Fixes PR java/2535.
11286
112872001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
11288
11289 * parse.y (fix_constructors): Removed unnecessary assignment to
11290 local. Moved assignment to `this$<n>', fixed comments and
11291 indentation.
11292 (build_wfl_wrap): Fixed indentation.
11293 Fixes PR java/2598, java/2579 and java/2658.
11294
112952001-05-03 Mo DeJong <mdejong@redhat.com>
11296
11297 * lex.c (java_new_lexer): Call iconv_close on temp handle used to
11298 check for byte swap.
11299
113002000-05-02 Jeff Sturm <jsturm@one-point.com>
11301
11302 * expr.c (build_class_init): Move MODIFY_EXPR
11303 outside of COND_EXPR. Remove variable `call'.
11304
113052001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11306
11307 * decl.c: NULL_PTR -> NULL.
11308 * jcf-write.c: Likewise.
11309
113102001-05-01 Tom Tromey <tromey@redhat.com>
11311
11312 * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
11313 (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
11314 * gcj.texi: Updated copyright text. Include fdl.texi.
11315 (Top): Link to new node.
11316
113172001-05-01 Per Bothner <per@bothner.com>
11318
11319 * parse.h (REGISTER_IMPORT): Use tree_cons instead of chainon.
11320
113212001-05-01 Per Bothner <per@bothner.com>
11322
11323 * parse.y (java_pop_parser_context): The TREE_VALUE of a link in the
11324 import_list contains the name, not the TREE_PURPOSE.
11325
113262001-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11327
11328 * jcf-io.c (read_zip_member): Cast to long in comparison with
11329 signed value.
11330
11331 * jvspec.c (lang_specific_driver): Initialize variables.
11332
11333 * mangle.c (find_compression_record_match): Likewise.
11334
11335 * typeck.c (build_null_signature): Provide static prototype. Mark
11336 parameter with ATTRIBUTE_UNUSED.
11337
11338 * verify.c (verify_jvm_instructions): Initialize variable.
11339
113402001-04-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
11341
11342 * parse.y (do_resolve_class): Check for cyclic inheritance during
11343 inner class resolution.
11344
113452001-04-27 Per Bothner <per@bothner.com>
11346
11347 * parse.y (java_expand_classes): Don't change ctxp_for_generation
11348 while iterating, since that could cause gc to lose stuff.
11349
113502001-04-26 Per Bothner <per@bothner.com>
11351
11352 Fix method search wrt scope of inner classes to match JLS2.
11353 * typeck.c (build_null_signature): New static function.
11354 (has_method): New function. Uses build_null_signature and lookup_do.
11355 * java-tree.h (has_method): New declaration.
11356 * parse.y (find_applicable_accessible_methods_list): Do not search
11357 context of inner classes here.
11358 (patch_method_invocation): Search scope, ie. current and outer clases,
11359 for method matching simple name, to find class.
11360
113612001-04-26 Per Bothner <per@bothner.com>
11362
11363 * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
11364 Fix thinko: If a single case, use if_icmpeq, not ifeq.
11365
11366 * constants.c (find_methodref_with_class_index): New function.
11367 (find_methodref_index): Use find_methodref_with_class_index.
11368 * java-tree.h (find_methodref_with_class_index): New declaration.
11369 * jcf-write.c (generate_bytecode_insns case CALL_EXPR): Don't change
11370 DECL_CONTEXT, instead use new find_methodref_with_class_index function.
11371 If context changed from interface to class, don't use invokeinterface.
11372
113732001-04-25 Per Bothner <per@bothner.com>
11374
11375 * verify.c (verify_jvm_instructions): For field instructions,
11376 check that field index is valid. For invoke instructions, check that
11377 method index is valid.
11378
113792001-04-25 Alexandre Oliva <aoliva@redhat.com>
11380
11381 * config-lang.in (target_libs): Copy from $libgcj_saved.
11382
113832001-04-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
11384
11385 * decl.c (init_decl_processing): Add new class "protectionDomain"
11386 field.
11387 * class.c (make_class_data): Set initial value for "protectionDomain".
11388
113892001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11390
11391 * jvspec.c (lang_specific_driver): Fix memory allocation
11392 deficit, by using concat in lieu of xmalloc/sprintf.
11393
113942001-04-20 Per Bothner <per@bothner.com>
11395
11396 Fixes to compile multiple .class files at once.
11397 * decl.c (init_decl_processing): Don't set CLASS_LOADED_P.
11398 * java-tree.h (CLASS_PARSED_P): New macro.
11399 (CLASS_LOADED_P): Re-define to use TYPE_SIZE and CLASS_PARSED_P.
11400 * jcf-parse.c (jcf_parse_source): Inline into read_class.
11401 (read_class): Avoid some code duplication.
11402 Don't call JCF_FINISH for a .class file - might be needed later.
11403 (jcf_parse): Don't call layout_class here. Check/set CLASS_PARSED_P
11404 rather than CLASS_LOADED_P, since latter implies class laid out.
11405 (yyparse): Do layout_class and JCF_FINISh here instead, in pass 2.
11406 * parse.y: Don't need to set CLASS_LOADED_P for array types.
11407
114082001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11409
11410 * Make-lang.in (java/boehm.o): Depend on toplev.h.
11411
11412 * boehm.c: Include toplev.h.
11413
114142001-04-06 Tom Tromey <tromey@redhat.com>
11415 Alexandre Petit-Bianco <apbianco@redhat.com>
11416
11417 Fix for PR gcj/1404 and PR gcj/2332:
11418 * parse.y (build_array_from_name): If we use the type_wfl then
11419 accumulate dimensions from the original type as well.
11420 (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
11421
114222001-04-06 Tom Tromey <tromey@redhat.com>
11423
11424 * parse.y (analyze_clinit_body): Return true if the second operand
11425 of a METHOD_EXPR is nonzero.
11426
114272001-04-06 Tom Tromey <tromey@redhat.com>
11428
11429 * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
11430 directory.
11431 ($(srcdir)/java/parse.c): Likewise.
11432
114332001-04-05 Alexandre Petit-Bianco <apbianco@redhat.com>
11434
11435 * gcj.texi: Use `which-gcj' instead of `which-g77.'
11436 (version-gcc): Initialized.
11437 (which-gcj): Likewise.
11438
114392001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
11440
11441 * java-tree.h (struct lang_decl): New macro
11442 `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
11443 * parse.y (build_instance_initializer): New function.
11444 (add_instance_initializer): Use it.
11445 (java_fix_constructors): Set `current_class' before fix pass.
11446 (fix_constructors): Just return if already fixed. Move `super()'
11447 invocation ahead. Use `build_instance_initializer.'
11448 Fixes PR java/1315.
11449
114502001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
11451
11452 * parse.y (resolve_qualified_expression_name): Pass field's
11453 DECL_CONTEXT to `not_accessible_p.'
11454 (not_accessible_p): Changed parameters order in `inherits_from_p'
11455 invocation.
11456
114572001-03-27 Andrew Haley <aph@cambridge.redhat.com>
11458
11459 * lang-options.h: Add flag_check_references.
11460
114612001-04-04 Per Bothner <per@bothner.com>
11462
11463 * java-tree.h (CONSTANT_VALUE_P): New macro.
11464 * jcf-write.c (generate_classfile): Use CONSTANT_VALUE_P.
11465 * parse.y (maybe_build_class_init_for_field): New static function.
11466 (resolve_expression_name, resolve_field_access): Use
11467 maybe_build_class_init_for_field instead of build_class_init
11468 This does not do the init if the field is compile-time-constant.
11469 (resolve_field_access): Simplify.
11470
11471 * parse.y (fold_constant_for_init): Merge test into switch.
11472
114732001-04-03 Zack Weinberg <zackw@stanford.edu>
11474
11475 * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
11476 on gansidecl.h.
11477 * buffer.c, jvgenmain.c: Don't include gansidecl.h.
11478
114792001-04-02 Zack Weinberg <zackw@stanford.edu>
11480
11481 * expr.c (pop_type_0): Save the result of the first
11482 lang_printable_name call in a scratch buffer, so it
11483 won't be clobbered by the second call.
11484
114852001-03-30 Alexandre Petit-Bianco <apbianco@redhat.com>
11486
11487 * parse-scan.y (array_type:): Rewritten.
11488 (type_declaration:): `empty_statement' replaces `SC_TK.'
11489 (class_member_declaration:): `empty statement' added.
11490 (method_body:): Simplified.
11491 (static_initializer:): Likewise.
11492 (primary_no_new_array:): Use `type_literals.'
11493 (type_literals:): New rule.
11494 (dims:): Set and update `bracket_count.'
11495 Fixes PR java/1074. Fixes PR java/2412.
11496
114972001-03-28 Hans Boehm <boehm@acm.org>
11498
11499 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
11500 (get_boehm_type_descriptor): Set type on returned value to be a
11501 pointer length integer.
11502
115032001-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11504
11505 * expr.c (pop_type_0): Call `concat' rather than building the
11506 string manually.
11507 (pop_type): Add format specifier in call to `error'.
11508
11509 * parse.y (patch_method_invocation): Avoid casting away
11510 const-ness.
11511
115122001-03-28 Jeffrey Oldham <oldham@codesourcery.com>
11513
11514 * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
11515
115162001-03-28 Richard Henderson <rth@redhat.com>
11517
11518 IA-64 ABI Exception Handling:
11519 * Make-lang.in (except.o): Don't depend on eh-common.h.
11520 * check-init.c (check_init): Handle EXC_PTR_EXPR.
11521 * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
11522 [soft_exceptioninfo_call_node]: Remove.
11523 [eh_personality_libfunc, lang_eh_runtime_type]: New.
11524 (end_java_method): No emit_handlers.
11525 * except.c (java_set_exception_lang_code): Remove.
11526 (method_init_exceptions): Don't call it.
11527 (prepare_eh_table_type): No CATCH_ALL_TYPE.
11528 (build_exception_object_ref): New.
11529 (expand_end_java_handler): Update for except.h name changes.
11530 (emit_handlers, expand_resume_after_catch): Remove.
11531 * expr.c (java_lang_expand_expr): Update for except.h name changes.
11532 (process_jvm_instruction): Use build_exception_object_ref.
11533 * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
11534 (soft_exceptioninfo_call_node): Remove.
11535 (build_exception_object_ref): Declare.
11536 * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
11537 soft_exceptioninfo_call_node. Move processing ...
11538 [EXC_PTR_EXPR]: ... here.
11539 * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
11540 * parse.y (catch_clause_parameter): Use build_exception_object_ref.
11541 (source_end_java_method): No java_set_exception_lang_code or
11542 emit_handlers.
11543 (build_dot_class_method): Use build_exception_object_ref.
11544 (try_reference_assignconv): Check EXC_PTR_EXPR not
11545 soft_exceptioninfo_call_node.
11546
115472001-03-28 Richard Henderson <rth@redhat.com>
11548
11549 * java-tree.h (throw_node): Define as a single member of
11550 java_global_trees instead of a separate array.
11551 (JTI_THROW_NODE): New.
11552 * decl.c (throw_node): Don't declare.
11553 (init_decl_processing): Init a scalar throw_node.
11554 Don't register it for gc.
11555 * check-init.c (check_init): Reference scalar throw_node.
11556 * expr.c (build_java_athrow): Likewise.
11557 * jcf-write.c (generate_bytecode_insns): Likewise.
11558 * parse.h (BUILD_THROW): Likewise.
11559
115602001-03-28 Richard Henderson <rth@redhat.com>
11561
11562 * decl.c (end_java_method): Do not save and restore
11563 flag_non_call_exceptions.
11564 * parse.y (source_end_java_method): Likewise.
11565 * lang.c (flag_exceptions): Don't declare.
11566 (java_init_options): Set flag_non_call_exceptions. Set
11567 flag_exceptions here ...
11568 (java_init): ... not here.
11569
115702001-03-27 Richard Henderson <rth@redhat.com>
11571
11572 * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
11573 exceptions_via_longjmp.
11574
11575 * lang.c (flag_new_exceptions): Don't declare it.
11576 (java_init_options): Or set it.
11577
115782001-03-27 Richard Henderson <rth@redhat.com>
11579
11580 * decl.c (end_java_method): Rename asynchronous_exceptions to
11581 flag_non_call_exceptions.
11582 * parse.y (source_end_java_method): Likewise.
11583
115842001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11585
11586 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
11587
115882001-03-26 Mark Mitchell <mark@codesourcery.com>
11589
11590 * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
11591
115922001-03-26 Alexandre Petit-Bianco <apbianco@redhat.com>
11593
11594 * parse.y (find_as_inner_class): Follow current package
11595 indications not to mistakingly load an unrelated class.
11596
115972001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11598
11599 * constants.c (PUTN): Use memcpy, not bcopy.
11600
11601 * lex.c (java_read_char): Use memmove, not bcopy.
11602
11603 * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
11604
116052001-03-23 Per Bothner <per@bothner.com>
11606
11607 * verify.c (verify_jvm_instructions): Replace 3 pop_type by POP_TYPE
11608 macro for better error pin-pointing.
11609 * java-tree.h: Fix typo in comment.
11610
11611 * jcf-write.c (generate_bytecode_insns): Changes to TRY_FINALLY_EXPR.
11612 Don't include jsr/goto in exception range.
11613 Check if start and end of exception range are the same (also TRY_EXPR).
11614 Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
11615 However, do emit the following goto even if try_block is empty.
11616 Defer freeing exception_decl until after the finalizer, to make
11617 sure the local isn't reused in the finalizer. Fixes PR java/1208.
11618
11619 * parse.y (java_complete_lhs): If the try-clause is empty, just
11620 return the finally-clause and vice versa.
11621
116222001-03-23 Alexandre Petit-Bianco <apbianco@redhat.com>
11623
11624 * gcj.texi (Input Options): documented the check for attribute
11625 `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
11626 * java-tree.h (flag_force_classes_archive_check): Declared extern.
11627 * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
11628 (jcf_parse): Check for the right classes archive if necessary.
11629 * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
11630 (jcf_parse_fields): Fixed indentation.
11631 * jcf-write.c (append_gcj_attribute): New function.
11632 (generate_classfile): Compute the attribute count, invoke
11633 `append_gcj_attribute'.
11634 * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
11635 turned into bit-fields. New bit-field `right_zip.'
11636 (JCF_ZERO): Set `right_zip' to zero.
11637 * lang-options.h (-fforce-classes-archive-check): Added flag.
11638 * lang.c (flag_force_classes_archive_check): New flag.
11639 (lang_f_options): New entry `force-classes-archive-check.'
11640 Fixes PR java/1213.
11641
116422001-02-07 Andrew Haley <aph@redhat.com>
11643
11644 * gcj.texi (Configure-time Options): Add -fcheck-references.
11645 * expr.c (build_java_indirect_ref): New function.
11646 (java_check_reference): New function.
11647 (build_java_array_length_access): Use build_java_indirect_ref to
11648 check for null references.
11649 (build_java_arrayaccess): Likewise.
11650 (build_get_class): Likewise.
11651 (build_field_ref): Likewise.
11652 (invoke_build_dtable): Likewise.
11653 (build_invokeinterface): Likewise.
11654 * lang.c (lang_f_options): Add flag_check_references.
11655 * jvspec.c (jvgenmain_spec): Add flag_check_references.
11656 * java-tree.h (flag_check_references): New variable.
11657 * lang.c (flag_check_references): Likewise.
11658 * parse.y (patch_invoke): Use java_check_reference.
11659 (patch_assignment): Allow for extra nesting in
11660 _Jv_CheckArrayStore.
11661
116622001-03-23 Bryce McKinlay <bryce@albatross.co.nz>
11663
11664 * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
11665 * lex.c (cxx_keywords): Likewise.
11666
116672001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
11668
11669 * parse.y (qualify_ambiguous_name): Broaden `length'
11670 recognition. Help MODIFY_EXPR be resolved as expression names.
11671 Fixes PR java/2066. Fixes PR java/2400.
11672
116732001-03-21 Bryce McKinlay <bryce@albatross.co.nz>
11674
11675 * gjavah.c (process_file): Mark interface definitions with
11676 "__attribute__ ((java_interface))".
11677
116782001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
11679
11680 * class.c (layout_class): Fixed push_super_field's second
11681 argument. Fixes PR java/2333.
11682 (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
11683 too early to lay innerclasses out.
11684
116852001-03-20 Tom Tromey <tromey@redhat.com>
11686 Alexandre Petit-Bianco <apbianco@redhat.com>
11687
11688 * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
11689 inside an array reference. Insertion of the array store check
11690 rewritten. Fixes PR java/2299.
11691
116922001-03-20 Tom Tromey <tromey@redhat.com>
11693
11694 * lex.c (java_read_unicode): Only accept leading `u's.
11695
116962001-03-20 Tom Tromey <tromey@redhat.com>
11697
11698 * jcf-parse.c (read_class): Initialize `class'.
11699
117002001-03-20 Matt Kraai <kraai@alumni.carnegiemellon.edu>
11701
11702 * jcf_parse.c (jcf_parse): Eliminate unused variable.
11703
117042001-03-19 Mark Mitchell <mark@codesourcery.com>
11705
11706 * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
11707 (layout_class): Likewise.
11708 (layout_class_method): Likewise.
11709 (emit_register_classes): Likewise.
11710 * decl.c (builtin_function): Likewise.
11711 (give_name_to_locals): Likewise.
11712
117132001-03-19 Per Bothner <per@bothner.com>
11714
11715 * jcf-parse.c (load_inner_classes): Check CLASS_LOADED_P
11716 before trying to load an inner class.
11717
11718 Fixes to process to command-line .class files in two passes.
11719 * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P): New flags.
11720 (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P): Rename to ..
11721 (CLASS_FROM_CURRENTLY_COMPILED_P): ... because it is more general now.
11722 * class.c (is_compiled_class): Fix for renamed flag.
11723 * parse.y (maybe_create_class_interface_decl): Likewise.
11724 * jcf-parse.c (yyparse): Also set if compiling .class files.
11725 * jcf-parse.c (read_class); Read current_class.
11726 (jcf_parse): Make static.
11727 (load_inner_classes): New function, with code moved from jcf_parse,
11728 because we need to inner classes after the command-line files are read.
11729 (yyparse): Set finput to NULL when it doesn't need to be closed.
11730 Reduce use of main_jcf (basically only for archive) and
11731 use finput instead of main_jcf->read_state.
11732 Inline jcf_figure_file_type into yyparse.
11733 Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
11734 Defer load_inner_classes and parse_class_file to a second pass,
11735 after we've correctly mapped command-line .clas fiels to classes.
11736 (jcf_figure_file_type): Removed.
11737 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): Removed flags.
11738 (JCF_ZERO): Also clear zipd field.
11739 * zipfile.h: Conditionalize on JCF_H insread of JCF_ZIP.
11740
117412001-03-18 Matt Kraai <kraai@alumni.carnegiemellon.edu>
11742
11743 * jcf-parse.c (yyparse): Change ch from char * to char.
11744
117452001-03-19 Per Bothner <per@bothner.com>
11746
11747 * jvspec.c (lang_specific_driver): Check for .zip and .jar files.
11748 Add constructed filelist-file at end, following -xjava. Thus any .o
11749 and library files are not affected by the -xjava. Also wrap
11750 explicit @FILE with -xjava and -xnone.
11751
117522001-03-19 Andrew Haley <aph@cambridge.redhat.com>
11753
11754 * class.c (build_static_field_ref): Call make_decl_rtl() after
11755 setting the DECL_EXTERNAL flag.
11756
117572001-03-17 Per Bothner <per@bothner.com>
11758
11759 * decl.c (clear_binding_level): Fix initializer (broke 03-15).
11760
11761 * jcf-write.c (generate_bytecode_insns): Handle emitting iinc
11762 when result is is needed (target is STACK_TARGET).
11763
11764 * parse.h (JDEP_SOLV): Removed.
11765 * parse.y (register_incomplete_type): Use JDEP_TO_RESOLVE instead.
11766
11767 * parse.y (incomplete_class_list): Removed.
11768 (obtain_incomplete_type): Don't use or set incomplete_class_list.
11769 It doesn't work if resolve_class changes the name of an array type
11770 that is on the list and then someone else looks for the modified name.
11771 Also, seems liable to break when compiling multiple source files at
11772 once. So the simplest is to just remove incomplete_class_list -
11773 it is only a minor space win and it is not even clear it saves time.
11774
11775 * parse.y (resolve_class): Remove unneeded promote_type.
11776
117772001-03-15 Per Bothner <per@bothner.com>
11778
11779 * java-tree.h (BLOCK_IS_IMPLICIT): New flag.
11780 * parse.h (BLOCK_EXPR_ORIGIN): Removed macro.
11781 * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
11782 Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
11783
11784 * jcf-parse.c (yyparse): Set/reset input_filename for source file.
11785 * parse.y (java_expand_classes): Likewise.
11786
11787 * parse.y (expand_start_java_method): Was only called once and had a
11788 misleading name, so inline in caller java_complete_expand_method.
11789 (enter_a_block): Likewise inline in enter_block and remove.
11790
11791 Remove junk from when gcc/java was created (by copying from C/C++).
11792 * decl.c (keep_next_level_flag, keep_next_if_subblocks): Remove.
11793 (struct binding_level): Remove fields keep, keep_if_subblocks,
11794 more_cleanups_ok, have_cleanups (which have never been used).
11795 (pushlevel, poplevel): Remove related useless code.
11796
11797 * class.c (make_class_data): The class_dtable_decl (i.e. the
11798 vtable for Class) should be external, except when compiling Class.
11799
11800 * jvspec.c (lang_specific_driver): Fix -C handling.
11801 Check -save-temps to see if temp @FILE should be deleted.
11802 Follow-up to/fix for February 16 patch.
11803
11804 * verify.c (verify_jvm_instructions): Better error msgs for dup.
11805 (type_stack_dup): Remove no-longer neded error check.
11806
118072001-03-15 Bryce McKinlay <bryce@albatross.co.nz>
11808
11809 * mangle.c (mangle_record_type): Rename 'from_pointer' argument
11810 to 'for_pointer'. If this type is for a pointer (argument) mangling,
11811 don't surround the element with 'N..E' if the type name is
11812 unqualified.
11813
118142001-03-14 Mark Mitchell <mark@codesourcery.com>
11815
11816 * class.c (build_static_field_ref): Use COPY_DECL_RTL,
11817 DECL_RTL_SET_P, etc.
11818 (make_method_value): Likewise.
11819 (get_dispatch_table): Likewise.
11820
11821 * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
11822
118232001-03-07 Tom Tromey <tromey@redhat.com>
11824
11825 * config-lang.in (lang_requires): Define.
11826
118272001-03-07 Brad Lucier <lucier@math.purdue.edu>
11828
11829 * typeck.c (convert): Check flag_unsafe_math_optimizations,
11830 not flag_fast_math.
11831
118322001-03-05 Per Bothner <per@bothner.com>
11833
11834 Fix a problem where rest_of_decl_compilation applied to
11835 class_dtable_decl causes problems because it was done too early,
11836 before output file was opened.
11837 * decl.c (init_decl_processing): Remove init of class_dtable_decl.
11838 * class.c (class_dtable_decl): Add macro - element of class_roots.
11839 (make_class_data): Define class_dtable_decl.
11840 * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl): Removed.
11841
118422001-03-01 Zack Weinberg <zackw@stanford.edu>
11843
11844 * java/class.c, java/decl.c, java/java-tree.h: Replace all
11845 uses of 'boolean' with 'bool'.
11846
118472001-03-01 Zack Weinberg <zackw@stanford.edu>
11848
11849 * lang-specs.h: Add zero initializer for cpp_spec field to all
11850 array elements.
11851
118522001-02-16 Per Bothner <per@bothner.com>
11853
11854 Handle compiling multiple input files at once, and @FILE syntax.
11855 * gcj.texi: Updated documentation to match.
11856 * java-tree.h (flag_filelist_file, init_src_parse): New declarations.
11857 * jcf-parse.c (parse_source_file): Split into ...
11858 (parse_source_file_1): New function - and:
11859 (parse_source_file_2): New function.
11860 (yyparse): On -ffilelist-file, open and scan named file.
11861 On first pass over files, only do parse_source_file_1.
11862 A new second pass calls parse_source_file_2 for each file to compile.
11863 (init_jcf_parse): Call init_src_parse.
11864 * jvspec.c (INDIRECT_FILE_ARG): New flag.
11865 (lang_specific_driver): Support @FILELIST-FILE syntax, as well
11866 as multiple input file combined in one compilation.
11867 * lang-options.h: Add -ffilelist-file
11868 * lang.c (flag_filelist_file): New flag variable.
11869 (lang_f_options): Handle -ffilelist-file.
11870 * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
11871 * parse.h (struct parse_ctxt): Remove fields incomplete_class and
11872 gclass_list - use global fields of src_parse_roots instead.
11873 * parse.y (src_parse_roots): New array.
11874 (incomplete_class_list, gclass_list): New macros.
11875 (push_parser_context, java_pop_parser_context,
11876 java_parser_context_resume): Don't fiddle with deleted fields.
11877 (various): Use incomplete_class gclass_list and global macros
11878 instead of parse_ctxt fields - the lists are global.
11879 (init_src_parse): New function.
11880
118812001-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11882
11883 * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
11884
118852001-02-20 Alexandre Petit-Bianco <apbianco@redhat.com>
11886
11887 * parse.y (check_inner_class_access): Moved declaration of local
11888 `enclosing_decl_type' to the right location.
11889
118902001-02-19 Bryce McKinlay <bryce@albatross.co.nz>
11891
11892 * parse.y (parser_check_super_interface): Don't call
11893 check_pkg_class_access for an inner interface.
11894 (parser_check_super): Don't call check_pkg_class_access for inner
11895 class.
11896 (do_resolve_class): Simplify enclosing type loop. Don't call
11897 check_pkg_class_access if CL and DECL are not set.
11898 (find_in_imports_on_demand): Set DECL if class_type needed to be
11899 loaded. Don't call check_pkg_class_access for an inner class.
11900 (check_inner_class_access): Rewritten to implement member access
11901 rules as per spec 6.6.1.
11902 (check_pkg_class_access): Handle the empty package correctly.
11903 (in_same_package): New function. Determine if two classes are in the
11904 same package.
11905
119062001-02-18 Bryce McKinlay <bryce@albatross.co.nz>
11907
11908 * typeck.c (build_java_array_type): Don't try to poke a public `clone'
11909 method into array types.
11910 * parse.y (patch_method_invocation): Bypass access check on clone call
11911 to array instance.
11912
119132001-02-15 Alexandre Petit-Bianco <apbianco@redhat.com>
11914
11915 * expr.c (build_instanceof): Check for arrays when trying fold to
11916 false.
11917
119182001-02-15 Jim Meyering <meyering@lucent.com>
11919
11920 * Make-lang.in (java.install-common): Depend on `installdirs'.
11921 (java.install-info): Likewise.
11922
119232001-02-15 Bryce McKinlay <bryce@albatross.co.nz>
11924
11925 * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
11926
119272001-02-14 Tom Tromey <tromey@redhat.com>
11928 Alexandre Petit-Bianco <apbianco@cygnus.com>
11929
11930 Fix for PR java/1261.
11931 * typeck.c (build_java_array_type): Add public `clone' method to
11932 arrays.
11933 * parse.y (resolve_qualified_expression_name): Use current_class
11934 when checking for inaccessibility.
11935 (patch_method_invocation): Fixed error message when accessibility
11936 denied. Added `from_super' argument.
11937
119382001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
11939
11940 * parse.y (resolve_class): Don't build a fake decl. Use the one
11941 already built.
11942 * typeck.c (build_java_array_type): Build and assign decl to array
11943 type.
11944
119452001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
11946
11947 * parse.y (not_accessible_p): Changed leading comment. Added extra
11948 `where' argument. Use it to enforce protected access rules.
11949 (resolve_qualified_expression_name): Added extra argument to
11950 not_accessible_p.
11951 (patch_method_invocation): Use argument `primary' to provide
11952 not_accessible_p with an extra argument.
11953 (lookup_method_invoke): Added extra argument to not_accessible_p.
11954 (search_applicable_method_list): Likewise.
11955
119562001-02-13 Alexandre Petit-Bianco <apbianco@redhat.com>
11957
11958 * parse.y (resolve_qualified_expression_name): Try to resolve as
11959 an inner class access only if `decl' is a TYPE_DECL.
11960
119612001-02-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
11962
11963 * decl.c (classdollar_identifier_node): Initialize.
11964 * java-tree.h (enum java_tree_index): New entry
11965 `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
11966 (classdollar_identifier_node): New macro.
11967 (ID_CLASSDOLLAR_P): Likewise.
11968 * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
11969 (build_dot_class_method_invocation): Likewise.
11970 (find_applicable_accessible_methods_list): `class$' can't be
11971 inherited.
11972
119732001-02-09 Raja R Harinath <harinath@cs.umn.edu>
11974
11975 * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
11976
119772001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11978
11979 * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
11980 * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
11981 gone.
11982
119832001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11984
11985 * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
11986 outside of the `__U' sequence too.
11987 (unicode_mangling_length): Count `_' or `U' outside of the `__U'
11988 sequence too.
11989
119902001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11991
11992 * jvgenmain.c (error): Reversed 2001-02-01 deletion.
11993
119942001-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
11995
11996 * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
11997 (JVGENMAIN_OBJS): Likewise.
11998 * java-tree.h (append_gpp_mangled_name): New prototype.
11999 * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
12000 Removed cast calling `gcc_add_root.'
12001 * jvgenmain.c (mangle_obstack): New global, initialized.
12002 (main): Use it.
12003 (do_mangle_class): Constify local `ptr.'
12004 Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
12005 append_gpp_mangle_name and update `count' if necessary.
12006 Use `mangle_obstack.'
12007 * mangle.c (append_unicode_mangled_name): Removed.
12008 (append_gpp_mangled_name): Likewise.
12009 (unicode_mangling_length): Likewise.
12010 (mangle_member_name): Return type set to `void.'
12011 (mangle_field_decl): Don't append `U' in escaped names.
12012 (mangle_method_decl): Likewise.
12013 (mangle_member_name): Just use `append_gpp_mangled_name.'
12014 * mangle_name.c: New file.
12015
120162001-02-07 Per Bothner <per@bothner.com>
12017
12018 * check-init.c (check_init): Fix TRY_FINALLY_EXPR logic.
12019
12020 * check-init.c (check_init): Don't call done_alternative after
12021 processing loop code, as a LOOP_EXPR never terminates normally.
12022
120232001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
12024
12025 * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
12026
120272001-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12028
12029 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
12030 DECLs.
12031
120322001-02-06 Tom Tromey <tromey@redhat.com>
12033
12034 * lex.c (java_new_lexer): Longer error message.
12035
120362001-02-05 Jeff Sturm <jeff.sturm@commerceone.com>
12037 Alexandre Petit-Bianco <apbianco@cygnus.com>
12038
12039 * typeck.c (build_prim_array_type): Added leading comment.
12040 (build_java_array_type): Moved locals out of
12041 block. Always create the `data' field, fixed alignment to match
12042 C++.
12043
120442001-02-04 Tom Tromey <tromey@redhat.com>
12045
12046 * expr.c (java_lang_expand_expr): Don't bother recomputing
12047 `length'. Use rest_of_decl_compilation, not make_decl_rtl.
12048 Fixes PR java/1866.
12049
120502001-02-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
12051
12052 * parse.y (process_imports): Save the original name of the import
12053 for better error report.
12054
120552001-02-04 Bryce McKinlay <bryce@albatross.co.nz>
12056
12057 * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
12058 of macros used when compiling jvspec.c.
12059 * jvspec.c (lang_specific_driver): Link with the shared
12060 libgcc by default.
12061
120622001-02-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12063
12064 * check-init.c (check_init): Call internal_error instead of fatal.
12065 * expr.c (java_lang_expand_expr): Likewise.
12066 * jcf-parse.c (get_constant): Likewise.
12067 * mangle.c (java_mangle_decl): Likewise.
12068 * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
12069 (operator_string): Likewise.
12070 * check-init.c (check_init): Call abort instead of fatal.
12071 * class.c (build_class_ref): Likewise.
12072 * constants.c (write_constant_pool): Likewise.
12073 * decl.c (start_java_method): Likewise.
12074 * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
12075 (java_stack_dup, encode_newarray_type): Likewise.
12076 (build_java_array_length_access): Likewise.
12077 (build_java_check_indexed_type, expand_java_pushc): Likewise.
12078 (build_java_soft_divmod, build_invokeinterface): Likewise.
12079 * java-tree.h (INNER_CLASS_P): Likewise.
12080 * jcf-parse.c (parse_signature, get_name_constant): Likewise.
12081 (give_name_to_class, get_class_constant): Likewise.
12082 * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
12083 (find_constant_index, generate_bytecode_conditional): Likewise.
12084 (generate_bytecode_insns, perform_relocations): Likewise.
12085 * lex.c (java_unget_unicode, java_lex): Likewise.
12086 * mangle.c (mangle_type, mangle_record_type): Likewise.
12087 (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
12088 (finish_mangling): Likewise.
12089 * parse.h (MARK_FINAL_PARMS): Likewise.
12090 * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
12091 (obtain_incomplete_type, java_complete_class): Likewise.
12092 (java_check_regular_methods, java_complete_expand_method): Likewise.
12093 (cut_identifier_in_qualified, check_deprecation): Likewise.
12094 (patch_invoke, find_applicable_accessible_methods_list): Likewise.
12095 (java_complete_lhs, lookup_name_in_blocks): Likewise.
12096 (check_final_variable_indirect_assignment, build_unaryop): Likewise.
12097 * typeck.c (set_local_type, parse_signature_type): Likewise.
12098 (parse_signature_string, build_java_signature): Likewise;
12099 (set_java_signature): Likewise.
12100 * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
12101 * class.c (add_method): Call fatal_error instead of fatal.
12102 (build_static_field_ref): Likewise.
12103 * expr.c (build_known_method_ref, expand_invoke): Likewise.
12104 * jcf-parse.c (get_constant, jcf_parse): Likewise.
12105 * lex.c (java_new_new_lexer): Likewise.
12106 * jv-scan.c (main): Likewise.
12107 (fatal_error): Renamed from fatal.
12108 * jcf-parse.c (yyparse): Call fatal_io_error instead of
12109 pfatal_with_name.
12110 * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
12111 (yyparse): Likewise.
12112 * jcf-write.c (make_class_file_name, write_classfile): Likewise.
12113 * lex.c (java_get_line_col): Likewise.
12114 * jcf-parse.c (load_class): Make errors non-fatal.
12115 * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
12116
121172001-02-01 Bryce McKinlay <bryce@albatross.co.nz>
12118
12119 * jvgenmain.c (class_mangling_suffix): Remove unused string.
12120 (error): Remove unused function.
12121 (main): Don't use "__attribute__ alias" on generated class symbol.
12122
121232001-01-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
12124
12125 * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
12126 argument.
12127 * parse.y (finish_method_declaration): Code accounting for WFLed
12128 method DECL_NAMEs deleted.
12129 (check_abstract_method_definitions): Likewise.
12130 (resolve_type_during_patch): Layout resolved type.
12131 * typeck.c (lookup_do): Removed unused local.
12132
121332001-01-30 Bryce McKinlay <bryce@albatross.co.nz>
12134
12135 * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
12136 * decl.c (init_decl_processing): Use integer_minus_one_node, not
12137 integer_negative_one_node.
12138 * expr.c (build_java_binop): Likewise.
12139
121402001-01-24 Jeff Sturm <jeff.sturm@commerceone.com>
12141
12142 * zextract.c (read_zip_archive): Read file_offset before writing
12143 zipd and consequently clobbering the header contents.
12144
121452001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12146
12147 * Make-lang.in: Remove all dependencies on defaults.h.
12148 * decl.c: Don't include defaults.h.
12149 * expr.c: Likewise.
12150 * parse.y: Likewise.
12151
121522001-01-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
12153
12154 * ChangeLog (2001-01-21): Fixed typo.
12155 * class.c (layout_class_method): Code accounting for WFLed
12156 method DECL_NAMEs deleted.
12157 * constant.c (find_methodref_index): Likewise.
12158 * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
12159 * java-tree.h (DECL_FUNCTION_WFL): New macro.
12160 (struct lang_decl): New field `wfl'.
12161 (java_get_real_method_name): Prototype deleted.
12162 * mangle.c (mangle_method_decl): Code accounting for WFLed
12163 method DECL_NAMEs deleted.
12164 * parse.h (GET_METHOD_NAME): Macro deleted.
12165 * parse.y (reset_method_name): Deleted.
12166 (method_header): Set DECL_FUNCTION_WFL.
12167 (check_abstract_method_header): Code accounting for WFLed method
12168 DECL_NAMEs deleted.
12169 (java_get_real_method_name): Deleted.
12170 (check_method_redefinition): Code accounting for WFLed method
12171 DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
12172 (java_check_regular_methods): Likewise.
12173 (java_check_abstract_methods): Likewise.
12174 (java_expand_classes): Don't call `reset_method_name.'
12175 (search_applicable_method_list): Use DECL_NAMEs instead of
12176 GET_METHOD_NAME.
12177 * typeck.c (lookup_do): Code accounting for WFLed method
12178 DECL_NAMEs deleted.
12179
121802001-01-25 Richard Earnshaw <rearnsha@arm.com>
12181
12182 * lex.c (java_read_char): Check for EOF from getc first.
12183
121842001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
12185
12186 * class.c (layout_class): Don't lay the superclass out if it's
12187 already being laid out.
12188 * jcf-parse.c (handle_innerclass_attribute): New function.
12189 (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
12190 handle_innerclasses_attribute.
12191 (jcf_parse): Don't load an innerclasses if it's already being
12192 laid out.
12193 * jcf-write.c (append_innerclass_attribute_entry): Static
12194 `anonymous_name' and its initialization deleted. `ocii' and `ini'
12195 to be zero for anonymous classes.
12196
121972001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
12198
12199 * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
12200 necessary.
12201 * jcf-parse.c (set_source_filename): Use
12202 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
12203
122042001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
12205
12206 * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
12207 gets a unique asm name.
12208
122092001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
12210
12211 * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
12212 (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
12213 if necessary.
12214 (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
12215 * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
12216 * parse.y (lookup_package_type_and_set_next): Deleted.
12217 (resolve_package): Removed unnecessary code.
12218 (find_applicable_accessible_methods_list): `finit$' can't be
12219 inherited.
12220 * verify.c (pop_argument_types): Added missing prototype.
12221
122222001-01-23 Bryce McKinlay <bryce@albatross.co.nz>
12223
12224 * config-lang.in: Disable java by default.
12225
122262001-01-23 Tom Tromey <tromey@redhat.com>
12227
12228 * gcj.texi (Copying): New node.
12229 Added copyright information.
12230
122312001-01-21 Per Bothner <per@bothner.com>
12232
12233 Various fixes to allow compiling a compressed .jar/.zip archive.
12234 * zipfile.h (struct ZipFileCache): Replace by struct ZipFile.
12235 (struct ZipFile): Add fields name and next (from ZipFileCache).
12236 (struct ZipDirectory): New field zipf points to owning ZipFile.
12237 * jcf.h (struct ZipDirectory): Add forward declaration.
12238 (struct JCF): Declare zipd field to have type struct ZipDirectory.
12239 Remove seen_in_zip and zip_offset fields.
12240 (JCF_SEEN_IN_ZIP): New macro.
12241 * zextract.c (read_zip_archive): Set ZipDirectory's zipf field.
12242 * jcf-io.c: Change all ZipFileCache to ZipFile.
12243 (read_zip_member): New function.
12244 (open_in_zip): Call read_zip_member.
12245 * jcf-parse.c (find_in_current_zip): Remove function.
12246 (read_class): Merge in find_in_current_zip functionality.
12247 Call read_zip_member if needed.
12248 (parse_zip_file_entries): Use read_zip_member.
12249 (process_zip_dir): Update for removed and added JCF fields.
12250 (jcf_figure_file_type): Re-use, don't copy initial ZipFile struct.
12251
122522001-01-21 Per Bothner <per@bothner.com>
12253
12254 Minor optimization of static ggc roots.
12255 * jcf-parse.c (parse_roots): New static field.
12256 (current_field, current_method, current_file_list): Replace by macros
12257 naming fields of parse_roots.
12258 (init_jcf_parse): Combine 3 ggc_add_tree_root calls to 1.
12259 * class.c (class_roots): New static field.
12260 (registered_class, fields_ident, info_ident, class_list):
12261 New macros naming fields of parse_roots.
12262 (build_static_field_ref): Don't register roots here.
12263 (layout_class): Static field list replaced by macro class_list.
12264 (init_class_processing): Call ggc_add_tree_root for 4 roots.
12265 Initialize fields_ident and info_ident here.
12266
122672001-01-21 Per Bothner <per@bothner.com>
12268
12269 * jcf-parse.c (ggc_mark_jcf): New function.
12270 (init_jcf_parse): Register current_jcf as ggc root.
12271
122722001-01-21 Per Bothner <per@bothner.com>
12273
12274 * lang.c (put_decl_node): Print method's name.
12275
122762001-01-21 Per Bothner <per@bothner.com>
12277
12278 * verify.c (VERIFICATION_ERROR_WITH_INDEX): New macro.
12279 (verify_jvm_instructions): Use it, for better error messages on loads.
12280
122812001-01-21 Per Bothner <per@bothner.com>
12282
12283 * verify.c (merge_type_state): Still may have to merge even if
12284 LABEL_VERIFIED (label).
12285
122862001-01-21 Per Bothner <per@bothner.com>
12287
12288 * parse.y (method_header): Don't set the DECL_NAME of a FUNCTION_DECL
12289 to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
12290
122912001-01-19 Per Bothner <per@bothner.com>
12292
12293 * expr.c (pop_type_0): Only return object_ptr_type_node on mismatch
12294 if expeting an interface type. Refines Tom's change of 2000-09-12.
12295
122962001-01-18 Per Bothner <per@bothner.com>
12297
12298 * gcj.texi (Input Options): Mention .java files.
12299
123002001-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
12301
12302 * lang-options.h (-Wunsupported-jdk11): Removed.
12303 * lang.c (flag_not_overriding): Deleted.
12304 (flag_static_local_jdk1_1): Likewise.
12305 (lang_W_options): Removed "unsupported-jdk11" entry.
12306 * parse.y (java_check_methods): Removed dead code.
12307
123082001-01-17 Tom Tromey <tromey@redhat.com>
12309
12310 Changes suggested by Per Bothner:
12311 * gcj.texi (Input Options): Don't mention input files.
12312 (Code Generation): Updated --main information.
12313 (Invoking jcf-dump): Mention that --javap is incomplete.
12314 From Alexandre Petit-Bianco:
12315 (Warnings): Don't mention -Wunsupported-jdk11.
12316 My stuff:
12317 (Compatibility): Mention JDK 1.2-ness of libraries.
12318 (Resources): Mention resources used when writing gcj.
12319
123202001-01-17 Tom Tromey <tromey@redhat.com>
12321
12322 * gcj.texi: New file.
12323 * Make-lang.in ($(srcdir)/java/gcj.info): New target.
12324 (java.info): Depend on gcj.info.
12325 (java/gcj.dvi): New target.
12326 (java.dvi): Depend on gcj.dvi.
12327 (java.install-info): Wrote.
12328
123292001-01-16 Jeff Sturm <jeff.sturm@appnet.com>
12330
12331 * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
12332 having called make_decl_rtl.
12333
123342001-01-14 Per Bothner <per@bothner.com>
12335
12336 Various patches to emit better messages on verification errors.
12337 * expr.c (push_type_0): Return error indication on stack overflow,
12338 instead of callinfg fatal.
12339 (push_type): Now just call push_type_0 (nd fatal on overflow).
12340 (pop_type_0): Return detailed error message (in a char** argument).
12341 (pop_type): If pop_type_0 fails, print error message.
12342 (pop_argument_types): Moved to verify.c.
12343 * verify.c (pop_argument_types): Moved from expr.c.
12344 Return a (possible) error message, rather than void.
12345 (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING): New macros.
12346 (verify_jvm_instruction): Use new macros, improving error messages.
12347 For case OPCODE_astore use object_ptr_type_node.
12348 * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED): New macros.
12349 (pop_type_0, push_type_0, pop_argument_types): Update accordingly.
12350
12351 * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
12352 constant, return body without wrapper. (Improves constant folding.)
12353 * lex.c (build_wfl_node): Clear TREE_TYPE from returned node.
12354
123552001-01-13 Per Bothner <per@bothner.com>
12356
12357 * expr.c (expand_java_field_op): Assigning to a final field outside
12358 an initializer does not violate JVM spec, so should be warning, not
12359 error. (Sun's verifier does not complain - though MicroSoft's does.)
12360
123612001-01-12 Joseph S. Myers <jsm28@cam.ac.uk>
12362
12363 * gjavah.c (version), jcf-dump.c (version): Update copyright year
12364 to 2001.
12365
123662001-01-11 Bryce McKinlay <bryce@albatross.co.nz>
12367
12368 * parse.y (resolve_expression_name): Permit instance variables from
12369 enclosing context in super constructor call.
12370 (resolve_qualified_expression_name): Permit enclosing class's qualified
12371 "this" in super constructor call.
12372
123732001-01-10 Mark Mitchell <mark@codesourcery.com>
12374
12375 * class.c (build_utf8_ref): Remove last argument in call to
12376 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
12377 (build_class_ref): Likewise.
12378 (build_static_field_ref): Likewise.
12379 (get_dispatch_table): Likewise.
12380 (layout_class_method): Likewise.
12381 (emit_register_classes): Likewise.
12382 * constants.c (build_constant_data_ref): Likewise.
12383 * decl.c (builtin_function): Likewise.
12384 (create_primitive_vtable): Likewise.
12385 * expr.c (build_known_method_def): Likewise.
12386 (build_jni_stub): Likewise.
12387 (java_lang_expand_expr): Likewise.
12388
123892001-01-10 Tom Tromey <tromey@redhat.com>
12390
12391 * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
12392
123932001-01-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
12394
12395 * java-tree.h (lang_printable_name_wls): New prototype.
12396 * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
12397 rather than `current_class' to print type name. Don't prepend type
12398 names when printing constructor names.
12399 (lang_printable_name_wls): New function.
12400 * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
12401 `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
12402 * parse.y (patch_method_invocation): Message tuned for constructors.
12403 (not_accessible_p): Grant `private' access from within
12404 enclosing contexts.
12405
124062001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12407
12408 All files with updated copyright when applicable.
12409 * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
12410 * class.c (mangle_class_field): Function removed.
12411 (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
12412 (utf8_cmp, cxx_keyword_p): Moved to lex.c.
12413 (build_class_ref): Call `java_mangle_class_field' instead of
12414 `mangle_class_field.'
12415 (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
12416 (layout_class): Call `java_mangle_decl' instead of
12417 `mangle_static_field.'
12418 (cxx_keywords): Initialized static array moved to `lex.c.'
12419 (layout_class_method): Changed leading comment. Simplified to
12420 call `java_mangle_decl.' Local `ptr' moved in for loop body.
12421 * decl.c (lang_mark_tree): Mark field `package_list.'
12422 * java-tree.h (TYPE_PACKAGE_LIST): New macro.
12423 (struct lang_type): New field `package_list.'
12424 (unicode_mangling_length): Prototype removed.
12425 (append_gpp_mangled_name, append_gpp_mangled_classtype,
12426 emit_unicode_mangled_name): Likewise.
12427 (cxx_keyword_p): New prototype.
12428 (java_mangle_decl, java_mangle_class_field,
12429 java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
12430 * jcf-parse.c (jcf_parse_source): Constify `file' argument to
12431 `build_expr_wfl.'
12432 * jvgenmain.c (main_method_prefix): Global variable removed.
12433 (main_method_suffix): Likewise.
12434 (do_mangle_classname): New function.
12435 (main): Call it. Format changed to accommodate new mangling scheme.
12436 * lex.c: (utf8_cmp): Conditionally prototyped.
12437 (cxx_keywords): Moved from class.c, conditionally defined.
12438 (utf8_cmp, cxx_keyword_p): Likewise.
12439 * mangle.c (obstack.h, ggc.h): Included.
12440 (mangle_field_decl): New function.
12441 (mangle_method_decl, mangle_type, mangle_pointer_type,
12442 mangle_array_type, mangle_record_type,
12443 find_compression_pointer_match, find_compression_array_match,
12444 find_compression_record_match,
12445 find_compression_array_template_match, set_type_package_list,
12446 entry_match_pointer_p, emit_compression_string, init_mangling,
12447 finish_mangling, compression_table_add, mangle_member_name): Likewise.
12448 (mangle_obstack): New global.
12449 (MANGLE_RAW_STRING): New macro.
12450 (unicode_mangling_length): Turned static.
12451 (append_unicode_mangled_name): Renamed from
12452 `emit_unicode_mangled_name.' Turned static. `mangle_obstack'
12453 replaces `obstack', removed from the parameter list.
12454 (append_gpp_mangled_name): Turned static. `mangle_obstack'
12455 replaces parameter `obstack', removed from the parameter list. Call
12456 `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
12457 (append_gpp_mangled_classtype): Removed.
12458 (compression_table, compression_next): New static variables.
12459 * parse.y (temporary_obstack): Extern declaration removed.
12460
124612001-01-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
12462
12463 * parse.y (patch_binop): Compute missing type in error situations.
12464
124652001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
12466
12467 * class.c (make_class_data): Push initial value for "arrayclass".
12468 * decl.c (init_decl_processing): Add new class field "arrayclass".
12469
124702001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
12471
12472 From patha@softlab.ericsson.se:
12473 * parse.y (switch_label): Use build, not build1, to construct
12474 DEFAULT_EXPR.
12475
124762001-01-04 Neil Booth <neil@daikokuya.demon.co.uk>
12477
12478 * lang.c (lang_decode_option): Change -MA to -MP.
12479 * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
12480 Update to new prototype; do quote targets.
12481 (jcf_dependency_write): Update.
12482
124832000-12-22 Bryce McKinlay <bryce@albatross.co.nz>
12484
12485 Shorten primitive array allocation path:
12486 * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
12487 to create new primitive arrays.
12488 * expr.c (build_newarray): If generating native code, call
12489 soft_newarray_node with a reference to the primitive TYPE identifier
12490 instead of type_value.
12491
124922000-12-17 Bryce McKinlay <bryce@albatross.co.nz>
12493
12494 Fix for PRs gcj/312 and gcj/253:
12495 * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
12496 dest if they arn't already.
12497 * class.c (layout_class): Call maybe_layout_super_class on
12498 superinterfaces also, but only if compiling from bytecode.
12499
12500 Fix for PR gcj/373:
12501 * parse.y (create_class): Set ACC_STATIC if class is declared in an
12502 interface.
12503
125042000-12-15 Tom Tromey <tromey@redhat.com>
12505
12506 * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
12507 set.
12508
125092000-12-14 Andrew Haley <aph@redhat.com>
12510
12511 * boehm.c (mark_reference_fields): Change test to correctly detect
12512 bitmap overflow.
12513
125142000-12-15 Andreas Jaeger <aj@suse.de>
12515
12516 * config-lang.in (lang_dirs): Added.
12517
125182000-12-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
12519
12520 * parse.y (end_artificial_method_body): Fixed undefined behavior.
12521 Credits go to rth for finding it.
12522
125232000-12-13 Mike Stump <mrs@wrs.com>
12524
12525 * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
12526
125272000-11-07 Tom Tromey <tromey@cygnus.com>
12528
12529 * Make-lang.in (JAVA_LEX_C): Added chartables.h.
12530 * lex.c (java_ignorable_control_p): Removed.
12531 (java_letter_or_digit_p): Removed.
12532 (java_start_char_p): New function.
12533 (java_read_char): Return `int', not `unicode_t'. Changed
12534 callers.
12535 (java_read_unicode): Likewise.
12536 (java_read_unicode_collapsing_terminators): Likewise.
12537 (java_get_unicode): Likewise.
12538 (java_new_lexer): Initialize hit_eof.
12539 (java_parse_end_comment): Take `int' argument.
12540 (java_parse_doc_section): Likewise.
12541 (java_parse_escape_sequence): Don't allow backlash-newline.
12542 Return `int'.
12543 * lex.h (JAVA_DIGIT_P): Removed.
12544 (_JAVA_LETTER_OR_DIGIT_P): Removed.
12545 (_JAVA_IDENTIFIER_IGNORABLE): Removed.
12546 (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
12547 (JAVA_PART_CHAR_P): New macro.
12548 (UEOF): Now -1.
12549 (JAVA_CHAR_ERROR): Now -2.
12550 (java_lexer): New field `hit_eof'.
12551 * chartables.h: New file.
12552 * gen-table.pl: new file.
12553
125542000-11-20 Tom Tromey <tromey@cygnus.com>
12555 Alexandre Petit-Bianco <apbianco@cygnus.com>
12556
12557 * parse.y (java_complete_lhs): Only allow compound assignment of
12558 reference type if type is String.
12559
125602000-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
12561
12562 * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
12563 jcf-path.c: Likewise.
12564
125652000-12-09 Anthony Green <green@redhat.com>
12566
12567 * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
12568 filestart and filename_length as int values.
12569
125702000-12-07 Mo DeJong <mdejong@redhat.com>
12571
12572 * jcf-io.c (find_class): Correct the logic that tests to see if a
12573 .java file is newer than its .class file. The compiler was
12574 incorrectly printing a warning when file mod times were equal.
12575
125762000-12-07 Zack Weinberg <zack@wolery.stanford.edu>
12577
12578 * jvgenmain.c: Use ISPRINT not isascii.
12579
125802000-12-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
12581
12582 * parse.y (end_artificial_method_body): Fixed typo.
12583
125842000-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
12585
12586 * parse.y (patch_method_invocation): Pick the correct enclosing
12587 context when creating inner class instances.
12588 Fixes gcj/332.
12589
125902000-11-26 Joseph S. Myers <jsm28@cam.ac.uk>
12591
12592 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
12593 Update copyright year to 2000.
12594
125952000-11-23 Anthony Green <green@redhat.com>
12596
12597 * jcf-parse.c (init_jcf_parse): Register current_file_list root.
12598 Move current_file_list out of yyparse and make it static.
12599
12600 * expr.c: Declare quick_stack and tree_list_free_list as static
12601 (init_expr_processing): Register quick_stack and
12602 tree_list_free_list roots.
12603
126042000-11-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
12605
12606 * parse.y (build_outer_field_access): New local `decl_ctx', use
12607 it. Check for field's context and current class immediate outer
12608 context inheritance.
12609 (outer_field_access_p): Consider fields inherited from the last
12610 enclosing context.
12611 (build_access_to_thisn): Stop at the last enclosing context if
12612 necessary.
12613 Fixes gcj/367.
12614
126152000-11-23 J"orn Rennecke <amylaar@redhat.com>
12616
12617 * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
12618
126192000-11-22 Bryce McKinlay <bryce@albatross.co.nz>
12620
12621 * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
12622 scratch buffer.
12623
126242000-11-20 Tom Tromey <tromey@cygnus.com>
12625
12626 * jv-scan.c (help): Document --complexity.
12627 (options): Added --complexity.
12628 (flag_complexity): New global.
12629 (main): Call `report'.
12630 * parse-scan.y (complexity): New global.
12631 (if_then_statement, if_then_else_statement,
12632 if_then_else_statement_nsi, switch_block_statement_group,
12633 while_expression, do_statement, for_begin, continue_statement,
12634 throw_statement, catch_clause, finally, method_invocation,
12635 conditional_and_expression, conditional_or_expression,
12636 conditional_expression): Update complexity.
12637 (reset_report): Reset complexity.
12638 (report): New function.
12639
126402000-11-20 Tom Tromey <tromey@cygnus.com>
12641
12642 * lex.c (yylex): Added STRICT_TK case.
12643 * parse.y (STRICT_TK): Added.
12644 * parse-scan.y (STRICT_TK): Added.
12645 * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
12646 `;'. Use 4, not 3, with -k option. Correctly rename resulting
12647 file.
12648 * keyword.h: Rebuilt.
12649 * keyword.gperf (strictfp): Added.
12650
126512000-11-20 Tom Tromey <tromey@cygnus.com>
12652
12653 * lex.c (yylex): Recognize floating point constants with leading
12654 0.
12655
126562000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12657
12658 * java-tree.h (cyclic_inheritance_report): Constify.
12659 * parse.y (cyclic_inheritance_report): Likewise.
12660
126612000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
12662
12663 * parse.y (goal): Remove call to ggc_add_string_root.
12664
126652000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
12666
12667 * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
12668 Create string in scratch buffer, then pass to build_string.
12669
126702000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
12671
12672 * parse.y (issue_warning_error_from_context): Add
12673 ATTRIBUTE_PRINTF.
12674
126752000-11-11 Anthony Green <green@redhat.com>
12676
12677 * jcf-parse.c (process_zip_dir): Add finput parameter.
12678 (jcf_figure_file_type): Call process_zip_dir with appropriate
12679 argument.
12680
126812000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12682
12683 * decl.c (copy_lang_decl): Use memcpy, not bcopy.
12684 * jcf-parse.c (jcf_figure_file_type): Likewise.
12685
126862000-11-09 Joseph S. Myers <jsm28@cam.ac.uk>
12687
12688 * parse.y (create_new_parser_context): Use memset () instead of
12689 bzero ().
12690
126912000-11-08 Tom Tromey <tromey@cygnus.com>
12692
12693 * gjavah.c (process_file): Only include gcj/cni.h when generating
12694 CNI stubs.
12695
126962000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
12697
12698 * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
12699 (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
12700 instead of bzero ().
12701
127022000-11-05 Tom Tromey <tromey@cygnus.com>
12703
12704 * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
12705 * lex.c (IS_ZERO): New define.
12706 (java_perform_atof): Error on floating point underflow.
12707
127082000-11-04 Tom Tromey <tromey@cygnus.com>
12709
12710 * lex.c (java_parse_escape_sequence): Only read two octal
12711 characters if the first one is greater than 3. Don't allow
12712 "octal" numbers to include the digits 8 or 9.
12713
127142000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
12715
12716 * Make-lang.in (java.distdir): Remove.
12717
127182000-11-03 Tom Tromey <tromey@cygnus.com>
12719
12720 * Make-lang.in (java.dvi): New target.
12721 Partial fix for PR other/567.
12722
12723 * lang-options.h: Mention -Wout-of-date.
12724 * jcf-dump.c (flag_newer): New global.
12725 * gjavah.c (flag_newer): New global.
12726 * jcf-io.c (find_class): Only warn when flag_newer set.
12727 * lang.c (flag_newer): New global.
12728 (struct string_option): New declaration.
12729 (lang_W_options): New global.
12730 (process_option_with_no): New function.
12731 (lang_decode_option): Use it.
12732
12733 * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
12734 * gjavah.c (cxx_keyword_subst): Handle any number of trailing
12735 `$'.
12736
12737 * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
12738 (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
12739 * lex.c (java_read_unicode): Removed `term_context' argument.
12740 Recognize any number of `u' in `\u'.
12741 (java_read_unicode_collapsing_terminators): New function.
12742 (java_get_unicode): Use it.
12743 (java_lineterminator): Removed.
12744 (yylex): Produce error if character literal is newline or single
12745 quote. Return if eof found in middle of `//' comment. EOF in
12746 `//' comment is only an error if pedantic.
12747 (java_ignorable_control_p): New function.
12748 (java_parse_end_comment): Return if eof found in middle of
12749 comment.
12750 Include flags.h.
12751 * jv-scan.c (pedantic): New global.
12752
127532000-10-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
12754
12755 * parse.y (outer_field_access_p): Inherited fields aren't
12756 consider outer fields.
12757 (maybe_build_thisn_access_method): Use
12758 PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
12759 (resolve_expression_name): Trigger an error if a static field
12760 is being accessed as an outer field.
12761
127622000-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12763
12764 * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
12765 Fixes gcj/365.
12766
127672000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
12768
12769 * Make-lang.in: Move all build rules here from Makefile.in,
12770 adapt to new context. Wrap all rules that change the current
12771 directory in parentheses. Expunge all references to $(P).
12772 When one command depends on another and they're run all at
12773 once, use && to separate them, not ;. Add OUTPUT_OPTION to
12774 all object-file generation rules. Delete obsolete variables.
12775
12776 * Makefile.in: Delete.
12777 * config-lang.in: Delete outputs= line.
12778
127792000-10-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
12780
12781 * parse.y (patch_method_invocation): NULLify this_arg when already
12782 inserted.
12783 (maybe_use_access_method): Handle call to methods unrelated to the
12784 current class. Fixed comment.
12785 Fixes gcj/361.
12786
127872000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
12788
12789 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
12790 scope.
12791
127922000-10-24 Tom Tromey <tromey@cygnus.com>
12793
12794 * lex.c (java_new_lexer): Initialize new fields. Work around
12795 broken iconv() implementations.
12796 (java_read_char): Swap bytes if required. Use fallback decoder if
12797 required.
12798 (byteswap_init, need_byteswap): New globals.
12799 (java_destroy_lexer): Only close iconv handle if it is in use.
12800 * lex.h (java_lexer): New fields read_anything, byte_swap,
12801 use_fallback.
12802 Made out_buffer unsigned.
12803
128042000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
12805
12806 * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
12807 where an enclosing context can be set on the jdep.
12808 (do_resolve_class): Fixed identation.
12809
128102000-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12811
12812 * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
12813
12814 * jcf-reader.c (peek_attribute, skip_attribute): Only define
12815 when requested.
12816
12817 * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
12818
12819 * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
12820
128212000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
12822
12823 * jcf-write.c (OP1): Update `last_bc'.
12824 (struct jcf_block): Fixed indentation and typo in comments. New
12825 field `last_bc'.
12826 (generate_bytecode_insns): Insert `nop' if `jsr' immediately
12827 follows `monitorenter'.
12828 * parse.y (patch_synchronized_statement): New local `tmp'. Call
12829 `patch_string'.
12830 Fixes gcj/232.
12831
128322000-10-16 Tom Tromey <tromey@cygnus.com>
12833
12834 * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
12835 * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
12836 * lang-options.h: Added -MA, -MT, -MF..
12837 * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
12838 (DEPEND_TARGET_SET): New macro.
12839 (DEPEND_FILE_ALREADY_SET): Likewise.
12840 (init_parse): Handle new flags.
12841 * jcf.h (jcf_dependency_print_dummies): Declare.
12842 * Make-lang.in (s-java): Added mkdeps.o.
12843 * Makefile.in (BACKEND): Added mkdeps.o.
12844 (../gcjh$(exeext)): Added mkdeps.o.
12845 (../jcf-dump$(exeext)): Added mkdeps.o.
12846 * jcf-depend.c: Include mkdeps.h.
12847 (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
12848 add_entry): Removed.
12849 (jcf_dependency_reset): Rewrote.
12850 (dependencies): New global.
12851 (jcf_dependency_set_target): Rewrote.
12852 (jcf_dependency_add_target): Likewise.
12853 (jcf_dependency_add_file): Likewise.
12854 (munge): Removed.
12855 (print_ents): Removed.
12856 (jcf_dependency_write): Rewrote.
12857 (print_dummies): New global.
12858 (jcf_dependency_print_dummies): New function
12859 (jcf_dependency_write): Call deps_dummy_targets if required.
12860
128612000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
12862
12863 * gjavah.c (add_class_decl): Removed unused variables `tname',
12864 `tlen' and `name_index'.
12865 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
12866 * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
12867 in `wfl_operator' with value.
12868 (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
12869 (jcf_figure_file_type): Fixed identation.
12870 * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
12871 * parse.y (analyze_clinit_body): New function.
12872 (static_initializer:): Reset `current_static_block'.
12873 (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
12874 `wfl_operator' with new value.
12875 (lookup_cl): Use EXPR_WFL_FILENAME.
12876 (maybe_yank_clinit): Handle bogus <clinit> bodies, call
12877 analyze_clinit_body.
12878 (build_outer_field_access): Access to this$<n> built from
12879 current_class, not its outer context.
12880 (build_access_to_thisn): Fixed leading comment. Tidied things up.
12881 (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
12882 (patch_method_invocation): Use `is_static_flag' when already
12883 initialized.
12884 (patch_newarray): Removed assignment in ternary operator.
12885
128862000-10-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
12887
12888 * except.c (free_eh_ranges): Don't free `whole_range'.
12889
128902000-10-15 Anthony Green <green@redhat.com>
12891
12892 * decl.c (init_decl_processing): Call init_class_processing before
12893 anything else.
12894
128952000-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12896
12897 * check-init.c (check_init): Fixed leading comment. Use
12898 LOCAL_FINAL_P.
12899 * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12900 (give_name_to_locals): Likewise.
12901 (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
12902 fields in lang_decl_var.
12903 * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
12904 DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
12905 (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
12906 (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
12907 DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
12908 (LOCAL_FINAL): Rewritten.
12909 (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
12910 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
12911 (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
12912 `init_final' fields.
12913 (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
12914 `final_uid', `final_liic', `final_ierr' and `local_final' fields.
12915 (TYPE_HAS_FINAL_VARIABLE): New macro.
12916 (struct lang_type): Added `afv' field.
12917 * parse.y (check_static_final_variable_assignment_flag): New function.
12918 (reset_static_final_variable_assignment_flag): Likewise.
12919 (check_final_variable_local_assignment_flag): Likewise.
12920 (reset_final_variable_local_assignment_flag): Likewise.
12921 (check_final_variable_indirect_assignment): Likewise.
12922 (check_final_variable_global_assignment_flag): Likewise.
12923 (add_inner_class_fields): Use LOCAL_FINAL_P.
12924 (register_fields): Handle local finals and final variables.
12925 (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
12926 (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12927 (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
12928 on local finals.
12929 (java_complete_expand_methods): Loop to set
12930 TYPE_HAS_FINAL_VARIABLE. Call
12931 `reset_final_variable_local_assignment_flag' and
12932 `check_final_variable_local_assignment_flag' accordingly before
12933 and after constructor expansion. Call
12934 `reset_static_final_variable_assignment_flag'
12935 before expanding <clinit> and after call
12936 `check_static_final_variable_assignment_flag' if the
12937 current_class isn't an interface. After all methods have been
12938 expanded, call `check_final_variable_global_assignment_flag' and
12939 `check_static_final_variable_assignment_flag' if the current class
12940 is an interface.
12941 (maybe_yank_clinit): Fixed typo in comment.
12942 (build_outer_field_access_methods): Removed old sanity check. Use
12943 FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12944 Don't create access methods for finals.
12945 (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
12946 (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
12947 existing DECL_INIT has been processed.
12948 (java_complete_lhs): Likewise.
12949 (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
12950 Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
12951 logic.
12952 (patch_assignment): Use LOCAL_FINAL_P.
12953 (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
12954 DECL_INITIAL is nullified.
12955 Fixes gcj/163.
12956
129572000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12958
12959 * Make-lang.in (parse.c, parse-scan.c): Create atomically.
12960
12961 * Makefile.in (parse.c, parse-scan.c): Likewise.
12962
129632000-10-12 Mark Mitchell <mark@codesourcery.com>
12964
12965 * class.c (temporary_obstack): Remove.
12966 (make_class): Don't mess with obstascks.
12967 (push_class): Likewise.
12968 (set_super_info): Likewise.
12969 (add_method_1): Likewise.
12970 (add_method): Likewise.
12971 (add_field): Likewise.
12972 (build_utf8_ref): Likewise.
12973 (build_class_ref): Likewise.
12974 (build_static_field_ref): Likewise.
12975 (finish_class): Likewise.
12976 (push_super_field): Likewise.
12977 (layout_class): Likewise.
12978 (layout_class_methods): Likewise.
12979 (init_class_processing): Likewise.
12980 * constants.c (get_tag_node): Likewise.
12981 (build_constant_data_ref): Likewise.
12982 * decl.c (ggc_p): Remove.
12983 (copy_lang_decl): Use ggc_alloc.
12984 (complete_start_java_method): Don't mess with obstacks.
12985 (start_java_method): Likewise.
12986 (end_java_method): Likewise.
12987 * except.c (link_handler): Use xmalloc.
12988 (free_eh_ranges): New function.
12989 (method_init_exceptions): Use it.
12990 (add_handler): Use xmalloc.
12991 (expand_start_java_handler): Don't mess with obstacks.
12992 (prepare_eh_table_type): Likewise.
12993 (expand_end_java_handler): Likewise.
12994 * expr.c (push_value): Likewise.
12995 (create_label_decl): Likewise.
12996 (build_jni_stub): Likewise.
12997 (java_lang_expand_expr): Likewise.
12998 (note_instructions): Use xrealloc.
12999 (java_push_constant_from_pool): Don't mess with obstacks.
13000 (process_jvm_instruction): Likewise.
13001 * java-tree.h (cyclic_inheritance_report): Remove duplicate
13002 declaration.
13003 * jcf-parse.c (get_constant): Don't mess with obstacks.
13004 (read_class): Likewise.
13005 (jcf_parse): Likewise.
13006 * lex.c (expression_obstack): Remove.
13007 (java_lex): Don't use obstack_free.
13008 * parse.h (exit_java_complete_class): Don't mess with obstacks.
13009 (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
13010 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
13011 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
13012 * parse.y (gaol): Add more GC roots.
13013 (add_inner_class_fields): Adjust calls to MANGLE_* macros.
13014 (lookup_field_wrapper): Likewise.
13015 (obtain_incomplete_type): Don't mess with obstacks.
13016 (build_alias_initializer_parameter_list): Adjust calls to MANGLE_*
13017 macros.
13018 (craft_constructor): Don't mess with obstacks.
13019 (safe_layout_class): Likewise.
13020 (java_complete_class): Likewise.
13021 (source_end_java_method): Likewise.
13022 (build_outer_field_access_methods): Likewise.
13023 (build_outer_method_access_method): Likewise.
13024 (maybe_build_thisn_access_method): Likewise.
13025 (build_dot_class_method_invocation): Likewise.
13026 (java_complete_tree): Likewise.
13027 (java_complete_lhs): Likewise.
13028 (do_merge_string_cste): Likewise.
13029 (patch_string_cst): Likewise.
13030 (array_constructor_check_entry): Likewise.
13031 * typeck.c (build_java_array_type): Likewise.
13032 (parse_signature_string): Likewise.
13033 (build_java_signature): Likewise.
13034
130352000-10-12 Tom Tromey <tromey@cygnus.com>
13036
13037 Fix for PR gcj/356:
13038 * gjavah.c (add_class_decl): Don't special-case inner classes.
13039 (add_namelet): Likewise.
13040
130412000-10-11 Rodney Brown <RodneyBrown@mynd.com>
13042
13043 * java-tree.h: Constify current_encoding.
13044 * lang.c: Constify current_encoding.
13045
130462000-10-10 Jeff Sturm <jeff.sturm@appnet.com>
13047
13048 * jvgenmain.c (class_mangling_suffix): Omit `.'.
13049 (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
13050
130512000-10-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
13052
13053 * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
13054 patch. Fixes gcj/340.
13055
130562000-10-10 Tom Tromey <tromey@cygnus.com>
13057
13058 * lex.c (java_new_lexer): Initialize out_first and out_last
13059 fields.
13060 * lex.h (java_lexer): Added out_buffer, out_first, out_last.
13061
130622000-10-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
13063
13064 * parse.y (pop_current_osb): New function.
13065 (array_type:): Use `dims:', changed actions
13066 accordingly. Suggested by Anthony Green.
13067 (array_creation_expression:): Used pop_current_osb.
13068 (cast_expression:): Likewise.
13069 (search_applicable_method_list): Fixed indentation.
13070
130712000-10-08 Anthony Green <green@redhat.com>
13072
13073 * parse.y (array_type_literal): Remove production.
13074 (type_literals): Refer to array_type, not array_type_literal.
13075
130762000-10-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13077
13078 Patch contributed by Corey Minyard.
13079 * decl.c (check_local_named_variable): New function.
13080 (tree check_local_unnamed_variable): Likewise.
13081 (find_local_variable): Splitted. Call check_local_{un}named_variable.
13082
130832000-10-07 Anthony Green <green@redhat.com>
13084
13085 * class.c (layout_class): Handle case where superclass can't be
13086 layed out yet.
13087
130882000-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
13089
13090 * Makefile.in (keyword.h): Refer to GNU FTP site for updated
13091 gperf.
13092
130932000-10-05 Tom Tromey <tromey@cygnus.com>
13094
13095 * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
13096 * jvgenmain.c (class_mangling_prefix): Removed.
13097 (class_mangling_suffix): New global.
13098 (main): Use it.
13099 * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
13100 `$'.
13101 (print_method_info): Handle overrides for static and final
13102 methods.
13103 (process_file): Generate declaration for class object field.
13104 * class.c (cxx_keywords): New array.
13105 (utf8_cmp): New function.
13106 (cxx_keyword_p): New function.
13107 (layout_class_method): Mangle C++ keywords by appending `$'.
13108 (mangle_field): New function.
13109 (mangle_class_field): Use mangle_field. Mangle class name as
13110 `class$'.
13111 (mangle_static_field): Use mangle_field.
13112
131132000-10-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
13114
13115 * decl.c (find_local_variable): Removed uncessary type check and
13116 fixed range check typo. From Corey Minyard.
13117
131182000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13119
13120 * decl.c (give_name_to_locals): New local `code_offset'. Call
13121 `maybe_adjust_start_pc'.
13122 * expr.c (note_instructions): New function.
13123 (expand_byte_code): Don't collect insn starts here.
13124 (peek_opcode_at_pc): New function.
13125 (maybe_adjust_start_pc): Likewise.
13126 * java-tree.h (maybe_adjust_start_pc): Declare.
13127 (note_instructions): Likewise.
13128 * jcf-parse.c (parse_class_file): Call `note_instructions'.
13129
131302000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13131
13132 * parse.y (field_access:): Fixed indentation.
13133 (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
13134
131352000-09-07 Tom Tromey <tromey@cygnus.com>
13136
13137 Fix for PR gcj/307:
13138 * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
13139 JPRIMITIVE_TYPE_P, for arithmetic operators.
13140 (patch_method_invocation): Indentation fix.
13141 (try_builtin_assignconv): Handle boolean specially. Fixed typo.
13142 (valid_builtin_assignconv_identity_widening_p): Handle boolean.
13143 (do_unary_numeric_promotion): Cleaned up code.
13144 (valid_cast_to_p): Handle boolean correctly.
13145
131462000-09-27 Tom Tromey <tromey@cygnus.com>
13147
13148 * lex.c (java_read_unicode): Reset bs_count when finished with
13149 `\u' sequence.
13150
131512000-10-01 Mark Mitchell <mark@codesourcery.com>
13152
13153 Convert to GC.
13154 * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
13155 * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
13156 (typeck.o): Depend on ggc.h.
13157 * class.c (add_method_1): Use GC functions for allocation.
13158 (init_class_processing): Register roots.
13159 * decl.c (ggc_p): Set to 1.
13160 (pending_local_decls): Make it static.
13161 (push_jvm_slot): Use GC functions for allocation.
13162 (init_decl_processing): Register roots.
13163 (give_name_to_locals): Use GC functions for allocation.
13164 (lang_mark_tree): New function.
13165 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
13166 functions for allocation.
13167 * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
13168 * lex.c (java_lex): Use build_string, rather than replicating it
13169 inline.
13170 * parse.y (goal): Add more roots.
13171 (mark_parser_ctxt): New function.
13172 * typeck.c: Include ggc.h.
13173
131742000-09-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
13175
13176 * parse.y (maybe_yank_clinit): Also keep <clinit> if its body
13177 contains something else than MODIFY_EXPR.
13178
131792000-09-23 Mark Mitchell <mark@codesourcery.com>
13180
13181 * Make-lang.in (JAVA_SRCS): Include java-tree.h.
13182 * Makefile.in (parse.o): Depend on ggc.h.
13183 (class.o): Likewise.
13184 (constants.o): Likewise.
13185 (decl.o): Likewise.
13186 (expr.o): Likewise.
13187 (jcf-parse.o): Likewise.
13188 (jcf-write.o): Likewise.
13189 (mangle.o): Likewise.
13190 * class.c: Include ggc.h.
13191 (build_static_field_ref): Register GC roots.
13192 (layout_class): Likewise.
13193 (init_class_processing): Likewise.
13194 * constants.c: Include ggc.h.
13195 (current_constant_pool_data_ref): Remove.
13196 (tag_nodes): Move it to ...
13197 (get_tag_node): ... here. Register GC roots.
13198 * decl.c: Include ggc.h. Remove many global tree definitions.
13199 (throw_node): Define.
13200 (java_global_trees): Likewise.
13201 (predef_filenames): Make the size a constant.
13202 (init_decl_processing): Adjust accordingly.
13203 (init_decl_processing): Call init_jcf_parse. Register GC roots.
13204 * expr.c: Include ggc.h.
13205 (init_expr_processing): Register GC roots.
13206 (build_invokeinterface): Likewise.
13207 * java-tree.h: Replace extern tree declarations with macros.
13208 (java_global_trees): New variable.
13209 (java_tree_index): New enumeration.
13210 (init_jcf_parse): Declare.
13211 * jcf-parse.c: Include ggc.h.
13212 (current_class): Remove declaration.
13213 (main_class): Likewise.
13214 (all_class_list): Likewise.
13215 (predefined_filename_p): Adjust for constant size of
13216 predef_filenames.
13217 (init_jcf_parse): New function.
13218 * jcf-write.c: Include ggc.h.
13219 (generate_classfile): Register GC roots.
13220 (append_synthetic_attribute): Likewise.
13221 (append_innerclass_attribute_entry): Likewise.
13222 * lang.c: Include ggc.h.
13223 (lang_print_error): Register GC roots.
13224 * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
13225 with macros.
13226 * parse.y: Include ggc.h.
13227 (wfl_operator): Remove.
13228 (goal): Register GC roots.
13229 (java_pop_parser_context): Adjust for new field names.
13230 (java_parser_context_save_global): Likewse.
13231 (java_parser_context_restore_global): Likewise.
13232 (java_parser_context_suspend): Likewise.
13233 (java_parser_context_resume): Likewise.
13234 (verify_constructor_circularity): Register GC roots.
13235 (lookup_cl): Likewise.
13236 (java_reorder_fields): Likewise.
13237 (build_current_this): Likewise.
13238 (class_in_current_package): Likewise.
13239 (argument_types_convertible): Likewise.
13240 (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
13241
132422000-09-14 Tom Tromey <tromey@cygnus.com>
13243
13244 * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
13245
132462000-09-13 Tom Tromey <tromey@cygnus.com>
13247
13248 * jcf-parse.c: Include <locale.h>.
13249 * jv-scan.c: Include <locale.h>.
13250
132512000-09-12 Tom Tromey <tromey@cygnus.com>
13252
13253 * expr.c (pop_type_0): Return `Object' if trying to merge two
13254 interface types.
13255 * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
13256 interface types; `Object' is always a valid supertype.
13257
132582000-09-12 Tom Tromey <tromey@cygnus.com>
13259
13260 Fix for PR gcj/33:
13261 * jv-scan.c (help): Document --encoding.
13262 (options): Added `encoding' entry.
13263 (OPT_ENCODING): New define.
13264 (main): Handle --encoding.
13265 Include <langinfo.h> if nl_langinfo exists.
13266 * lang-options.h: Document --classpath, --CLASSPATH, --main, and
13267 --encoding.
13268 * jcf-parse.c Include <langinfo.h> if we have nl_langinfo.
13269 (parse_source_file): Correctly call java_init_lex. Added `finput'
13270 argument. Use nl_langinfo to determine default encoding.
13271 * java-tree.h (current_encoding): Declare.
13272 * parse.y (java_parser_context_restore_global): Don't restore
13273 `finput'.
13274 (java_parser_context_save_global): Don't set `finput' field.
13275 (java_pop_parser_context): Don't restore `finput'. Free old lexer
13276 if required.
13277 * lang.c (current_encoding): New global.
13278 (lang_decode_option): Recognize `-fencoding='.
13279 (finish_parse): Don't close finput.
13280 * parse.h (struct parser_ctxt): Removed `finput' and
13281 `unget_utf8_value' fields. Added `lexer' field.
13282 (java_init_lex): Fixed declaration.
13283 * lex.c (java_new_lexer): New function.
13284 (java_destroy_lexer): Likewise.
13285 (java_read_char): Added `lex' argument. Handle iconv case.
13286 (java_read_unicode): Added `lex' argument. Count backslashes in
13287 lexer structure.
13288 (java_init_lex): Added `finput' and `encoding' arguments. Set
13289 `lexer' field in ctxp.
13290 (BAD_UTF8_VALUE): Removed.
13291 (java_lex): Handle seeing UEOF in the middle of a string literal.
13292 * lex.h: Include <iconv.h> if HAVE_ICONV defined.
13293 (java_lexer): New structure.
13294 (UNGETC): Removed.
13295 (GETC): Removed.
13296 (DEFAULT_ENCODING): New define.
13297 (java_destroy_lexer): Declare.
13298
132992000-09-12 Tom Tromey <tromey@cygnus.com>
13300
13301 Fix for PR gcj/343:
13302 * lex.c (java_init_lex): Initialize java_io_serializable.
13303 * parse.y (java_io_serializable): New global.
13304 (valid_ref_assignconv_cast_p): An array can be cast to
13305 serializable.
13306
133072000-09-10 Zack Weinberg <zack@wolery.cumb.org>
13308
13309 * decl.c, expr.c: Include defaults.h if not already included.
13310 Don't define the *_TYPE_SIZE macros.
13311
133122000-09-09 Geoffrey Keating <geoffk@cygnus.com>
13313
13314 * typeck.c (build_java_array_type): Correct first parameter
13315 in ADJUST_FIELD_ALIGN invocation.
13316
133172000-09-06 Tom Tromey <tromey@cygnus.com>
13318
13319 * lang-specs.h: Also recognize `-femit-class-files'.
13320
133212000-09-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13322
13323 * verify.c (merge_types): Load the types to merge if necessary.
13324
133252000-09-02 Anthony Green <green@redhat.com>
13326
13327 * jcf-io.c: Include zlib.h.
13328 (open_in_zip): Read compressed class file archives.
13329 * zipfile.h (ZipDirectory): Add uncompressed_size and
13330 compression_method fields.
13331 * zextract.c (read_zip_archive): Collect file compression info.
13332
133332000-08-15 Bryce McKinlay <bryce@albatross.co.nz>
13334
13335 * parse.y (do_resolve_class): Also explore superclasses of
13336 intermediate enclosing contexts when searching for inner classes.
13337
133382000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
13339
13340 * parse.y (variable_declarator_id:): Better error message.
13341 (expression_statement:): Use YYNOT_TWICE.
13342 (cast_expression:): Likewise.
13343 (assignment:): Likewise.
13344
133452000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
13346
13347 * parse.y (do_merge_string_cste): New locals. Create new
13348 STRING_CSTs each time, use memcpy. Fixes gcj/311.
13349
133502000-08-07 Hans Boehm <boehm@acm.org>
13351
13352 * boehm.c (mark_reference_fields): Set marking bits for all words in
13353 a multiple-word record.
13354 (get_boehm_type_descriptor): Use the procedure marking descriptor for
13355 java.lang.Class.
13356
133572000-08-31 Mike Stump <mrs@wrs.com>
13358
13359 * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
13360 jcf-dump$(exeext)): Make parallel safe.
13361
133622000-08-29 Zack Weinberg <zack@wolery.cumb.org>
13363
13364 * jcf-parse.c (set_source_filename): Constify a char *.
13365 * jcf-write.c (append_innerclasses_attribute,
13366 make_class_file_name): Constify a char *. Don't recycle a
13367 variable for an unrelated purpose.
13368 * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
13369 (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
13370
133712000-08-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
13372
13373 * expr.c (can_widen_reference_to): Fixed indentation.
13374 * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
13375 * parse.y: `finit$' replaces `$finit$' in comments.
13376 (try_builtin_assignconv): Fixed leading comment.
13377
133782000-08-25 Greg McGary <greg@mcgary.org>
13379
13380 * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
13381
133822000-08-24 Greg McGary <greg@mcgary.org>
13383
13384 * lang.c (lang_decode_option): Use ARRAY_SIZE.
13385 * parse.y (BINOP_LOOKUP): Likewise.
13386
133872000-08-22 Andrew Haley <aph@cygnus.com>
13388
13389 * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
13390 sign extending. Fixes gcj/321.
13391 * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
13392 combining to make a jlong. Fixes gcj/321.
13393
133942000-08-21 Nix <nix@esperi.demon.co.uk>
13395
13396 * lang-specs.h: Do not process -o or run the assembler if
13397 -fsyntax-only.
13398
133992000-08-16 Andrew Haley <aph@cygnus.com>
13400
13401 * typeck.c (build_java_array_type): Rewrite code to do array
13402 alignment. Take into account back-end macros when aligning array
13403 data. Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
13404 user to set alignment. Fixes gcj/252 and 160.
13405
134062000-08-09 Tom Tromey <tromey@cygnus.com>
13407
13408 * parse.y (check_abstract_method_definitions): Now return `int'.
13409 Check implemented interfaces. Fixes PR gcj/305.
13410
13411 * parse.y (patch_switch_statement): Disallow `long' in switch
13412 expressions. Fixes PR gcj/310.
13413
134142000-08-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
13415
13416 * decl.c (finit_leg_identifier_node): New global.
13417 (init_decl_processing): Use `finit$' to initialize
13418 finit_identifier_node. Use `$finit$' to initialize
13419 finit_leg_identifier_node.
13420 * expr.c (expand_java_field_op): Use ID_FINIT_P.
13421 * java-tree.h (finit_identifier_node): Changed attached comment.
13422 (finit_leg_identifier_node): New declaration.
13423 (ID_FINIT_P): Take finit_identifier_node and
13424 finit_leg_identifier_node into account. This is a backward
13425 compatibility hack.
13426
134272000-08-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
13428
13429 * jcf-write.c (generate_bytecode_conditional): Re-installed lost
13430 Jan 6 2000 patch.
13431 (generate_bytecode_insns): Check `nargs' before emitting it.
13432 * verify.c (merge_type_state): Fixed typo.
13433 * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
13434 generate_bytecode_{conditional,insns}.
13435
134362000-08-13 Anthony Green <green@redhat.com>
13437
13438 * check-init.c (check_init): Add case for BIT_FIELD_REF (required
13439 for -pg builds).
13440
134412000-08-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
13442
13443 * class.c (maybe_layout_super_class): Fixed indentation.
13444 * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
13445 (java_check_methods): New function declaration.
13446 * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
13447 instead of `str_ptr'.
13448 * jcf-write.c (generate_bytecode_insns): Emit number the of args
13449 of a `invokeinterface' at the right time.
13450 * parse.h (WFL_STRIP_BRACKET): New macro.
13451 (SET_TYPE_FOR_RESOLUTION): Use it.
13452 * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
13453 (check_class_interface_creation): Don't check for cross package
13454 innerclass name clashes.
13455 (method_header): Behave properly if MDECL is `error_mark_node'.
13456 (method_declarator): Return `error_mark_node' if bogus current
13457 class.
13458 (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
13459 (resolve_and_layout): New local `decl_type', set and used. Call
13460 java_check_methods.
13461 (java_check_methods): New method.
13462 (java_layout_classes): Use it.
13463 (resolve_qualified_expression_name): No EH check necessary in
13464 access$<n>.
13465 (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
13466 `case' statement.
13467 (patch_assignment): Set DECL_INITIAL on integral final local.
13468
134692000-08-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
13470
13471 * java-tree.h (flag_extraneous_semicolon): New extern.
13472 * lang-options.h: (-Wextraneous-semicolon): New option.
13473 * lang.c (flag_redundant): Fixed typo in leading comment.
13474 (flag_extraneous_semicolon): New global.
13475 (lang_decode_option): Set `flag_extraneous_semicolon' when
13476 -Wall. Decode `-Wextraneous-semicolon'.
13477 * parse.y (type_declaration:): Removed `SC_TK' hack, added
13478 `empty_statement' rule.
13479 (class_body_declaration): Likewise.
13480 (method_body:): Accept `;' as a method body.
13481 (static_initializer:): Removed `SC_TK' hack.
13482 (constructor_block_end:): Likewise.
13483 (empty_statement:): Report deprecated empty declaration. Fixes
13484 gcj/295
13485
134862000-08-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13487
13488 * parse.y (build_dot_class_method_invocation): Changed parameter
13489 name to `type'. Build signature from `type' and convert it to a
13490 STRING_CST if it's an array.
13491 (patch_incomplete_class_ref): `build_dot_class_method_invocation'
13492 to use `ref_type' directly.
13493
134942000-08-06 Ovidiu Predescu <ovidiu@cup.hp.com>
13495
13496 * lang-options.h: Added a comma after the last element to avoid
13497 syntax errors when other languages define additional options.
13498
134992000-08-04 Zack Weinberg <zack@wolery.cumb.org>
13500
13501 * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
13502 * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
13503 (jc1): Link with $(BACKEND).
13504 (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
13505
135062000-08-02 Zack Weinberg <zack@wolery.cumb.org>
13507
13508 * jvspec.c: Adjust type of second argument to
13509 lang_specific_driver, and update code as necessary.
13510
13511 * class.c (build_dtable_decl): Initialize dummy.
13512
135132000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13514
13515 * parse.y (maybe_yank_clinit): When generating bytecode: non empty
13516 method bodies not to rule out discarding `<clinit>'; don't use
13517 <clinit> to initialize static fields with constant initializers.
13518
135192000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13520
13521 * gjavah.c (print_method_info): Added `synth' parameter. Skip
13522 synthetic methods.
13523 (method_synthetic): New global.
13524 (HANDLE_METHOD): Recognize synthetic method and tell
13525 `print_method_info' about it.
13526 (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
13527 processing a synthetic method.
13528 * jcf-reader.c (skip_attribute): New function.
13529 ( skip_attribute): Likewise.
13530
135312000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13532
13533 * parse.y (build_outer_field_access): Fixed comments.
13534 (fix_constructors): Emit the initialization of this$<n> before
13535 calling $finit$.
13536 (resolve_qualified_expression_name): Build an access to `decl' if
13537 necessary.
13538
135392000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
13540
13541 * parse-scan.y (curent_class): Non longer const.
13542 (inner_qualifier, inner_qualifier_length): Deleted.
13543 (current_class_length): New global.
13544 (bracket_count): Fixed typo in leading comment.
13545 (anonymous_count): New global.
13546 (class_instance_creation_expression:): Handle anonymous classes.
13547 (anonymous_class_creation:): New rule.
13548 (push_class_context): Rewritten.
13549 (pop_class_context): Likewise.
13550 (INNER_QUALIFIER): Macro deleted.
13551 (report_class_declaration): call `push_class_context' when
13552 entering the function. `fprintf' format modified not to use
13553 INNER_QUALIFIER.
13554 (report_class_declaration): Assign `package_name' and
13555 `current_class' to NULL separately.
13556
135572000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
13558
13559 * expr.c (build_invokeinterface): Call layout_class_methods on
13560 target interface.
13561
135622000-07-27 Tom Tromey <tromey@cygnus.com>
13563 Anthony Green <green@cygnus.com>
13564 Alexandre Petit-Bianco <apbianco@cygnus.com>
13565
13566 * class.c (make_class_data): Create vtable for abstract classes.
13567 (get_dispatch_table): Changed to cope with abstract classes.
13568
135692000-07-27 Tom Tromey <tromey@cygnus.com>
13570
13571 * parse.y (patch_method_invocation): Don't reverse the argument
13572 list when dealing with anonymous class constructors. Fixed typo in
13573 comment.
13574
135752000-07-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
13576
13577 * parse.y (build_alias_initializer_parameter_list): Reverse
13578 crafted list when building aliases for anonymous class
13579 constructors.
13580
135812000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13582
13583 * parse.y (jdep_resolve_class): Don't bother checking potential
13584 innerclass access if `decl' is NULL.
13585 (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
13586 WFL.
13587
135882000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13589
13590 * parse.c: Remove (again.)
13591
135922000-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
13593
13594 * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
13595 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
13596 outside the `if' statement, alias to innerclass removed, `decl'
13597 used to mark the class complete.
13598
135992000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
13600
13601 * parse.y (simple_name:): Fixed typo in error message.
13602
136032000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
13604
13605 * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
13606 or its first operand can be error marks.
13607
136082000-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
13609
13610 * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
13611 * parse.y (method_header): Likewise.
13612
136132000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
13614
13615 * parse.y (process_imports): Consider that one might be trying to
13616 import an innerclass. Fixes gcj/254
13617
136182000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
13619
13620 * parse.y (find_as_inner_class): Handle the case where the
13621 enclosing context of an innerclass has been loaded as bytecode.
13622
136232000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
13624
13625 * parse.y (simple_name:): Reject `$' in type names.
13626 (resolve_type_during_patch): Use `type' as a second
13627 argument to resolve_no_layout. Fixes gcj/257.
13628
136292000-07-18 Bryce McKinlay <bryce@albatross.co.nz>
13630
13631 * parse.y (find_most_specific_methods_list): Select the only
13632 non-abstract method even if max has been set.
13633 Fixes gcj/285, gcj/298.
13634
136352000-07-18 Jeff Sturm <jeff.sturm@appnet.com>
13636
13637 * lang-specs.h: Added %(jc1) to java compiler options.
13638
136392000-07-14 Zack Weinberg <zack@wolery.cumb.org>
13640
13641 * .cvsignore: New file.
13642
136432000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13644
13645 * parse.y (not_accessible_p): Access granted to innerclasses
13646 (indirectly) extending the reference type. Fixes gcj/249.
13647
136482000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13649
13650 * parse.y (patch_method_invocation): Fixed comment.
13651 (maybe_use_access_method): Build this$<n>s to the context of the
13652 target method, or a type that extends it. Fixes gcj/242.
13653
136542000-07-13 Mark Mitchell <mark@codesourcery.com>
13655
13656 * parse.c: Remove.
13657
136582000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13659
13660 * parse.y (fold_constant_for_init): Avoid bullish conversion.
13661
136622000-07-13 Tom Tromey <tromey@cygnus.com>
13663
13664 * lang-specs.h: Added %{I*}.
13665
136662000-07-13 Zack Weinberg <zack@wolery.cumb.org>
13667
13668 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
13669
136702000-07-12 Mark Mitchell <mark@codesourcery.com>
13671
13672 * parse-scan.c: Remove.
13673
136742000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
13675
13676 * class.c (set_super_info): Handled protected inner classes.
13677 (common_enclosing_context_p): Bail early if arguments aren't both
13678 inner classes.
13679 (get_access_flags_from_decl): Handle private and protected inner
13680 classes.
13681 * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
13682 (CLASS_PROTECTED): Likewise.
13683 (struct lang_type): New bitfield `poic'.
13684 * parse.y (jdep_resolve_class): Call check_inner_class_access on
13685 inner classes only.
13686 (check_inner_class_access): Renamed arguments, added
13687 comments. Handles protected inner classes (fixes gcj/225)
13688 (not_accessible_p): Fixed comments. Avoid handling inner classes.
13689
136902000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
13691
13692 * parse.y (resolve_qualified_expression_name): Verify qualified
13693 access to `this'. Fixes gcj/239.
13694
136952000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
13696
13697 * jcf-write.c (generate_classfile): Don't install ConstantValue
13698 for null pointers.
13699
137002000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13701
13702 * parse.y (resolve_qualified_expression_name): Handle inner class
13703 access. Fixes gcj/256.
13704
137052000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13706
13707 * jcf-write.c (generate_classfile): Properly install the
13708 ConstantValue attribute and the initial value constant pool index
13709 on string constants.
13710 * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
13711 class files.
13712
137132000-07-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
13714
13715 * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
13716 construct.
13717 * parse.y (find_as_inner_class): Fixed typo.
13718 (do_resolve_class): Explore enclosing contexts when searching for
13719 innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
13720 (check_inner_class_access): Check `decl' which can be null in case
13721 of previous errors.
13722
137232000-07-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13724
13725 * java-tree.h (java_debug_context): Declared `extern'.
13726 (safe_layout_class): Likewise.
13727 * parse.y (resolve_field_access): Field must be `static' in order
13728 to be replaced by its initial value. Added comments.
13729 (find_applicable_accessible_methods_list): Fixed typo.
13730 (find_most_specific_methods_list): Methods found in innerclasses
13731 take over methods founds in the enclosing contexts.
13732 (java_complete_tree): Loosen restrictions on the type of DECLs
13733 that can be replaced by their initialization values.
13734 (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
13735
137362000-07-05 Tom Tromey <tromey@cygnus.com>
13737
13738 * Make-lang.in (PARSE_DIR): New macro.
13739 (PARSE_RELDIR): Likewise.
13740 (PARSE_C): Likewise.
13741 (PARSE_SCAN_C): Likewise.
13742 ($(PARSE_C)): New target.
13743 ($(PARSE_SCAN_C)): Likewise.
13744 (SET_BISON): New macro.
13745 (BISONFLAGS): Likewise.
13746 (JAVABISONFLAGS): Likewise.
13747
137482000-07-02 Bryce McKinlay <bryce@albatross.co.nz>
13749
13750 * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
13751 argument on the first pass for CNI as well as JNI.
13752 (print_method_info): Set up method name on the first pass only.
13753
137542000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13755
13756 * parse.y (parser_qualified_classname): Removed parameter
13757 `is_static'.
13758 (create_interface): Removed first passed parameter to
13759 parser_qualified_classname.
13760 (create_class): Likewise. Don't install alias on static
13761 innerclasses. Fixes gcj/275.
13762
137632000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13764
13765 * parse.y (maybe_generate_pre_expand_clinit): Don't build a
13766 debugable statement with empty_stmt_node. Fixes gcj/272
13767
137682000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13769
13770 * expr.c (build_instanceof): Layout type after it's loaded. Fixes
13771 gcj/271.
13772
137732000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
13774
13775 * jcf-write.c (push_long_const): Appropriately cast short negative
13776 constant to jword.
13777
137782000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
13779
13780 * parse.y (verify_constructor_super): Use loop variable
13781 `m_arg_type' initialized with `mdecl_arg_type'.
13782
137832000-06-29 Tom Tromey <tromey@cygnus.com>
13784
13785 * parse.y (resolve_field_access): Handle case where `type_found'
13786 is NULL.
13787
137882000-06-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
13789
13790 * expr.c (lookup_field): The same field can be found through two
13791 different interface. Don't declare it ambiguous in that case.
13792
137932000-06-27 Tom Tromey <tromey@cygnus.com>
13794
13795 * lex.c (java_lineterminator): Don't recognize \r after \n. If \r
13796 follows \r, then unget it at a lower level.
13797
137982000-06-26 Tom Tromey <tromey@cygnus.com>
13799
13800 * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
13801 java_complete_tree.
13802
138032000-06-25 Tom Tromey <tromey@cygnus.com>
13804
13805 * parse.y (for_statement): Wrap expression in a WFL if it is a
13806 constant. For PR gcj/268.
13807
138082000-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13809
13810 * parse.y (do_resolve_class): Minor optimiztion in the package
13811 list search. Removed unnecessary test and return statement.
13812 (valid_ref_assignconv_cast_p): Order of arguments to
13813 enclosing_context_p fixed.
13814
138152000-06-24 Tom Tromey <tromey@cygnus.com>
13816
13817 * expr.c (lookup_field): Print error and return error_mark_node if
13818 field reference is ambiguous.
13819
13820 * parse.y (check_abstract_method_definitions): Also check if
13821 `other_method' is abstract.
13822
138232000-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
13824
13825 * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
13826 classes.
13827 * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
13828 (struct lang_type): New field `pic'.
13829 (CLASS_PRIVATE): New macro.
13830 * parse.y (check_inner_class_access): New function.
13831 (jdep_resolve_class): Call it.
13832
138332000-06-23 Tom Tromey <tromey@cygnus.com>
13834
13835 * parse.y (patch_incomplete_class_ref): Initialize the returned
13836 class. For PR gcj/260.
13837
138382000-06-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
13839
13840 * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
13841
138422000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
13843
13844 * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
13845 Java specific checks.
13846 * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
13847 screened by DECL_P.
13848 * java-tree.def (CASE_EXPR): Marked 'e'.
13849 (DEFAULT_EXPR): Likewise.
13850 * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
13851 screened by DECL_P.
13852 * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
13853 Java specific checks.
13854 (generate_bytecode_insns): Test try_block for BLOCK before using
13855 BLOCK_EXPR_BODY.
13856 * parse.y (build_wfl_wrap): Added `location' argument. Set
13857 EXPR_WFL_LINECOL accordingly.
13858 (dim_expr:): Wrap constants with WFLs.
13859 (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
13860 (resolve_package): Check for `stmt' not being a BLOCK before
13861 building a debuggable statement with it.
13862 (make_qualified_primary): Added extra parameter to build_wfl_wrap
13863 invocation.
13864 (resolve_field_access): Make sure `decl' is a DECL before treating
13865 it as such.
13866 (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
13867 IDENTIFIER_NODE before treating it as such.
13868 (patch_new_array_init): Make sure `elt' is a TREE_LIST before
13869 treating it as such.
13870 (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
13871 to be applied only on non array types.
13872
138732000-06-16 Per Bothner <per@bothner.com>
13874
13875 * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN): Don't
13876 define in terms of DECL_RESULT, as that fails when --enable-checking.
13877
138782000-06-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13879
13880 * jcf-write.c (CHECK_PUT): Add static prototype. Make pointer
13881 types the same in comparison.
13882 (CHECK_OP): Add static prototype.
13883
138842000-06-13 Jakub Jelinek <jakub@redhat.com>
13885
13886 * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
13887 * parse.y (java_complete_class): Set DECL_USER_ALIGN.
13888 * parse.c: Rebuilt.
13889
138902000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13891
13892 * decl.c (create_primitive_vtable): Prototype.
13893
13894 * jcf-write.c (generate_bytecode_insns): Initialize variable
13895 `saved_context'.
13896
13897 * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
13898
138992000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
13900
13901 * parse.y (find_applicable_accessible_methods_list): Use a hashtable
13902 to track searched classes, and do not search the same class more than
13903 once. Call find_applicable_accessible_methods_list on immediate
13904 superclass, instead of search_applicable_method_list on all ancestors.
13905 Fix for PR gcj/238.
13906
139072000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
13908
13909 * parse.y (register_fields): Permit static fields in inner classes
13910 if they are final. Fix for PR gcj/255.
13911
139122000-06-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
13913
13914 * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
13915 * parse.y (find_in_imports): Returned type changed to void,
13916 leading comment fixed.
13917 (register_package): New function.
13918 (qualify_and_find): Likewise.
13919 (package_declaration:): Use `register_package'.
13920 (single_type_import_declaration:): Removed local variable
13921 `node'. Added missing `;' for consistency.
13922 (type_import_on_demand_declaration:): Use `chainon' to link new
13923 entries.
13924 (lookup_field_wrapper): Lookup local variables defined in outer
13925 contexts first.
13926 (java_complete_class): Don't reverse the list of imported on demand.
13927 (do_resolve_class): Reorganized. Removed local variable
13928 `original_name'. Call `qualify_and_find' with the current package
13929 name, invoke `find_in_imports_on_demand' right after. Call
13930 `qualify_and_find' with the packages we've seen so far. Fixed
13931 operations numbering in comments.
13932 (java_expand_class): Don't reverse `package_list'.
13933 (find_most_specific_methods_list): New local variables `abstract'
13934 and `candidates'. Use them to pick the right method.
13935
139362000-06-06 Tom Tromey <tromey@ferrule.cygnus.com>
13937
13938 * parse.y (check_modifiers_consistency): Don't subtract out
13939 `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
13940
139412000-06-04 Philipp Thomas <pthomas@suse.de>
13942
13943 * Makefile.in (INTLLIBS): New.
13944 (LIBS): Add above.
13945 (DEPLIBS): Ditto.
13946
139472000-06-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13948
13949 * class.c (get_dispatch_table): Build the vtable dummy entry list
13950 element with a null purpose. Fixed leading comment.
13951 (build_dtable_decl): Build an accurate dtable type when appropriate
13952 and use it.
13953
139542000-06-02 Richard Henderson <rth@cygnus.com>
13955
13956 * lang.c (lang_get_alias_set): New.
13957
139582000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
13959
13960 * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
13961 before using it as the accessed field.
13962
139632000-05-31 Tom Tromey <tromey@cygnus.com>
13964
13965 * java-tree.h (boolean_array_vtable, byte_array_vtable,
13966 char_array_vtable, short_array_vtable, int_array_vtable,
13967 long_array_vtable, float_array_vtable, double_array_vtable):
13968 Declare.
13969 * expr.c (get_primitive_array_vtable): New function.
13970 (create_primitive_vtable): New function.
13971 (java_lang_expand_expr): Enable code to statically generate
13972 arrays.
13973 * decl.c (init_decl_processing): Create primitive vtables.
13974 (boolean_array_vtable, byte_array_vtable, char_array_vtable,
13975 short_array_vtable, int_array_vtable, long_array_vtable,
13976 float_array_vtable, double_array_vtable): Define.
13977
139782000-05-26 Zack Weinberg <zack@wolery.cumb.org>
13979
13980 * java/parse.y (find_applicable_accessible_methods_list):
13981 Don't add an uninitialized value to the list.
13982
139832000-05-25 Tom Tromey <tromey@cygnus.com>
13984
13985 * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
13986 when trying to see if field's class should be initialized. Always
13987 initialize field's declaring class, not qualified class.
13988 For PR gcj/162.
13989
13990 * parse.y (array_constructor_check_entry): Pass `wfl_value', not
13991 `wfl_operator', to maybe_build_primttype_type_ref.
13992 Fixes PR gcj/235.
13993
139942000-05-23 Bryce McKinlay <bryce@albatross.co.nz>
13995
13996 * parse.y (patch_method_invocation): Don't try to lookup methods
13997 in primitive types.
13998
139992000-05-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
14000
14001 * parse.y (resolve_field_access): Call the appropriate <clinit>
14002 before accessing the length of a static array. Craft a decl for
14003 the field while its time. Fixes PR gcj/129.
14004
140052000-05-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
14006
14007 * parse.y (resolve_package): Correctly set `*next' (was off by
14008 one.)
14009 (resolve_qualified_expression_name): Fixed comment.
14010
140112000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
14012
14013 * jcf-parse.c (jcf_parse_source): Reset current_class and
14014 current_function_decl to NULL before parsing a new file.
14015
140162000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
14017
14018 * parse.y (block_end:): If the collected block doesn't feature a
14019 statement, insert an empty statement.
14020
140212000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
14022
14023 * parse.y (maybe_yank_clinit): New function.
14024 (maybe_generate_pre_expand_clinit): Always link <clinit> at the
14025 end of the list of methods belonging to a class.
14026 (java_complete_expand_method): Check whether <clinit> is really
14027 necessary and expand it accordingly.
14028
140292000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
14030
14031 * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
14032 processed by the method's switch statement.
14033
140342000-05-19 Tom Tromey <tromey@cygnus.com>
14035
14036 * java-tree.h: Added init state enum.
14037 * decl.c (emit_init_test_initialization): Initialize class
14038 initialization check variable by looking at class' state.
14039
140402000-05-19 Tom Tromey <tromey@cygnus.com>
14041
14042 * java-tree.h (build_instanceof): Declare.
14043 (build_get_class): Declare.
14044 * parse.y (patch_binop): Use build_instanceof.
14045 * expr.c (build_instanceof): New function. If class is final,
14046 don't make a function call.
14047 (expand_java_INSTANCEOF): Use it.
14048 (build_get_class): New function.
14049
140502000-05-18 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
14051
14052 * jcf-write.c (generate_classfile): Scan the source_file for
14053 slashes with the right pointer variable.
14054
140552000-05-17 Andrew Cagney <cagney@b1.cygnus.com>
14056
14057 * lang.c (lang_decode_option): Update -Wunused flags by calling
14058 set_Wunused.
14059 * decl.c (poplevel): Replace warn_unused with warn_unused_label.
14060
140612000-05-09 Zack Weinberg <zack@wolery.cumb.org>
14062
14063 * check_init.c (check_init): Constify local char *.
14064 * class.c (push_class): Constify local char *.
14065 * java_tree.h: Update prototypes.
14066 * jcf-io.c (open_class): Constify filename parameter and
14067 return value.
14068 (find_class): Remove redundant string copy. Cast return from
14069 open_class.
14070 * jcf-parse.c (read_class, parse_class_file, yyparse):
14071 Constify local char *.
14072 * jcf-write.c (generate_bytecode_insns, generate_classfile):
14073 Constify local char *.
14074 * jcf.h (JCF): Constify filename and classname.
14075 (JCF_FINISH): Cast args to FREE to char * when appropriate.
14076 * lang.c (init_parse): Constify parameter and return value.
14077 * lex.c (java_get_line_col): Constify filename parameter.
14078 * parse.h: Constify parser_ctxt.filename. Update prototypes.
14079 * parse.y (java_parser_context_suspend,
14080 issue_warning_error_from_context, safe_layout_class): Constify
14081 local char *.
14082 * parse.c: Regenerate.
14083
140842000-05-08 Tom Tromey <tromey@cygnus.com>
14085
14086 * expr.c (build_jni_stub): Cache the result of
14087 _Jv_LookupJNIMethod.
14088
140892000-05-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
14090
14091 * decl.c (predef_filenames_size): Now 7.
14092 (predef_filenames): New seventh entry.
14093
140942000-05-04 Tom Tromey <tromey@cygnus.com>
14095
14096 * boehm.c (mark_reference_fields): Don't mark RawData fields.
14097 Keep track of when we've seen a reference field after a
14098 non-reference field.
14099 (get_boehm_type_descriptor): Handle case where we see
14100 non-reference fields but no trailing reference field.
14101 * decl.c (rawdata_ptr_type_node): Define.
14102 (init_decl_processing): Initialize rawdata_ptr_type_node.
14103 * java-tree.h (rawdata_ptr_type_node): Declare.
14104
141052000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14106
14107 * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
14108 specifiers in calls to fprintf.
14109
141102000-05-03 Andrew Haley <aph@cygnus.com>
14111
14112 * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
14113
14114 * javaop.h (WORD_TO_INT): New function.
14115 (IMMEDIATE_s4): Use WORD_TO_INT.
14116 * jcf.h (JPOOL_INT): Ditto.
14117
14118 * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
14119 separator.
14120
141212000-04-19 Tom Tromey <tromey@cygnus.com>
14122
14123 * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
14124 on native function.
14125 * jcf-parse.c (parse_class_file): Call build_jni_stub for native
14126 JNI methods.
14127 * expr.c (build_jni_stub): New function.
14128 * lang-specs.h: -fjni and -femit-class-file are incompatible.
14129 * parse.c: Rebuilt.
14130 * parse.y (java_complete_expand_methods): Expand a native method
14131 and call build_jni_stub if -fjni given.
14132 * lang-options.h: Document -fjni.
14133 * lang.c (flag_jni): New global.
14134 (lang_f_options): Added `jni' entry.
14135 * java-tree.h (soft_lookupjnimethod_node,
14136 soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
14137 Declare.
14138 (flag_jni): Declare.
14139 (build_jni_stub): Declare.
14140 (struct lang_decl): Added `native' flag.
14141 (METHOD_NATIVE): Redefined to use `native' field of lang specific
14142 structure.
14143 * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
14144 soft_jnipopsystemframe_node): New globals.
14145 (init_decl_processing): Set them. _Jv_InitClass only takes one
14146 argument.
14147
14148 * java-tree.def: Put into `C' mode.
14149
141502000-04-27 Tom Tromey <tromey@cygnus.com>
14151
14152 Fix for PR gcj/2:
14153 * expr.c (expand_invoke): Generate check to see if object pointer
14154 is null in nonvirtual invocation case.
14155 * java-tree.h (soft_nullpointer_node): Declare.
14156 * decl.c (soft_nullpointer_node): New global.
14157 (init_decl_processing): Initialize soft_nullpointer_node.
14158 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
14159 or `private' methods.
14160 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
14161
141622000-04-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
14163
14164 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
14165 from <clinit>
14166
141672000-04-26 Tom Tromey <tromey@cygnus.com>
14168
14169 * zextract.c (find_zip_file_start): New function.
14170 (read_zip_archive): Use it.
14171
141722000-04-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
14173
14174 * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
14175
141762000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
14177
14178 * class.c (common_enclosing_context_p): New function.
14179 * java-tree.h (common_enclosing_context_p): Added prototype.
14180 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
14181 classes sharing an outer context with the current instance.
14182 * parse.y (build_access_to_thisn): Fixed leading comment.
14183 (verify_constructor_super): New local `supper_inner'. Skip
14184 enclosing context argument in the case of inner class constructors.
14185 (patch_method_invocation): Insert proper context as second
14186 parameter to pure inner class constructor super invocations.
14187
141882000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
14189
14190 * parse.y (end_class_declaration): Reset the interface number
14191 counter.
14192
141932000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
14194
14195 * parse.y (source_start_java_method): Deleted unnecessary code.
14196 (patch_method_invocation): Fixed comment.
14197
141982000-04-24 Robert Lipe <robertlipe@usa.net>
14199
14200 * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
14201
142022000-04-23 Tom Tromey <tromey@cygnus.com>
14203
14204 * boehm.c (mark_reference_fields): Use int_byte_position.
14205
142062000-04-22 Tom Tromey <tromey@cygnus.com>
14207
14208 * boehm.c (mark_reference_fields): Only call byte_position on
14209 non-static fields.
14210
142112000-04-22 Tom Tromey <tromey@cygnus.com>
14212
14213 * boehm.c (mark_reference_fields): Added `last_view_index'
14214 argument. Use DECL_FIELD_OFFSET to determine field's offset.
14215
142162000-04-20 Mo DeJong <mdejong@cygnus.com>
14217
14218 * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
14219 * parse.y (check_class_interface_creation): Fixed comments. Select
14220 permitted modifiers for (inner) interfaces. Changed error message
14221 to report rejected modifiers used with local classes.
14222
142232000-04-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
14224
14225 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
14226 of directly inherited type considered in scope.
14227 * parse.y (do_resolve_class): Search inherited classes for inner
14228 classes.
14229
142302000-04-20 Tom Tromey <tromey@cygnus.com>
14231
14232 * parse.y (not_accessible_p): Use member's class, not current
14233 class, when doing inheritance check for protected reference.
14234 Fixes PR gcj/124.
14235
142362000-04-20 Jason Schroeder <shrode@subnature.com>
14237
14238 * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
14239
142402000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
14241
14242 * parse.y (lookup_field_wrapper): Search for final local aliases.
14243 (resolve_expression_name): Let lookup_field_wrapper search for
14244 final local aliases. Force the value of `name' if one is found.
14245 (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
14246 an expression name. Fixed comments.
14247
142482000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
14249
14250 * parse.y (yyerror): `msg' can be null, don't use it in that case.
14251
142522000-04-19 Tom Tromey <tromey@cygnus.com>
14253
14254 * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
14255
142562000-04-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
14257
14258 * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
14259
142602000-04-18 Tom Tromey <tromey@cygnus.com>
14261
14262 PR gcj/211:
14263 * gjavah.c (utf8_cmp): Changed return value.
14264 (cxx_keyword_subst): Handle all C++ keywords. Allocate new return
14265 result.
14266 (cxx_keywords): New global.
14267 (get_field_name): Handle new result of cxx_keyword_subst.
14268 (print_method_info): Likewise.
14269
142702000-04-17 Bryce McKinlay <bryce@albatross.co.nz>
14271
14272 * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
14273 with a newline, for CNI.
14274 (print_stub_or_jni): Print a space or newline before method name for
14275 CNI as well as JNI.
14276 (print_cxx_classname): Don't write leading "::" in CNI stub method.
14277 (process_file): Include gcj/cni.h if generating CNI stubs.
14278
142792000-04-16 Tom Tromey <tromey@cygnus.com>
14280
14281 * gjavah.c (decompile_method): Use print_field_name.
14282 Fixes PR gcj/205.
14283
142842000-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14285
14286 * parse.y (java_expand_classes): Reverse the package list once.
14287 (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
14288 reduction.
14289 (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
14290 the `==' and `!=' operators.
14291
142922000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
14293
14294 * jcf-write.c (generate_bytecode_insns): At invocation time,
14295 always relate an interface method to the type of its selector.
14296
142972000-04-05 Tom Tromey <tromey@cygnus.com>
14298
14299 Fix for PR gcj/2:
14300 * expr.c (expand_invoke): Generate check to see if object pointer
14301 is null in nonvirtual invocation case.
14302 * java-tree.h (soft_nullpointer_node): Declare.
14303 * decl.c (soft_nullpointer_node): New global.
14304 (init_decl_processing): Initialize soft_nullpointer_node.
14305 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
14306 or `private' methods.
14307 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
14308
143092000-04-05 Tom Tromey <tromey@cygnus.com>
14310
14311 Fix for PR gcj/140:
14312 * parse.y (check_final_assignment): Recognize assignments to the
14313 `length' field of an array when generating class files.
14314
143152000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
14316
14317 * class.c (decl_hash): Prototype removed.
14318 (decl_compare): Likewise.
14319
143202000-04-05 Tom Tromey <tromey@cygnus.com>
14321
14322 * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
14323 * parse.y (check_modifiers_consistency): Check for final/volatile
14324 clash. Fixes PR gcj/164.
14325
143262000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
14327
14328 * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
14329 made global.
14330 (java_hash_compare_tree_node): Renamed from `decl_compare, made
14331 global.
14332 (add_method_1): Use `java_hash_hash_tree_node' and
14333 `java_hash_compare_tree_node'.
14334 * java-tree.h: (java_hash_hash_tree_node): Prototyped.
14335 (java_hash_compare_tree_node): Likewise.
14336 * parse.y (find_applicable_accessible_methods_list): Create,
14337 delete and use a hash table to remember already searched interfaces.
14338
143392000-04-03 Matt Welsh <mdw@cs.berkeley.edu>
14340
14341 * jcf-depend.c (add_entry): Fixed bug where list was always replaced
14342 with latest entry.
14343
143442000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14345
14346 * boehm.c (mark_reference_fields, set_bit): Prototype.
14347 (set_bit): Un-ANSI-fy definition.
14348
14349 * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
14350 Prototype.
14351
14352 * decl.c (emit_init_test_initialization): Likewise.
14353
14354 * gjavah.c (jni_print_char): Likewise.
14355
14356 * parse.y (create_new_parser_context): Likewise.
14357
143582000-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
14359
14360 * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
14361 patch missing hunk. Fixed indentation.
14362
143632000-03-30 Tom Tromey <tromey@cygnus.com>
14364
14365 * gjavah.c (D_NAN_MASK): Only define as word-reversed when
14366 HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
14367
143682000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
14369
14370 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
14371 when negative *before* using it as an array index.
14372 * ChangeLog: Fixed typo.
14373
143742000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
14375
14376 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
14377 to 0 when it reaches -1.
14378
143792000-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
14380
14381 * jcf-parse.c (get_constant): Properly cast `num' during the
14382 invocation of `add_double'.
14383 * jcf-write.c (push_long_const): Properly cast `lo' before
14384 comparing it to short bounds.
14385 * parse-scan.y (interface_declaration:): Rule re-arrange so that
14386 `interface_body:' is reduced after the current interface is
14387 pushed.
14388
143892000-03-26 Tom Tromey <tromey@cygnus.com>
14390
14391 * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
14392 Java-specific `-f' option.
14393
143942000-03-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14395
14396 * decl.c (init_decl_processing): Only call initialize_sizetypes once.
14397 Adjust order of making types.
14398 Make bitsize_*_node values.
14399
144002000-03-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14401
14402 * class.c (make_field_value): Use byte_position.
14403 * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
14404 (java_array_data_offset): Likewise.
14405 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
14406 bzero call.
14407
144082000-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
14409
14410 * parse.y (check_abstract_method_definitions): New local
14411 `end_type_reached'. Make sure we also consider `end_type'.
14412 (java_check_abstract_method_definitions): Make sure we eventually
14413 consider `java.lang.Object'.
14414 (maybe_use_access_method): Don't use access method if not in the
14415 context of a pure inner class or if the method's context is right.
14416 (find_applicable_accessible_methods_list): New static flag
14417 `object_done'. Don't search abstract classes as interfaces. Fixed
14418 indentation. Fixed the `java.lang.Object' only search. Search
14419 class interface(s) first, then fully search enclosing contexts.
14420 (find_most_specific_methods_list): Pick the closest candidate when
14421 they're all abstract.
14422
144232000-03-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
14424
14425 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
14426 properly initialize `finished_label'. Don't emit gotos for empty
14427 try statements.
14428
144292000-03-19 Martin v. Löwis <loewis@informatik.hu-berlin.de>
14430
14431 * except.c (emit_handlers): Clear catch_clauses_last.
14432
144332000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
14434
14435 * parse.y (check_method_types_complete): New function.
14436 (create_class): Reset anonymous class counter only when seeing an
14437 non inner classe.
14438 (java_complete_class): JDEP_METHOD: Don't recompute signature
14439 if incomplete.
14440
144412000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
14442
14443 * class.c (build_static_ref): Fixed indentation in comment.
14444 * java-tree.def (TRY_EXPR): Fixed typo in name.
14445 (CLASS_LITERAL): Likewise.
14446 * java-tree.h: (TYPE_DOT_CLASS): New macro.
14447 (struct lang_type): New field `dot_class'.
14448 * jcf-write.c (generate_bytecode_insns): Fixed error message.
14449 (generate_classfile): Method `class$' is synthetic.
14450 * parse.y (build_do_class_method): New function.
14451 (build_dot_class_method_invocation): Likewise.
14452 (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary.
14453 (resolve_qualified_expression_name): Handle CLASS_LITERAL.
14454 (qualify_ambiguous_name): Likewise.
14455 (patch_incomplete_class_ref): Invoke synthetic method if necessary.
14456 (build_try_statement): Fixed leading comment.
14457
144582000-03-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14459
14460 * class.c (make_field_value): Properly handle sizes.
14461 (get_dispatch_vector): Use tree_low_cst and host_integerp.
14462 (layout_class_method): Count using trees.
14463 * decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node.
14464 * expr.c (java_array_data_offset): Use int_bit_position.
14465 (build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
14466 (build_invokevirtual): Use tree_low_cst and do computations with trees.
14467
144682000-03-16 Tom Tromey <tromey@cygnus.com>
14469
14470 * lang.c (flag_hash_synchronization): New global.
14471 (lang_f_options): Added `hash-synchronization'.
14472 * lang-options.h: Mention -fhash-synchronization.
14473 * java-tree.h (flag_hash_synchronization): Declare.
14474 * expr.c (java_lang_expand_expr): Only push `sync_info' value when
14475 hash table synchronization is disabled.
14476 * decl.c (init_decl_processing): Only push `sync_info' value when
14477 hash table synchronization is disabled.
14478 * class.c (make_class_data): Only push `sync_info' field when hash
14479 table synchronization is disabled. Removed dead code.
14480
144812000-03-16 Tom Tromey <tromey@cygnus.com>
14482
14483 * lang.c (lang_decode_option): Enable -Wunused when -Wall given.
14484
144852000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
14486
14487 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous
14488 classes.
14489 * parse.y (patch_method_invocation): Handle anonymous classes
14490 creation in static context.
14491
144922000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
14493
14494 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro.
14495 * parse.y (resolve_qualified_expression_name): Use it.
14496 (patch_method_invocation): Likewise.
14497
144982000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
14499
14500 * parse.y (register_incomplete_type): JDEP_ENCLOSING set
14501 depending on the type of dependency which dictates what the
14502 current class is.
14503 (unresolved_type_p): Resolved types limited to the current class.
14504
145052000-03-15 Tom Tromey <tromey@cygnus.com>
14506
14507 * decl.c (init_decl_processing): Set type of `sync_info' to be
14508 pointer to Object.
14509
14510 * boehm.c (get_boehm_type_descriptor): Correctly compute `bits'.
14511 Correctly compute bit number for current slot. Zero `high' and
14512 `low' in DS_LENGTH case. Don't skip inherited fields. Use
14513 mark_reference_fields.
14514 (mark_reference_fields): New function.
14515
145162000-03-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14517
14518 * parse.y (register_incomplete_type): Fixed initialization of
14519 JDEP_ENCLOSING.
14520
145212000-02-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
14522
14523 * parse-scan.y (inner_qualifier, inner_qualifier_length): New
14524 static globals.
14525 (push_class_context, pop_class_context): New function.
14526 (class_body:): Call pop_class_context.
14527 (interface_body:): Likewise.
14528 (INNER_QUALIFIER): New macro.
14529 (report_class_declaration): Changed output format and use
14530 INNER_QUALIFIER. Call push_class_context.
14531
145322000-02-14 Andrew Haley <aph@cygnus.com>
14533
14534 * check-init.c (check_init): Add new cases for unary and binary
14535 tree nodes.
14536
145372000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
14538
14539 * parse.y (resolve_package): Set `next' once a type name has been
14540 progressively discovered.
14541 (resolve_qualified_expression_name): Propagate resolution only if
14542 there are remaining qualifiers. Take into account `q' might have
14543 been cleared after re-qualification.
14544 * parse.y (patch_method_invocation): New local `resolved'.
14545 Section dealing with qualified expression rewritten to use
14546 resolve_field_access.
14547
145482000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
14549
14550 * parse.h (PUSH_CPC): Fixed indentation.
14551 (DEBUG_CPC): New macro.
14552 (SET_CPC_INITIALIZER_STMT, SET_CPC_STATIC_INITIALIZER_STMT,
14553 SET_CPC_INSTANCE_INITIALIZER_STMT): New macros.
14554 * parse.y (class_body_declaration:): Use
14555 SET_CPC_INSTANCE_INITIALIZER_STMT.
14556 (method_declaration:): Check for null current_function_decl.
14557 (static_initializer:): Use SET_CPC_STATIC_INITIALIZER_STMT.
14558 (java_parser_context_pop_initialized_field): Better handling of
14559 empty lists.
14560 (maybe_make_nested_class_name): Mark nested class name as
14561 qualified when necessary.
14562 (end_class_declaration): Don't call java_parse_context_resume when
14563 one or more error occurred.
14564 (add_inner_class_fields): Use SET_CPC_INITIALIZER_STMT.
14565 (register_fields): Use SET_CPC_STATIC_INITIALIZER_STMT and
14566 SET_CPC_INITIALIZER_STMT.
14567 (method_header): Check for inner classes declaring static methods.
14568 (resolve_qualified_expression_name): Handle situation where `this'
14569 is implied.
14570
145712000-03-13 Hans Boehm <boehm@acm.org>
14572
14573 * typeck.c (build_prim_array_type): Correctly set the high word too.
14574
145752000-03-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
14576
14577 * parse.y (java_complete_expand_methods): Leave <clinit> out of
14578 ordinary methods.
14579 (maybe_generate_pre_expand_clinit): Put <clinit> at the end of the
14580 list of methods for interfaces.
14581
145822000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
14583
14584 * parse.y (qualify_ambiguous_name): Properly handle expressions
14585 using `null'.
14586
145872000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
14588
14589 * parse.y (check_final_assignment): Extended to process
14590 COMPOUND_EXPR.
14591 (patch_assignment): Have check_final_assignment called only once.
14592
145932000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
14594
14595 * java-tree.h (IS_INIT_CHECKED): New flag.
14596 * check-init.c (check_init): Test and set IS_INIT_CHECKED.
14597 * parse.y (patch_string): Call force_evaluation_order on the
14598 completed string concatenation tree.
14599 * expr.c (force_evaluation_order): Call force_evaluation_order on
14600 function's arguments too.
14601
146022000-03-06 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14603
14604 * decl.c (emit_init_test_initialization): Mark KEY as unused.
14605 * expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
14606 (build_anewarray): Likewise.
14607 * parse.y (patch_newarray): Likewise.
14608 * parse.c: Regenerated.
14609
146102000-03-06 Bryce McKinlay <bryce@albatross.co.nz>
14611
14612 * decl.c (init_decl_processing): Added new class fields `depth',
14613 `ancestors', and `idt' to class_type_node. Use
14614 _Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node.
14615 * class.c (make_class_data): Push initial values for new fields.
14616 * java-tree.h: Updated prototype for `build_invokeinterface'.
14617 * expr.c (build_invokeinterface): Changed parameters to accept
14618 `method' tree. Calculate index of `method' in its declaring
14619 interface. Build call to _Jv_LookupInterfaceMethodIdx.
14620 (expand_invoke): Call `build_invokeinterface' with new parameters.
14621 * parse.y (patch_invoke): Call `build_invokeinterface' with new
14622 parameters.
14623
146242000-03-06 Bryce McKinlay <bryce@albatross.co.nz>
14625
14626 * typeck.c (lookup_do): Search superinterfaces first
14627 when looking up an interface method. From Godmar Back
14628 <gback@cs.utah.edu>
14629
146302000-03-06 Tom Tromey <tromey@cygnus.com>
14631
14632 * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
14633
146342000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
14635
14636 * java-tree.h (lookup_argument_method2): Declared.
14637 (safe_layout_class): Prototype moved from parse.h.
14638 * parse.h (safe_layout_class): Prototype moved to java-tree.h.
14639 * parse.y (java_check_regular_methods): Local `super_class' gone.
14640 Call lookup_argument_method2 instead of lookup_argument_method.
14641 Perform modifier match for methods found declared in implemented
14642 interfaces. Fixed indentation problem. Overriding/hiding error
14643 report to take place only for methods found in classes.
14644 * typeck.c (lookup_argument_method): Changed leading
14645 comment. Re-written by calling lookup_do.
14646 (lookup_argument_method2): New function.
14647 (lookup_java_method): Re-written by calling lookup_do.
14648 (lookup_do): New function.
14649
146502000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
14651
14652 * check-init.c (check_init): Removed dead code. Handle (blank)
14653 final variables.
14654 * parse.y (declare_local_variables): New local `final_p', set it
14655 and use it to initialize LOCAL_FINAL.
14656 (check_final_assignment): Only check FIELD_DECLs.
14657
146582000-02-17 Tom Tromey <tromey@cygnus.com>
14659
14660 * Makefile.in (JAVA_OBJS): Added boehm.o.
14661 (boehm.o): New target.
14662 * Make-lang.in (JAVA_SRCS): Added boehm.c.
14663 * java-tree.h (flag_use_boehm_gc): Declare.
14664 (get_boehm_type_descriptor): Declare.
14665 * lang.c (lang_f_options): Added `use-boehm-gc'.
14666 (flag_use_boehm_gc): New global.
14667 * lang-options.h: Added -fuse-boehm-gc.
14668 * boehm.c: New file.
14669 * class.c (get_dispatch_table): If class uses a Boehm type
14670 descriptor, put it in the vtable.
14671 (make_class_data): Removed dead code.
14672
146732000-03-03 Per Bothner <per@bothner.com>
14674
14675 * decl.c (init_decl_processing): Initialize sizetype properly.
14676
146772000-03-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
14678
14679 * java-tree.h (LOCAL_CLASS_P): New flag usage and macro.
14680 (PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros.
14681 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
14682 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise.
14683 (jcf_parse): New local `current'. Load innerclasses seen in outer
14684 context being processed.
14685 * jcf-reader.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
14686 * jcf-write.c (append_innerclasses_attribute): New function.
14687 (append_innerclasses_attribute_entry): Likewise.
14688 (get_access_flags): Handle static classes. Set anonymous and local
14689 classes to be private.
14690 (generate_classfile): Attribute count adjusted. Call
14691 append_innerclasses_attribute.
14692 * parse.h (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use
14693 PURE_INNER_CLASS_TYPE_P.
14694 * parse.y (parser_qualified_classname): New parameter `is_static',
14695 produce non qualified name accordingly.
14696 (block_statement:): Set LOCAL_CLASS_P when declaring local class.
14697 (create_interface): Added argument to parser_qualified_classname.
14698 (create_class): Added argument to parser_qualified_classname. Setup
14699 alias for top level classes. Use PURE_INNER_CLASS_DECP_P.
14700 (add_inner_class_fields): Fixed indentation.
14701 (method_declarator): Use PURE_INNER_CLASS_DECP_P.
14702 (method_declarator): Fixed typo in comment.
14703 (craft_constructor): Use PURE_INNER_CLASS_DECP_P.
14704 (build_current_thisn): Likewise.
14705 (patch_method_invocation): Likewise.
14706
147072000-03-01 Martin von Löwis <loewis@informatik.hu-berlin.de>
14708
14709 * decl.c (current_function_decl): Move to toplev.c.
14710
147112000-02-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14712
14713 * java-tree.h (LABEL_PC): Relect name changes in ../tree.h.
14714 (DECL_BIT_INDEX): Use underlying representation.
14715 * parse.h (DECL_INHERITED_SOURCE_LINE): Likewise.
14716
147172000-02-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14718
14719 * expr.c (build_java_ret): Pass proper type to size_binop.
14720
147212000-02-25 Anthony Green <green@cygnus.com>
14722
14723 * expr.c (build_class_init): Mark the decl to be ignored by
14724 check_init.
14725 * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c
14726 * check-init.c: Move DECL_BIT_INDEX to java-tree.h
14727 * class.c (init_test_hash_newfunc): New function.
14728 (decl_hash): New function.
14729 (decl_compare): New function.
14730 * decl.c (emit_init_test_initialization): New function.
14731 (complete_start_java_method): Traverse the init test hashtable,
14732 calling emit_init_test_initialization.
14733 (always_initialize_class_p): Define.
14734 * expr.c (build_class_init): Use initialization tests when
14735 emitting class initialization code.
14736 (always_initialize_class_p): Declare.
14737 * jcf-parse.c (parse_class_file): Set always_initialize_class_p to
14738 1.
14739 * java-tree.h: Include hash.h.
14740 (DECL_FUNCTION_INIT_TEST_TABLE): Define.
14741 (struct lang_decl): Add init_test_table field.
14742 (init_test_hash_entry): Define.
14743
147442000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
14745
14746 * gjavah.c (main): Avoid using `argi' to report unimplemented
14747 options.
14748
147492000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
14750
14751 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
14752 initialize locals to avoid warnings. Local `exception_type' moved
14753 into if statement.
14754
147552000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
14756
14757 * parse.y (resolve_expression_name): Use `orig' as a second
14758 argument to resolve_field_access.
14759 (resolve_field_access): Removed unnecessary code when dealing with
14760 static fields.
14761
147622000-02-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
14763
14764 * class.c (push_super_field): Don't push the field twice.
14765 * jcf-parse.c (parse_source_file): Call java_reorder_fields.
14766 * parse.h (java_reorder_fields): Prototyped.
14767 * parse.y (java_reorder_fields): New function.
14768 (java_layout_class): Simplified not to worry about re-ordering.
14769
147702000-02-23 Tom Tromey <tromey@cygnus.com>
14771
14772 * gjavah.c (print_name): In JNI case, correctly quote string.
14773 (print_method_info): Don't handle overrides in JNI mode.
14774
147752000-02-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
14776
14777 * parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned
14778 value type set to `boolean_type_node'.
14779
147802000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
14781
14782 * jcf-dump.c (main): Test for correct condition after
14783 output file creation.
14784
147852000-02-19 Anthony Green <green@cygnus.com>
14786
14787 * jcf-depend.c (add_entry): Fix test for first list entry.
14788
147892000-02-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14790
14791 * class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT.
14792 * constants.c (build_constants_constructor): Likewise.
14793
147942000-02-19 Anthony Green <green@cygnus.com>
14795
14796 * jcf-depend.c (add_entry): Add entries to the end of the list.
14797
147981999-11-03 Pekka Nikander <pekka.nikander@hut.fi>
14799
14800 * decl.c (INT_TYPE_SIZE): Define if necessary.
14801 (expand_java_return): Handle the case of a native integer smaller
14802 than a JVM integer.
14803
148042000-02-18 Martin von Löwis <loewis@informatik.hu-berlin.de>
14805
14806 * gjavah.c (help): Use GCCBUGURL.
14807 * jv-scan.c (help): Likewise.
14808 * jcf-dump.c (help): Likewise.
14809
148102000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
14811
14812 * jcf-write.c (generate_bytecode_insns): Don't generate empty
14813 `finally' clauses.
14814
148152000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
14816
14817 * jcf-parse.c (load_class): Call `fatal' if no file containing
14818 the target class are found.
14819
148202000-02-16 Zack Weinberg <zack@wolery.cumb.org>
14821
14822 * Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
14823 lex.c, lex.h, and PARSE_H to...
14824 (parse.o, parse-scan.o): ...here, respectively.
14825
14826 * lex.c: Split out code that may trigger SIGFPE from yylex()
14827 to its own function.
14828 * lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value.
14829
148302000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14831
14832 * Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h.
14833
148342000-02-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
14835
14836 * parse.y (outer_field_access_p): Stop in time when outer contexts
14837 are exhausted.
14838 (resolve_qualified_expression_name): Properly qualify *everything*
14839 after a package.type to be resoled as expression names.
14840 (find_applicable_accessible_methods_list): Save/restore `class' to
14841 isolate it from a possible outer context search.
14842
148432000-02-15 Tom Tromey <tromey@cygnus.com>
14844
14845 * gjavah.c (jni_print_char): New function.
14846 (print_full_cxx_name): Use it.
14847 (decode_signature_piece): Likewise.
14848 (print_cxx_classname): Likewise.
14849
148502000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14851
14852 * Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with
14853 version.o.
14854 (jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.
14855
14856 * gjavah.c: Include version.h.
14857
14858 * jcf-dump.c: Likewise.
14859
14860 * jv-scan.c: Likewise.
14861
148622000-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
14863
14864 * parse.y (outer_field_access_fix): First parameter now a tree
14865 node. Check for assignment to final. First argument to
14866 build_outer_field_access_fix modified to accommodate prototype.
14867 (build_outer_field_access): Don't check for assignment to final
14868 here.
14869 (java_complete_lhs): MODIFY_EXPR case: Check for `error_mark_node'
14870 possibly returned by outer_field_access_fix. Changed
14871 outer_field_access_fix's first argument.
14872 (check_final_assignment): $finit$'s context is OK.
14873 (patch_unaryop): Use node instead of its line/column value when
14874 calling outer_field_access_fix.
14875
148762000-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
14877
14878 * parse.y (interface_declaration:): No longer tagged
14879 <node>. Re-installed default action.
14880 (class_member_declaration:): Handle inner interfaces.
14881 (interface_member_declaration): Handle inner interfaces and
14882 classes.
14883 (create_interface): Push error if one seen. Suspend parsing
14884 context when processing an inner interface.
14885 (register_fields): Inner class static field limitations not to
14886 apply to inner interfaces.
14887
148882000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14889
14890 * jcf-parse.c (load_class): Update `java_error_count' when a
14891 class' file can't be found.
14892 (parse.y): Avoid (byte)code generation when errors seen.
14893
148942000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14895
14896 * parse.y (java_complete_lhs): Handle TRUNC_DIV_EXPR. Ensure `fatal'
14897 decodes a valid node.
14898 (patch_binop): Handle TRUNC_DIV_EXPR.
14899
149002000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14901
14902 * parse.y (resolve_package): New local `acc'. Try to progressively
14903 build and guess a package and type name.
14904
149052000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14906
14907 * parse.y (find_applicable_accessible_methods_list): Load and
14908 layout the search class if necessary.
14909 (java_complete_tree): Keep to original type of the folded initial
14910 value.
14911
149122000-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
14913
14914 * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
14915 Generate error message if circularity is detected. New static
14916 local `list'.
14917 * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro. *
14918 * jcf-write.c (generate_bytecode_insns): Very simply handle
14919 SAVE_EXPR.
14920 * parse.y (java_check_circular_reference): Use
14921 `cyclic_inheritance_report' during report, if necessary.
14922 (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
14923 walking NEW_ARRAY_INIT twice.
14924
149252000-02-09 Tom Tromey <tromey@cygnus.com>
14926
14927 * parse.y (check_class_interface_creation): Allow inner classes to
14928 be `private' or `protected', check modifiers' consistency. Prevent
14929 block local classes from bearing any modifiers.
14930
149312000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14932
14933 * except.c (check_start_handlers): Re-add prototype lost in last
14934 patch.
14935 (maybe_start_try): Remove excess argument to `check_start_handlers'.
14936
149372000-02-09 Andrew Haley <aph@cygnus.com>
14938
14939 * decl.c (clear_binding_level): Remove excess initializer.
14940 (maybe_poplevels): Remove unused variable.
14941 (force_poplevels): Ditto.
14942 (struct binding_level): Add comment.
14943
149442000-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
14945
14946 * jcf-write.c (generate_classfile): Don't consider
14947 pre-initialization with reference value (use <clinit> instead.)
14948 * parse.y (java_fix_constructors): No generated constructor for
14949 interfaces.
14950 (build_outer_field_access): Removed debug message.
14951 (outer_field_expanded_access_p): Adapted to bytecode generation.
14952 (build_outer_field_access_method): Use fix_method_argument_names.
14953 (build_outer_method_access_method): Fixed indentation. Added
14954 comment. Handle access method generation for static and also void
14955 methods.
14956 (build_access_to_thisn): Inserted debug message.
14957 (maybe_build_thisn_access_method): Use fix_method_argument_names.
14958 (resolve_qualified_expression_name): Fixed comment.
14959 (not_accessible_p): Adapted to bytecode generation. Added comment.
14960 (patch_method_invocation): Added comment.
14961 (maybe_use_access_method): Fixed leading comment. Handle static
14962 methods.
14963 (java_complete_lhs): Don't shortcut handling of initialized upon
14964 declaration String type static fields when generating bytecode.
14965 (patch_unaryop): Handle outer field access when generating
14966 bytecode.
14967
149682000-02-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
14969
14970 * java-tree.h (FIELD_THISN): New macro.
14971 * jcf-write.c (append_synthetic_attribute): New function.
14972 (generate_classfile): Set "Synthetic" attribute on this$<n>,
14973 val$<name> fields, access$<n> and $finit$ methods. Fixed indentation.
14974 * parse.y (add_inner_class_fields): Set FIELD_THISN for created
14975 this$<n> fields.
14976 (build_outer_field_access): Turned on access functions usage and
14977 generation when compiling to bytecode.
14978 (maybe_use_access_method): Likewise.
14979
149802000-01-25 Andrew Haley <aph@cygnus.com>
14981
14982 * java-except.h (struct eh_range): Add `expanded' field.
14983 (maybe_start_try): Add end_pc arg.
14984 (maybe_end_try): Ditto.
14985 * java-tree.h (force_poplevels): new function.
14986 * expr.c (expand_byte_code): Don't call maybe_start_try or
14987 maybe_end_try.
14988 * except.c (add_handler): Reset expanded.
14989 (expand_start_java_handler): Set expanded.
14990 (check_start_handlers): Don't expand a start handler that's
14991 already been expanded.
14992 (maybe_start_try): Add end_pc arg. Only expand a handler which
14993 ends after end_pc.
14994 (expand_end_java_handler): call force_poplevels.
14995 (force_poplevels): new function.
14996 * decl.c (binding_level): Add start_pc of binding level.
14997 (maybe_pushlevels): Call maybe_start_try when pushing binding
14998 levels.
14999 (maybe_poplevels): Call maybe_end_try when popping binding levels.
15000 (LARGEST_PC): Define.
15001 (clear_binding_level): Use LARGEST_PC.
15002
15003 * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
15004 * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
15005 (binding_depth, is_class_level, current_pc): new variables.
15006 (struct binding_level): ditto.
15007 (indent): new function.
15008 (push_jvm_slot): add debugging info.
15009 (maybe_pushlevels): ditto.
15010 (maybe_poplevels): ditto.
15011 (pushlevel): ditto.
15012 (poplevel): ditto.
15013 (start_java_method): ditto.
15014 (give_name_to_locals): comment only.
15015 * except.c (binding_depth, is_class_level, current_pc):
15016 new variables.
15017 (expand_start_java_handler): add debugging info.
15018 (expand_end_java_handler): ditto.
15019
150202000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15021
15022 * gjavah.c (overloaded_jni_method_exists_p): Add prototype.
15023 (print_name_for_stub_or_jni, process_file): Constify a char*.
15024
150252000-02-03 Tom Tromey <tromey@cygnus.com>
15026
15027 * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input.
15028
150292000-01-31 Scott Bambrough <scottb@netwinder.org>
15030
15031 * gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to
15032 assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is
15033 defined to be 1.
15034
150352000-02-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
15036
15037 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): New tree code.
15038 * java-tree.h (TYPE_II_STMT_LIST): New macro.
15039 (struct lang_type): New field `ii_block'.
15040 * lex.c (java_init_lex): Use CPC_INITIALIZER_LIST,
15041 CPC_STATIC_INITIALIZER_LIST and CPC_INSTANCE_INITIALIZER_LIST.
15042 * parse.h (struct parser_ctxt): New field `instance_initializers'.
15043 (CPC_INITIALIZER_LIST, CPC_STATIC_INITIALIZER_LIST,
15044 CPC_INSTANCE_INITIALIZER_LIST, CPC_INITIALIZER_STMT,
15045 CPC_STATIC_INITIALIZER_STMT, CPC_INSTANCE_INITIALIZER_STMT): New
15046 macros.
15047 * parse.y (add_instance_initializer): New function.
15048 (in_instance_initializer): New static global.
15049 (class_body_declaration:): Link instance initializer block.
15050 (static_initializer:): Use CPC_STATIC_INITIALIZER_STMT.
15051 (array_creation_expression:): Remove unused local.
15052 (java_parser_context_push_initialized_field): Fixed leading
15053 comment. Use CPC_STATIC_INITIALIZER_LIST, CPC_INITIALIZER_LIST and
15054 CPC_INSTANCE_INITIALIZER_LIST.
15055 (java_parser_context_pop_initialized_field): Likewise.
15056 (add_inner_class_fields): Use CPC_INITIALIZER_STMT.
15057 (register_fields): Use CPC_STATIC_INITIALIZER_STMT and
15058 CPC_INITIALIZER_STMT.
15059 (fix_constructors): New local `class_type'. Use it. Call
15060 add_instance_initializer.
15061 (java_complete_lhs): New case INSTANCE_INITIALIZERS_EXPR.
15062 (patch_return): Forbid return in instance initializers.
15063 (patch_throw_statement): Enforce exception handling in the context
15064 of instance initializers.
15065
150662000-02-03 Tom Tromey <tromey@cygnus.com>
15067
15068 * Make-lang.in (java.mostlyclean): Remove executables in
15069 `mostlyclean'.
15070
150712000-01-31 Scott Bambrough <scottb@netwinder.org>
15072
15073 * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
15074 HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
15075 (java_float_finite): Convert to use union Word from javaop.h.
15076 (java_double_finite): Convert to use union DWord from javaop.h.
15077
150782000-02-02 Tom Tromey <tromey@cygnus.com>
15079
15080 * gjavah.c (options): Added `jni' entry.
15081 (help): Document -jni.
15082 (flag_jni): New global.
15083 (process_file): Handle JNI output. Don't print text from
15084 -prepend, -add, etc, when generating stubs. Only remove `.class'
15085 suffix if it actually exists.
15086 (main): Create a `.c' file when run with `--jni --stubs'. Create
15087 correct output file name with `--jni'.
15088 (print_include): Mangle header name differently in JNI case.
15089 (HANDLE_METHOD): In JNI mode, call print_method_info to generate
15090 method list.
15091 (print_method_info): Handle JNI case. Put signature info into
15092 method name. Handle case when STREAM is NULL.
15093 (print_name_for_stub_or_jni): New function.
15094 (print_stub_or_jni): Renamed from `print_stub'. Handle JNI.
15095 (print_cxx_classname): Handle JNI.
15096 (print_full_cxx_name): Likewise.
15097 (decode_signature_piece): Likewise.
15098 (overloaded_jni_method_exists_p): New function.
15099 (struct method_name): Added `signature' and `sig_length' fields.
15100 (HANDLE_END_FIELD): Do nothing in JNI mode.
15101
151022000-02-02 Tom Tromey <tromey@cygnus.com>
15103
15104 * jv-scan.c: Include version.c, <getopt.h>.
15105 (LONG_OPT, OPT_HELP, OPT_VERSION): New macros.
15106 (options): New array.
15107 (usage): New function.
15108 (version): New function.
15109 (main): Use getopt_long to parse command line.
15110 * jcf-dump.c: Include version.c, <getopt.h>.
15111 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_VERSION,
15112 OPT_JAVAP): New macros.
15113 (options): New array.
15114 (usage): Return `void'. Changed message.
15115 (help): New function.
15116 (version): New function.
15117 (main): Use getopt_long_only to parse command line.
15118 * gjavah.c: Include <getopt.h>.
15119 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_TEMP,
15120 OPT_VERSION, OPT_PREPEND, OPT_FRIEND, OPT_ADD, OPT_APPEND, OPT_M,
15121 OPT_MM, OPT_MG, OPT_MD, OPT_MMD): New macros.
15122 (options): New array.
15123 (java_no_argument): Removed.
15124 (help): Updated with missing options.
15125 (main): Use getopt_long_only to parse command line.
15126 (usage): Changed message.
15127
151282000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15129
15130 * java-tree.def (NEW_ANONYMOUS_ARRAY_EXPR): New tree code.
15131 * parse.h (ANONYMOUS_ARRAY_BASE_TYPE, ANONYMOUS_ARRAY_DIMS_SIG,
15132 ANONYMOUS_ARRAY_INITIALIZER): New access macros.
15133 * parse.y (array_creation_expression:): Handle anonymous arrays.
15134 (build_array_from_name): Don't set `ret_name' if null.
15135 (resolve_qualified_expression_name): New case NEW_ANONYMOUS_ARRAY_EXPR.
15136 (qualify_ambiguous_name): Likewise.
15137 (java_complete_expand_class): Likewise.
15138
151392000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15140
15141 * java-tree.def (SYNCHRONIZED_EXPR): Fixed typo.
15142 * parse.h (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): New macro.
15143 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR): Likewise.
15144 (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P.
15145 (AIPL_FUNCTION_FINIT_INVOCATION): Replaces
15146 AIPL_FUNCTION_COMPLETED_INVOCATION.
15147 (AIPL_FUNCTION_CTOR_INVOCATION): Replaces
15148 AIPL_FUNCTION_INVOCATION_READY.
15149 (AIPL_FUNCTION_DECLARATION): New enum entry.
15150 * parse.y (reorder_static_initialized): New function.
15151 (java_parser_context_pop_initialized_field): Use it.
15152 (add_inner_class_fields): Use
15153 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. Comment
15154 augmented. Install marker after last alias initializer, if any.
15155 (generate_finit): Fixed typo. Don't try to retain only the used
15156 fields.
15157 (method_header): Compute and set DECL_FUNCTION_NAP.
15158 (method_declarator): Fixed comment. Insert alias initializer in
15159 parameter list.
15160 (build_alias_initializer_parameter_list): Fixed leading
15161 comment. New case for AIPL_FUNCTION_DECLARATION. Old enum value
15162 replaced by new ones. Use MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID.
15163 (java_complete_expand_class): Code to retain only used aliases
15164 removed.
15165 (java_complete_expand_methods): New local `first_decl'. Generate
15166 $finit$ first, then expand the constructors, regular methods and
15167 <clinit>.
15168 (java_complete_expand_method): Don't report error on missing
15169 return statement if previously detected bogus.
15170 (fix_constructors): Don't patch constructor parameters list.
15171 (patch_method_invocation): Use new AIPL enum values. Reverse
15172 alias initializer list for anonymous classes.
15173
151742000-01-30 Anthony Green <green@redhat.com>
15175
15176 * jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
15177 determine how many stack slots to pop.
15178
151792000-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
15180
15181 * parse.y (formal_parameter:): Set `$$' to NULL_TREE for better
15182 error handling/recovery.
15183 * java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.
15184
151852000-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
15186
15187 * java-tree.h (ARG_FINAL_P, FIELD_LOCAL_ALIAS,
15188 FIELD_LOCAL_ALIAS_USED): New macros.
15189 (DECL_FUNCTION_NAP): New macro.
15190 (struct lang_decl): New field `nap'.
15191 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST): New macros.
15192 (struct lang_type): New fields `finit_stmt_list' and
15193 `clinit_stmt_list'.
15194 (CLASS_HAS_FINIT_P): Defined using TYPE_FINIT_STMT_LIST.
15195 * parse.h (MANGLE_OUTER_LOCAL_VARIABLE_NAME): New macro.
15196 (SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
15197 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP): New macros.
15198 (AIPL_FUNCTION_CREATION, AIPL_FUNCTION_COMPLETED_INVOCATION,
15199 AIPL_FUNCTION_INVOCATION_READY): New enum fields.
15200 (BUILD_THROW): Macro line separator re-indented.
15201 * parse.y (end_class_declaration): New function.
15202 (maybe_generate_pre_expand_clinit): New name for
15203 java_pre_expand_clinit. Create <clinit> off TYPE_CLINIT_STMT_LIST,
15204 pre-expand static fields.
15205 (maybe_generate_clinit): Function deleted.
15206 (check_for_static_method_reference): Prototype's parameter list
15207 indented.
15208 (generate_finit): New name for maybe_generate_finit. Changed
15209 leading comment. Function rewritten to use
15210 TYPE_FINIT_STMT_LIST. Call build_alias_initializer_parameter_list.
15211 (build_alias_initializer_parameter_list): New function.
15212 (java_parser_context_pop_initialized_field): Likewise.
15213 (add_inner_class_fields): Likewise.
15214 (type_declaration:): Call end_class_declaration.
15215 (class_member_declaration:): Likewise.
15216 (formal_parameter_list:): Fixed typos.
15217 (formal_parameter:): Use ARG_FINAL_P to mark created tree list
15218 element. Improved error handling.
15219 (block_statement:): Call end_class_declaration.
15220 (anonymous_class_creation:): Likewise.
15221 (create_anonymous_class): Fixed comments.
15222 (create_class): Call add_inner_class_fields.
15223 (register_fields): Set FIELD_LOCAL_ALIAS according to ARG_FINAL_P.
15224 (method_header): Use MARK_FINAL_PARMS.
15225 (finish_method_declaration): Use UNMARK_FINAL_PARMS.
15226 (method_declarator): Propagate final argument flag.
15227 (craft_constructor): New local `artificial'. Call
15228 build_alias_initializer_parameter_list. Use
15229 CRAFTED_PARAM_LIST_FIXUP, assign DECL_FUNCTION_NAP.
15230 (source_start_java_method): Mark parm decls with LOCAL_FINAL if
15231 necessary.
15232 (complete_expand_class): Get rid of unused outer context local
15233 alias fields.
15234 (java_complete_expand_methods): Fixed leading
15235 comment. Generate/pre-expand <clinit> first. Changed method
15236 expansion order to regular, $finit$, constructors, <clinit>.
15237 (java_complete_expand_method): Set current_function_decl.
15238 (fix_constructors): Fix constructor parameter list to account for
15239 outer context local alias initializers.
15240 (verify_constructor_super): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
15241 (resolve_expression_name): Lookup outer context local aliases. New
15242 local `access', use it.
15243 (patch_method_invocation): Patch inner class ctor invocation with
15244 outer context local aliases initialization values. $finit$
15245 invocation patching now includes things generated with
15246 build_alias_initializer_parameter_list.
15247 (argument_types_convertible): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
15248 (build_super_invocation): Likewise.
15249 (patch_assignment): Changed comment.
15250
152512000-01-27 Andrew Haley <aph@cygnus.com>
15252
15253 * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
15254 (emit_if): Ditto.
15255 (emit_jsr): Ditto.
15256
152572000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15258
15259 * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string
15260 concatenation.
15261 (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args.
15262
15263 * parse.y (register_fields): Don't pass a format specifier to
15264 OBSOLETE_MODIFIER_WARNING.
15265 (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2
15266 instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format
15267 specifier.
15268 (check_modifiers): Change function into a macro.
15269 (check_class_interface_creation): Pass a literal format string.
15270
152712000-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15272
15273 * buffer.h: PROTO -> PARAMS.
15274 * check-init.c: Likewise.
15275 * class.c: Likewise.
15276 * constants.c: Likewise.
15277 * convert.h: Likewise.
15278 * decl.c: Likewise.
15279 * except.c: Likewise.
15280 * expr.c: Likewise.
15281 * gjavah.c: Likewise.
15282 * java-except.h: Likewise.
15283 * java-tree.h: Likewise.
15284 * jcf-depend.c: Likewise.
15285 * jcf-dump.c: Likewise.
15286 * jcf-parse.c: Likewise.
15287 * jcf-path.c: Likewise.
15288 * jcf-reader.c: Likewise.
15289 * jcf-write.c: Likewise.
15290 * jcf.h: Likewise.
15291 * jv-scan.c: Likewise.
15292 * jvgenmain.c: Likewise.
15293 * jvspec.c: Likewise.
15294 * lang.c: Likewise.
15295 * lex.c: Likewise.
15296 * lex.h: Likewise.
15297 * parse-scan.y: Likewise.
15298 * parse.h: Likewise.
15299 * parse.y: Likewise.
15300 * typeck.c: Likewise.
15301 * verify.c: Likewise.
15302 * xref.c: Likewise.
15303 * xref.h: Likewise.
15304 * zextract.c: Likewise.
15305 * zipfile.h: Likewise.
15306
153072000-01-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
15308
15309 * class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
15310 (is_compiled_class): Remove test on TYPE_LANG_SPECIFIC, use TYPE_JCF.
15311 * constants.c (build_constant_data_ref): Check for cached
15312 current_constant_pool_data_ref. Cache current_constant_pool_data_ref
15313 in TYPE_CPOOL_DATE_REF.
15314 * java-tree.h (TYPE_JCF, TYPE_CPOOL, TYPE_CPOOL_DATA_REF,
15315 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC:) New macros.
15316 (struct lang_type): New fields `cpool' and `cpool_data_ref'.
15317 (LOCAL_FINAL): New macro.
15318 * jcf-parse.c (init_outgoing_cpool): Always allocate new outgoing
15319 constant pool -- don't try to reuse.
15320 (parse_zip_file_entries): Use TYPE_JCF, don't lazily allocate
15321 TYPE_LANG_SPECIFIC.
15322 (find_in_current_zip): Use TYPE_JCF.
15323 * parse.h (java_check_final): Prototype removed.
15324 * parse.y (create_class): Reversed Jan 12, 2000 extra argument patch.
15325 (maybe_create_class_interface_decl,
15326 check_class_interface_creation): Likewise.
15327 (java_expand_finals): Function removed.
15328 (class_declaration:): Reversed Jan 12, 2000 extra argument patch.
15329 (block_statement:): Fixed comment.
15330 (anonymous_class_creation:): Likewise.
15331 (check_class_interface_creation): Reversed Jan 12, 2000 extra
15332 argument patch.
15333 (check_class_interface_creation): Loosened error report on (inner)
15334 public class declarations. CPC_INNER_P replaces GET_CPC_LIST.
15335 (link_nested_class_to_enclosing): Reversed Jan 12, 2000 patch.
15336 (maybe_create_class_interface_decl): Reversed Jan 12, 2000 extra
15337 argument patch.
15338 (create_interface): Likewise.
15339 (anonymous_class_counter): New static global.
15340 (create_anonymous_class): Reversed Jan 12, 2000 extra argument
15341 patch. Fixed comments.
15342 (create_class): Reversed Jan 12, 2000 extra argument patch. Reset
15343 anonymous_class_counter when declaring a toplevel class.
15344 (craft_constructor): Fixed constructor name when handling
15345 anonymous classes. Anonymous class constructors to feature hidden
15346 this$<n> parameter.
15347 (java_fix_constructors): Added comment.
15348 (java_check_final): Function removed.
15349 (java_complete_expand_methods): Fixed comment. Don't generate
15350 class data, save its outgoing constant pool instead.
15351 (verify_constructor_super): Skip anonymous class constructor
15352 hidden this$<n> parameter.
15353 (java_expand_classes): New local `saved_ctxp'. Removed call to
15354 java_expand_finals and java_check_final. Expand anonymous class
15355 constructors. Generate class data.
15356 (build_super_invocation): Skip anonymous class hidden this$<n>
15357 parameter.
15358 * typeck.c (build_java_signature): Use TYPE_SIGNATURE and
15359 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
15360 (set_java_signature): Likewise.
15361
153622000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
15363
15364 * gjavah.c: Delete ACC_VISIBILITY define.
15365 * jcf.h: Add ACC_VISIBILITY define.
15366 * parse.y: final: rule tagged <value>.
15367 (java_check_regular_methods): Use ACC_VISIBILITY define for
15368 default package access check.
15369 (local_variable_declaration_statement): Use final: rule.
15370
153712000-01-17 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
15372
15373 * parse.y (format_parameter:): Use final: rule instead of modifiers:.
15374 (final:): New rule.
15375
153762000-01-17 Tom Tromey <tromey@cygnus.com>
15377
15378 * gjavah.c (print_field_info): Allow non-static final fields.
15379
153802000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15381
15382 * parse.h (enum jdep_code): New entry `JDEP_ANONYMOUS'.
15383 * parse.y (patch_anonymous_class): New function.
15384 (create_anonymous_class): Register incomplete type when the
15385 class/interface to extends/implement isn't known yet.
15386 (parser_check_super_interface): Simplify argument to CLASS_INTERFACE.
15387 (verify_constructor_super): Tuned error message.
15388
153892000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15390
15391 * java-tree.h (FOR_LOOP_P): Replaces IS_FOR_LOOP_P.
15392 (ANONYMOUS_CLASS_P): New macro.
15393 (TYPE_SIGNATURE, TYPE_JCF): New macros.
15394 (INNER_CLASS_TYPE_P): Fixed typo in leading comment.
15395 * parse.y (create_class): Added leading argument.
15396 (maybe_create_class_interface_decl,
15397 check_class_interface_creation): Likewise.
15398 (craft_constructor): New function.
15399 (verify_constructor_super): Added argument in prototype.
15400 (class_declaration:): Inserted leading argument.
15401 (for_begin:): Use FOR_LOOP_P.
15402 (anonymous_class_creation): Create WFL of the anonymous class to
15403 instantiate. Call build_new_invocation. Added comments.
15404 (check_class_interface_creation): Handle parameter `anonymous' in
15405 verbose mode class creation announce.
15406 (link_nested_class_to_enclosing): Exclude anonymous classes.
15407 (maybe_create_class_interface_decl): Don't set DECL_CONTEXT on
15408 anonymous class, even though they appear to have an enclosing
15409 context.
15410 (create_interface): Pass extra argument to
15411 check_class_interface_creation.
15412 (create_anonymous_class): Set ANONYMOUS_CLASS_P to 1.
15413 (create_class): Call check_class_interface_creation and
15414 maybe_create_class_interface_decl with extra new argument. Don't
15415 add private this$<n> to anonymous classes.
15416 (method_declarator): Insert hidden this$<n> to anonymous class
15417 constructors.
15418 (java_fix_constructors): Deleted code creating default
15419 constructor. Call craft_constructor instead.
15420 (java_check_regular_methods): Set `saw_constructor' to 1 for
15421 anonymous classes.
15422 (fix_constructors): Pass extra argument to verify_constructor_super.
15423 (verify_constructor_super): New local `sdecl', use it. Search for
15424 matching constructor (possibly featuring arguments) in super
15425 class.
15426 (lookup_method_invoke): Craft constructor according to arguments
15427 list when dealing with anonymous class constructors.
15428 (build_super_invocation): Pass arguments to anonymous class super
15429 constructors.
15430 (search_loop): Use FOR_LOOP_P.
15431 (labeled_block_contains_loop_p): Likewise.
15432
154332000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
15434
15435 * class.c (set_super_info): Set CLASS_STATIC when appropriate.
15436 (enclosing_context_p): New function.
15437 (get_access_flags_from_decl): Handle CLASS_STATIC.
15438 (maybe_layout_super_class): Extra first argument passed to
15439 do_resolve_class.
15440 (layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and
15441 ID_INIT_P.
15442 * decl.c (access0_identifier_node): New global.
15443 (init_decl_processing): access0_identifier_node initialized.
15444 (pushdecl): Set DECL_CONTEXT only on non type decls.
15445 * expr.c (lookup_field): Lookup inner class fields in enclosing
15446 contexts.
15447 (expand_invoke): Use ID_INIT_P.
15448 (expand_java_field_op): Use DECL_CLINIT_P.
15449 * java-tree.def (CLASS_LITERAL): New tree code.
15450 * java-tree.h (DECL_FUNCTION_ACCESS_DECL,
15451 DECL_FUNCTION_INNER_ACCESS, FIELD_INNER_ACCESS): New macros.
15452 (struct lang_decl): New field `inner_access'.
15453 (enclosing_context_p): Prototyped.
15454 (DECL_INIT_P, DECL_FINIT_P, DECL_CLINIT_P, ID_INIT_P, ID_FINIT_P,
15455 ID_CLINIT_P): New macros.
15456 (CLASS_STATIC): New macro.
15457 (CLASS_ACCESS0_GENERATED_P): New macro.
15458 (OUTER_FIELD_ACCESS_IDENTIFIER_P, INNER_CLASS_DECL_P,
15459 TOPLEVEL_CLASS_DECL_P, INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
15460 INNER_CLASS_P): New macros.
15461 (DECL_INNER_CLASS_LIST): New macro.
15462 * jcf-parse.c (yyparse): Avoid the use of ANSI string
15463 concatenation.
15464 * jcf-write.c (generate_bytecode_insns): binop: Change the type of
15465 the shift value to int. Fixed typo in comment.
15466 * lex.c (inst_id, wpv_id): Initialize.
15467 * mangle.c (unicode_mangling_length): Take `$' into account.
15468 * parse.h (DRECOVER, RECOVER): Terminate properly.
15469 (IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS): New macro.
15470 (typedef struct _jdep): New field `enclosing'.
15471 (JDEP_ENCLOSING): New macro.
15472 (IS_CLINIT): Deleted (DECL_CLINIT_P replaces it.)
15473 (struct parser_ctxt): New fields `marker_beginning', `marked_end'.
15474 (GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE,
15475 GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
15476 GET_ENCLOSING_CPC_CONTEXT): New macros.
15477 (PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.
15478 (do_resolve_class): Added extra argument in prototype.
15479 * parse.y (resolve_class): Added extra argument in prototype.
15480 (maybe_create_class_interface_decl): Likewise.
15481 (maybe_use_access_method, build_wfl_wrap): New functions.
15482 (java_complete_expand_classes, java_complete_expand_class):
15483 Likewise.
15484 (java_parser_context_push_initialized_field,
15485 java_parser_context_suspend, java_parser_context_resume):
15486 Likewise.
15487 (maybe_make_nested_class_name, make_nested_class_name,
15488 set_nested_class_simple_name_value,
15489 link_nested_class_to_enclosing, find_as_inner_class,
15490 find_as_inner_class_do, check_inner_class_redefinition,
15491 build_thisn_assign, build_current_thisn, build_access_to_thisn,
15492 maybe_build_thisn_access_method, build_outer_field_access,
15493 build_outer_field_access_methods, build_outer_field_access_expr,
15494 build_outer_method_access_method, build_new_access_id,
15495 build_outer_field_access_method, outer_field_access_p,
15496 outer_field_expanded_access_p, outer_field_access_fix,
15497 build_incomplete_class_ref, patch_incomplete_class_ref,
15498 create_anonymous_class): Likewise.
15499 (inst_id, wpv_id): New static global variables.
15500 (synchronized:): New rule, tagged <node>.
15501 (type_declaration:): No longer tagged <node>. Call POP_CPC in sub
15502 rules.
15503 (anonymous_class_creation:): New rule, tagged <node>.
15504 (NEW_TK): Tagged <node>.
15505 (type_literals, array_type_literal): New rules, tagged <node>.
15506 (class_declaration:): Removed action when reducing by class_body:
15507 (class_body:): Set DECL_END_SOURCE_LINE and rule's returned value
15508 using GET_CPC in sub-rules.
15509 (class_member_declaration): Handle inner classes.
15510 (method_declaration): When reducing method_header:, reset
15511 current_function_decl when appropriate.
15512 (method_declarator:): Set the number of formal parameter to 0 for
15513 method declared without arguments.
15514 (constructor_declarator:): Likewise.
15515 (static_initializer:): List of elements kept in a list.
15516 (static:): Rule modifiers: replaces MODIFIER_TK. Enforce correct
15517 use of the keyword `static' for type declarations.
15518 (block_statement:): Handle inner class declarations.
15519 (primary_no_new_array:): Use type_literals:. Fixed comment. Handle
15520 type qualified `this'.
15521 (class_instance_creation_expression): Use anonymous_class_creation:
15522 to handle inner class instances creation. Handle qualified `new'.
15523 (something_dot_new): Added appropriate actions.
15524 (create_new_parser_context): New function.
15525 (java_push_parser_context, java_parser_context_save_global,
15526 java_parser_context_suspend): Use create_new_parser_context.
15527 (check_modifiers): Changed leading comment.
15528 (check_class_interface_creation): Handle interclasses.
15529 (add_superinterfaces): Fixed comment.
15530 (create_interface): Build qualified name from the raw_name instead
15531 of its matching WFL. Push the initialized fields list. raw_name added
15532 as an extra argument to maybe_create_class_interface_decl.
15533 (create_class): Build qualified name from the raw_name instead of
15534 its matching WFL. Removed assignment to current_parsed_class_un.
15535 Call PUSH_ERROR before returning an error. Suspend the current
15536 parser context when processing an inner class. Push the
15537 initialized fields list. raw_name added as an extra argument to
15538 maybe_create_class_interface_decl. Add the private this$<n>
15539 field.
15540 (duplicate_declaration_error_p): Use GET_CPC when calling find_field.
15541 (register_fields): Get the class type from GET_CPC and handle
15542 previous errors. Added code to handle the creation of static
15543 fields in inner classes. Initialized fields initialization
15544 statements kept in a list of lists.
15545 (maybe_generate_finit): Initialized fields initialization
15546 statements kept in a list of lists. Use GET_CPC.
15547 (maybe_generate_clinit): Likewise.
15548 (method_header): Use GET_CPC and GET_CPC_UN.
15549 (parser_qualified_classname): Handle inner classes.
15550 (register_incomplete_type): Set JDEP_ENCLOSING using GET_CPC.
15551 (java_fix_constructors): Hide pointer to enclosing context
15552 instance in constructor list when dealing with inner classes.
15553 (jdep_resolve_class): Call resolve_class with extra first argument
15554 JDEP_ENCLOSING.
15555 (resolve_class): Add enclosing context as a first extra argument
15556 to do_resolve_class.
15557 (do_resolve_class): Call find_as_inner_class. Handle WFLs
15558 properly.
15559 (resolve_no_layout): Extra argument added to resolve_class
15560 invocation.
15561 (reset_method_name): Use DECL_CLINIT_P, DECL_FINIT_P.
15562 (java_get_real_method_name): Use GET_CPC_UN.
15563 (check_abstract_method_definitions): Use DECL_CLINIT_P.
15564 (java_check_abstract_methods): Handle static method declared in
15565 inner classes by an error.
15566 (java_check_regular_methods): Use DECL_CLINIT_P.
15567 (source_start_java_method): Also set DECL_MAX_LOCALS.
15568 (create_artificial_method): Call java_parser_context_save_global
15569 and java_parser_context_restore_global instead of saving/restoring
15570 the context by hand.
15571 (expand_start_java_method): Improved verbose mode message.
15572 (java_complete_expand_methods): Fixed leading comment. Use
15573 DECL_CLINIT_P.
15574 (fix_constructors): Added assignment to this$<n> if necessary.
15575 (java_expand_classes): Call java_complete_expand_classes instead
15576 of java_complete_expand_methods.
15577 (make_qualified_primary): Simplified.
15578 (merge_qualified_name): Optimized for missing left or right parts.
15579 (resolve_expression_name): Handle access to outer class fields from
15580 interclasses.
15581 (resolve_qualified_expression_name): New macro
15582 RESTORE_THIS_AND_CURRENT_CLASS, used. Handle creation of inner
15583 classes. Report error on non appropriate qualification of
15584 `new'. Handle qualified `this'.
15585 (not_accessible_p): Allow access to outer class private fields from
15586 inner classes.
15587 (patch_method_invocation): Handle method invocations through
15588 access methods and inner class constructor invocations.
15589 (find_applicable_accessible_methods_list): Search enclosing
15590 contexts of an inner class.
15591 (search_applicable_methods_list): Fixed typo.
15592 (argument_types_convertible): Handle inner class constructors'
15593 hidden outer context reference argument.
15594 (qualify_ambiguous_name): Handle qualified `this'.
15595 (java_complete_lhs): Handle use of field accessed through
15596 artificial access methods in various cases of assignments. Handle
15597 CLASS_LITERAL node.
15598 (check_final_assignment): Use DECL_CLINIT_P.
15599 (valid_ref_assignconv_cast_p): Handle the destination being an
15600 enclosing context of the source.
15601 (patch_unaryop): Handle use of field accessed through artificial
15602 access methods.
15603 (patch_return): Use DECL_CLINIT_P.
15604 (patch_throw_statement): Use DECL_CLINIT_P.
15605 (check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P.
15606 * verify.c (verify_jvm_instructions): Use ID_CLINIT_P and
15607 ID_INIT_P.
15608
156092000-01-16 Anthony Green <green@cygnus.com>
15610
15611 * parse.y (build_string_concatenation): Only use
15612 StringBuffer(String) shortcut if String arg is constant.
15613
156142000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
15615
15616 * jcf-write.c (generate_bytecode_insns): binop: Change the type of
15617 the shift value to int. Fixed typo in comment.
15618
156192000-01-11 Mumit Khan <khan@xraylith.wisc.edu>
15620
15621 * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
15622 * jcf-write.c: Likewise.
15623 * parse.y: Likewise.
15624 * parse.c: Regenerate.
15625
156262000-01-09 Anthony Green <green@cygnus.com>
15627
15628 * jcf-write.c (generate_bytecode_insns): Emit invokeinterface
15629 bytecodes in the correct order.
15630
156312000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15632
15633 * Makefile.in (jcf-dump, gcjh): Move ../errors.o before $(LIBS).
15634
156352000-01-06 Anthony Green <green@cygnus.com>
15636
15637 * expr.c (java_lang_expand_expr): Switch to permanent obstack
15638 before building constant array decl.
15639
156402000-01-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
15641
15642 * jcf-write.c (generate_bytecode_conditional): Fixed indentation in
15643 method invocation and typo in conditional expression.
15644 (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
15645 the appropriate NOTE_POP.
15646 * parse.y (patch_binop): Shift value mask to feature the right
15647 type.
15648
156491999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15650
15651 * class.c (assume_compiled, assume_compiled_node): Add static
15652 prototype.
15653 (add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup.
15654
15655 * jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch.
15656
15657 * jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN.
15658
15659 * parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier'
15660 to `__modifier' to avoid stringifying it.
15661
15662 * parse.y (verify_constructor_circularity): Don't call a variadic
15663 function with a non-literal format string.
15664 (java_check_abstract_methods): Move unreachable code inside
15665 `continue' statement.
15666 (lookup_method_invoke): Call xstrdup, not strdup.
15667
15668 * expr.c (expand_java_field_op): Avoid the use of ANSI string
15669 concatenation.
15670
15671 * jcf-parse.c (yyparse): Likewise.
15672
15673 * jv-scan.c (main): Likewise.
15674
156751999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15676
15677 * parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
15678 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
15679 ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string
15680 concatenation.
15681
15682 * parse.y (synchronized, variable_redefinition_error,
15683 check_class_interface_creation, create_interface, create_class,
15684 method_header, finish_method_declaration,
15685 check_modifiers_consistency, method_declarator,
15686 complete_class_report_errors, check_abstract_method_definitions,
15687 java_check_regular_methods, check_throws_clauses,
15688 java_check_abstract_methods, read_import_dir,
15689 check_pkg_class_access, declare_local_variables, fix_constructors,
15690 cut_identifier_in_qualified, resolve_expression_name,
15691 resolve_qualified_expression_name, patch_method_invocation,
15692 java_complete_lhs, patch_assignment, try_builtin_assignconv,
15693 patch_binop, patch_array_ref, patch_newarray, build_labeled_block,
15694 patch_exit_expr, patch_exit_expr, patch_switch_statement,
15695 patch_try_statement, patch_synchronized_statement,
15696 patch_throw_statement, check_thrown_exceptions,
15697 patch_conditional_expr): Likewise.
15698
156991999-12-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
15700
15701 * Makefile.in (LIBDEPS): Added gcc's errors.o
15702 (../jcf-dump$(exeext):): Link with gcc's errors.o
15703 (../gcjh$(exeext):): Likewise.
15704 * expr.c (expand_java_NEW): Layout the entire target type instead of
15705 laying out its methods only.
15706 (lookup_field): Layout the class after having loaded it.
15707 * java-tree.h (java_debug_context): Declared.
15708 * jcf-io.c (toplev.h): Included.
15709 (find_class): Removed assignment to jcf's outofsynch
15710 field. Force source file to be read if newer than its matching
15711 class file. Tweaked debug messages.
15712 * jcf-parse.c (jcf_out_of_synch): Deleted.
15713 (read_class): Call to jcf_out_of_synch removed.
15714 * jcf.h (typedef struct JCF): Field `outofsynch' deleted.
15715 (jcf_out_of_synch): Prototype deleted.
15716 * parse.h (struct parser_ctxt): `minus_seen', `java_error_flag',
15717 `deprecated' and `class_err': integer turned into bit-fields.
15718 New bit-fields `saved_data_ctx' and `saved_data'. Fixed comments.
15719 * parse.y (package_list): New global.
15720 (package_declaration:): Record newly parsed package name.
15721 (extra_ctxp_pushed_p): Static global deleted.
15722 (java_parser_context_save_global): Create buffer context for the
15723 purpose of saving globals, if necessary.
15724 (java_parser_context_restore_global): Pop context pushed for the
15725 purpose of saving globals, if necessary.
15726 (java_debug_context_do): New prototype and function.
15727 (java_debug_context): Likewise.
15728 (do_resolve_class): Use already parsed package names to qualify
15729 and lookup class candidate.
15730 (java_pre_expand_clinit): Removed unnecessary local variable.
15731
157321999-12-17 Tom Tromey <tromey@cygnus.com>
15733
15734 * gjavah.c (decode_signature_piece): Print "::" in JArray<>. This
15735 fixes PR gcj/119.
15736 (process_file): Use `\n\' at end of each line in string.
15737
157381999-12-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
15739
15740 * expr.c (expand_invoke): Layout the loaded class before
15741 attempting to use it.
15742 (expand_java_field_op): Allow final field assignments to take
15743 place in $finit$.
15744 * typeck.c (convert): Return error_mark_node if expr is null.
15745
157461999-12-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15747
15748 * class.c (class_depth): Return -1 if the class doesn't load
15749 properly.
15750 * expr.c (can_widen_reference_to): Check for errors during depth
15751 computation and return 0 accordingly.
15752 * jcf-parse.c (parse_source_file): Call java_fix_constructors to
15753 create default constructors and add an other error check.
15754 * parse.h (java_fix_constructors): Prototyped.
15755 * parse.y (java_pre_expand_clinit): Likewise.
15756 (build_super_invocation): Re-prototyped to feature one argument.
15757 (java_check_circular_reference): Directly use `current'.
15758 (java_fix_constructors): New function.
15759 (java_check_regular_methods): Don't create default constructors
15760 here, but abort if none were found.
15761 (java_complete_expand_methods): Pre-process <clinit> calling
15762 java_pre_expand_clinit.
15763 (java_pre_expand_clinit): New function.
15764 (fix_constructors): build_super_invocation invoked with the
15765 current method declaration as an argument.
15766 (build_super_invocation): Use the context of the processed method
15767 decl argument instead of current_class.
15768 * typeck.c (lookup_java_method): Take WFLs in method names into
15769 account.
15770
157711999-12-14 Per Bothner <per@bothner.com>
15772
15773 * class.c (make_class_data): flag_keep_inline_functions to keep
15774 private methods in the method array.
15775
157761999-12-15 Anthony Green <green@cygnus.com>
15777
15778 * check-init.c (check_init): Take into account both types of
15779 `throw's when checking for uninitialized variables.
15780
157811999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
15782
15783 * parse.y (java_complete_lhs): Force conversion of array
15784 dimensions to int_type_node, that's what runtime's ABI expects.
15785
157861999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
15787
15788 * parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third
15789 operand of a WFL, until the Java front-end gets fixed with regard
15790 to Mark Mitchell's gcc/tree.h patch (1999-12-04.)
15791
157921999-12-10 Andrew Haley <aph@cygnus.com>
15793
15794 * parse.h (BUILD_THROW): Add support for sjlj-exceptions.
15795 decl.c (init_decl_processing): Add _Jv_Sjlj_Throw.
15796 expr.c (build_java_athrow): Add support for sjlj-exceptions.
15797 java-tree.h: Ditto.
15798 jcf-write.c: Ditto.
15799
158001999-12-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
15801
15802 * expr.c (java_lang_expand_expr): Switch to permanent obstack
15803 before calling expand_eh_region_start and expand_start_all_catch.
15804 * except.c (expand_start_java_handler): Switch to permanent
15805 obstack before calling expand_eh_region_start.
15806 (expand_end_java_handler): Switch to permanent obstack before
15807 calling expand_start_all_catch.
15808
158091999-12-5 Anthony Green <green@cygnus.com>
15810
15811 * decl.c (init_decl_processing): Mark throw_node as a noreturn
15812 function with side effects.
15813 (init_decl_processing): Mark all memory allocating DECLs with
15814 DECL_IS_MALLOC.
15815
158161999-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15817
15818 * except.c (expand_end_java_handler): Call
15819 expand_resume_after_catch and end_catch_handler.
15820
158211999-11-30 Anthony Green <green@cygnus.com>
15822
15823 * verify.c (verify_jvm_instructions): Create new return label
15824 chain if non existent (don't rely on the verified state of the jsr
15825 target.)
15826
158271999-11-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
15828
15829 * jcf-write.c (generate_bytecode_insns): Fixed indentation for
15830 COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
15831
15832 * parse.y (patch_assignment): Removed bogus final class test on
15833 lhs when checking on whether to emit an ArrayStoreException runtime
15834 check.
15835 * expr.c (expand_java_arraystore): Likewise.
15836
158371999-11-28 Anthony Green <green@cygnus.com>
15838
15839 * decl.c (find_local_variable): Reuse single slot decls when
15840 appropriate.
15841
158421999-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
15843
15844 * jcf-parse.c (saw_java_source): Global variable removed.
15845 (read_class): Don't use `saw_java_source'. Added extra braces.
15846 (yyparse): Code setting `saw_java_source' removed.
15847
158481999-11-24 Mark Mitchell <mark@codesourcery.com>
15849
15850 * except.c (emit_handlers): Zero catch_clauses after emitting them.
15851
158521999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
15853
15854 * verify.c (merge_type_state): Non verified subroutines being
15855 considered more than once to trigger passive type merge.
15856
158571999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
15858
15859 * parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE
15860 in case of error. Error message tuned.
15861
158621999-11-21 Anthony Green <green@cygnus.com>
15863
15864 * constants.c (find_methodref_index): Unwrap method names before
15865 inserting them in the constant pool.
15866
15867 * jcf-parse.c (jcf_parse): Display `interface' when appropriate.
15868
15869 * class.c (assume_compiled_node): New typedef.
15870 (assume_compiled_tree): New static data.
15871 (find_assume_compiled_node): New function.
15872 (add_assume_compiled): New function.
15873 (assume_compiled): New function.
15874 * class.c (make_class_data): Use assume_compiled.
15875 (is_compiled_class): Use assume_compiled.
15876
15877 * java-tree.h (add_assume_compiled): Declare.
15878
15879 * lang.c (lang_decode_option): Parse new options.
15880
158811999-11-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
15882
15883 * class.c (layout_class): Always convert TYPE_SIZE_UNIT to
15884 int_type_node: that's what `_Jv_AllocObject' expects.
15885
158861999-11-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
15887
15888 * parse.y (lookup_method_invoke): Use lang_printable_name to
15889 reliably build the type name during error report. Fixes PR gcj/97.
15890
158911999-11-09 Tom Tromey <tromey@cygnus.com>
15892
15893 * jcf-path.c: Include <sys/stat.h>.
15894 (jcf_path_init): Search for libjava.zip. Fixes PR gcj/84.
15895 (DIR_UP): New macro.
15896
158971999-11-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
15898
15899 * parse.y (source_end_java_method): Resume permanent allocation,
15900 reversing Apr 27 1998 patch.
15901 (patch_string_cst): Pop obstacks after having pushed the permanent
15902 ones.
15903
159041999-11-05 Tom Tromey <tromey@cygnus.com>
15905
15906 * class.c (finish_class): Emit inlined methods if any native
15907 methods exist in the class. Fixes PR gcj/85.
15908
159091999-11-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
15910
15911 * parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR.
15912 (qualify_ambiguous_name): Likewise.
15913
159141999-11-03 Godmar Back <gback@cs.utah.edu>
15915
15916 * typeck.c: (lookup_java_method): search all inherited
15917 interfaces when looking up interface method.
15918
159191999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15920
15921 * parse.y (method_header:): Issue error message for rule `type
15922 error'.
15923 (synchronized:): Error report when not using synchronized.
15924
159251999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15926
15927 * parse.y (resolve_qualified_expression_name): Prevent `this' from
15928 being used before the superclass constructor has been called.
15929 (complete_function_arguments): Use CALL_EXPLICIT_CONSTRUCTOR_P
15930 instead of `CALL_THIS_CONSTRUCTOR_P'.
15931
159321999-10-30 Todd T. Fries <todd@lighthouse.fries.net>
15933
15934 * check-init.c: Fix typo in comment.
15935
159361999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
15937
15938 * class.c (add_method_1): Set DECL_INLINE to 1 for private, static
15939 and final method.
15940
159411999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
15942
15943 * parse.y (expression_statement:): Call function to report
15944 improper invocation of a constructor.
15945 (parse_ctor_invocation_error): New function.
15946
159471999-10-26 Mark Mitchell <mark@codesourcery.com>
15948
15949 * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
15950 remember_end_note.
15951
159521999-10-21 Tom Tromey <tromey@cygnus.com>
15953
15954 * jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set
15955 in generated `main'.
15956
159571999-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
15958
15959 * parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
15960 (qualify_ambiguous_name): Likewise.
15961
159621999-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
15963
15964 * parse.y (java_complete_tree): fold_constant_for_init to work on
15965 permanent_obstack.
15966 (java_complete_lhs): Likewise.
15967 (array_constructor_check_entry): Complete an initializer element
15968 on permanent_obstack.
15969
159701999-10-19 Tom Tromey <tromey@cygnus.com>
15971
15972 * jcf-parse.c (parse_source_file): Call jcf_dependency_add_file.
15973 From Mike Moreton <mike@pillim.demon.co.uk>.
15974
159751999-10-15 Greg McGary <gkm@gnu.org>
15976
15977 * java-tree.h (flag_bounds_check): Remove extern decl.
15978 * lang.c (flag_bounds_check): Remove global variable.
15979 (lang_f_options): Remove "bounds-check" entry.
15980 (lang_init_options): Default flag_bounds_check to "on".
15981
159821999-10-14 Tom Tromey <tromey@cygnus.com>
15983
15984 * jvgenmain.c (usage): New function.
15985 (main): Use it. Also, handle `-D' options.
15986 * jvspec.c (lang_specific_driver): Recognize -D.
15987 (jvgenmain_spec): Added `%{D*}' to jvgenmain invocation.
15988
15989 * jvspec.c (jvgenmain_spec): Use `%umain', not just `%u'.
15990
159911999-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15992
15993 * jcf-dump.c (print_constant, disassemble_method): Don't call a
15994 variadic function with a non-literal format string.
15995
15996 * parse-scan.y (report_main_declaration): Likewise.
15997
15998 * parse.h (ERROR_CAST_NEEDED_TO_INTEGRAL): Likewise.
15999
16000 * parse.y (read_import_dir, patch_assignment, patch_binop,
16001 patch_array_ref): Likewise.
16002
16003 * typeck.c (build_java_array_type): Likewise.
16004
16005 * verify.c (verify_jvm_instructions): Likewise.
16006
160071999-10-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
16008
16009 * jcf-write.c (RELOCATION_VALUE_1): Fixed integer value from 0 to 1.
16010
160111999-10-07 Anthony Green <green@cygnus.com>
16012
16013 * jcf-write.c (generate_classfile): Use UNSAFE_PUTx in cases
16014 where CHECK_PUT may fail for valid reasons.
16015
16016 * jcf-write.c (UNSAFE_PUT1, UNSAFE_PUT2, UNSAFE_PUT3,
16017 UNSAFE_PUTN): New macros.
16018
160191999-10-04 Tom Tromey <tromey@cygnus.com>
16020
16021 * lex.h (BUILD_OPERATOR2): Return ASSIGN_ANY_TK in `lite' case as
16022 well. Fixes Java PR gcj/59.
16023 * parse-scan.y (yyerror): Report errors.
16024
160251999-09-24 Glenn Chambers <GChambers@provsol.com>
16026
16027 * decl.c (insert_block): Remove unconditional `abort'.
16028
160291999-09-24 Bernd Schmidt <bernds@cygnus.co.uk>
16030
16031 * decl.c (builtin_function): No longer static. New arg CLASS. Arg
16032 FUNCTION_CODE now of type int. All callers changed.
16033 Set the builtin's DECL_BUILT_IN_CLASS.
16034
160351999-09-23 Tom Tromey <tromey@cygnus.com>
16036
16037 * jvspec.c (lang_specific_driver): Don't read spec file if
16038 -fsyntax-only given.
16039
160401999-09-22 Tom Tromey <tromey@cygnus.com>
16041
16042 * lang-specs.h: Added `%(jc1)' to the jc1 spec.
16043
16044 * javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally.
16045 (WORDS_TO_LONG): Likewise.
16046 (WORDS_TO_DOUBLE): Likewise.
16047
160481999-09-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
16049
16050 * jcf-write.c (RELOCATION_VALUE_0): New macro.
16051 (RELOCATION_VALUE_1): Likewise.
16052 (emit_iinc, emit_reloc, push_constant1, push_constant2,
16053 push_in_const, push_long_const): Prototyped.
16054 (push_constant1): Argument `index' is of type HOST_WIDE_INT.
16055 (push_constant2): Likewise.
16056 (push_int_const): Cast find_constant1's integer arguments to `jword'.
16057 (find_constant_wide): Cast find_constant2's integer arguments to
16058 `jword'.
16059 (find_constant_index): Cast find_constant2's and find_constant2's
16060 integer arguments to `jword'.
16061 (emit_pop): Argument `value' is of type HOST_WIDE_INT.
16062 (emit_switch_reloc): Use RELOCATION_VALUE_0.
16063 (emit_if): Use RELOCATION_VALUE_1.
16064 (emit_goto): Likewise.
16065 (emit_jsr): Likewise.
16066 (generate_bytecode_insns): Use RELOCATION_VALUE_0. Cast second
16067 argument to push_long_const to HOST_WIDE_INT.
16068
160691999-09-15 Andreas Schwab <schwab@suse.de>
16070
16071 * Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
16072
160731999-09-20 Nick Clifton <nickc@cygnus.com>
16074
16075 * lang.c (lang_decode_option): Extend comment.
16076
160771999-09-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
16078
16079 * parse.y (java_method_add_stmt): Test against GET_CURRENT_BLOCK
16080 instead of fndecl.
16081
160821999-09-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16083
16084 * gjavah.c (get_field_name, print_method_info, print_include,
16085 add_namelet): Use xmalloc, not malloc.
16086
16087 * jcf-depend.c (add_entry): Likewise. Use xstrdup, not strdup.
16088 (munge): Use xrealloc, not realloc, trust xrealloc to handle a
16089 NULL pointer.
16090
16091 * jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.
16092
16093 * jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.
16094
16095 * jcf-path.c (add_entry): Likewise.
16096
16097 * jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.
16098
16099 * jv-scan.c (xmalloc): Remove definition.
16100
16101 * jvgenmain.c (xmalloc): Likewise.
16102
16103 * jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero.
16104
16105 * lex.c (java_store_unicode): Use xrealloc, not realloc.
16106
16107 * parse-scan.y: Use concat, not of xmalloc/assign/strcpy. Use
16108 concat, not xmalloc/sprintf.
16109 (java_push_parser_context): Use xcalloc, not xmalloc/bzero.
16110 (xstrdup): Remove definition.
16111
16112 * parse.y (duplicate_declaration_error_p,
16113 constructor_circularity_msg, verify_constructor_circularity,
16114 check_abstract_method_definitions, java_check_regular_methods,
16115 java_check_abstract_methods, patch_method_invocation,
16116 check_for_static_method_reference, patch_assignment, patch_binop,
16117 patch_cast, array_constructor_check_entry, patch_return,
16118 patch_conditional_expr): Use xstrdup, not strdup.
16119
16120 * zextract.c (ALLOC): Use xmalloc, not malloc.
16121
161221999-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16123
16124 * Make-lang.in (jvspec.o): Depend on system.h and gcc.h.
16125
16126 * jvspec.c: Include gcc.h. Don't include gansidecl.h.
16127 (do_spec, lang_specific_pre_link, lang_specific_driver,
16128 input_filename, input_filename_length): Don't declare.
16129 (main_class_name, jvgenmain_spec, lang_specific_driver):
16130 Constify a char*.
16131 (lang_specific_driver): All calls to the function pointer
16132 parameter now explicitly call `fatal'.
16133
161341999-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
16135
16136 * parse.y (find_applicable_accessible_methods_list): Search
16137 abstract classes as interfaces.
16138
161391999-09-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
16140
16141 * class.c (finish_class): We're now outside a valid method
16142 declaration. Tell the rest of gcc so.
16143
161441999-09-08 Bruce Korb autogen@linuxbox.com
16145
16146 * Makefile.in: Give the gperf user a hint about why "gperf -F" fails.
16147
161481999-09-07 Tom Tromey <tromey@cygnus.com>
16149
16150 * gjavah.c (add_class_decl): Generate include for gcj/array.h, not
16151 java-array.h.
16152 (decode_signature_piece): Don't emit "::" in JArray<>.
16153 (print_namelet): Only print trailing `;' when printing a class.
16154
161551999-09-10 Bernd Schmidt <bernds@cygnus.co.uk>
16156
16157 * java-tree.h: Delete declarations for all tree nodes now moved to
16158 global_trees.
16159 * decl.c: Delete their definitions.
16160
161611999-09-04 Mark Mitchell <mark@codesourcery.com>
16162
16163 * Make-lang.in (jc1): Depend on ggc-callbacks.o.
16164 * Makefile.in (OBJS): Add ggc-callbacks.o.
16165 (OBJDEPS): Likewise.
16166
161671999-09-03 Tom Tromey <tromey@cygnus.com>
16168
16169 * parse.y (strip_out_static_field_access_decl): Return operand if
16170 it satisfies JDECL_P.
16171
161721999-09-02 Tom Tromey <tromey@cygnus.com>
16173
16174 * gjavah.c (decode_signature_piece): Emit "::" in JArray<>.
16175 Handle nested arrays, like `[[I'.
16176
161771999-09-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16178
16179 * class.c (finish_class): Remove unused parameter, all callers
16180 changed.
16181
16182 * expr.c (build_java_athrow): Change return type to void.
16183 (java_lang_expand_expr): Make sure each case in switch returns a
16184 value.
16185
16186 * java-tree.h (finish_class): Fix prototype to take void args.
16187
16188 * jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN.
16189 (main): Issue return from main, not exit.
16190
16191 * jcf-parse.c (parse_class_file): Fix call to `finish_class'.
16192
16193 * jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN.
16194
16195 * jv-scan.c (main): Issue return from main, not exit.
16196
16197 * parse.y (check_abstract_method_definitions,
16198 java_check_abstract_method_definitions): Add static prototypes.
16199 (java_complete_expand_methods): Fix call to `finish_class'.
16200
16201 * verify.c (verify_jvm_instructions): Initialize variables `oldpc'
16202 and `prevpc'.
16203
162041999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16205
16206 * lang.c (language_string): Constify.
16207
162081999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16209
16210 * Makefile.in (LIBS): Fix definition so we link with $(CLIB).
16211 Remove hacks for stuff which comes from libiberty.
16212
16213 * Make-lang.in: Likewise.
16214
162151999-08-30 Hans-Peter Nilsson <hp@axis.se>
16216
16217 * Makefile.in (xref.o): Depend on xref.c explicitly.
16218
162191999-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16220
16221 * java-tree.h (lang_printable_name): Constify a char*.
16222
16223 * lang.c (lang_printable_name): Likewise.
16224
162251999-08-27 Jeffrey A Law (law@cygnus.com)
16226
16227 * gjavah.c, jcf-write.c, verify.c: Do not use C++ style
16228 comments in C code.
16229
162301999-08-26 Tom Tromey <tromey@cygnus.com>
16231
16232 * gjavah.c (print_cxx_classname): Print "::" before qualified
16233 name.
16234
162351999-08-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
16236
16237 * parse.y (lookup_cl): Changed leading comment. Now does its best
16238 to set the column number.
16239 (qualify_ambiguous_name): Take WFL wrappers into account.
16240
162411999-08-25 Gregg Townsend <gmt@cs.arizona.edu>
16242
16243 * verify.c (verify_jvm_instructions): Don't check instruction
16244 validity beyond end of method.
16245
162461999-08-25 Tom Tromey <tromey@cygnus.com>
16247
16248 * jvspec.c (lang_specific_driver): Correctly handle --help again.
16249
162501999-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16251
16252 * gjavah.c (print_name, print_base_classname, utf8_cmp,
16253 cxx_keyword_subst, generate_access, name_is_method_p,
16254 get_field_name, print_field_name, super_class_name, print_include,
16255 decode_signature_piece, print_class_decls, usage, help,
16256 java_no_argument, version, add_namelet, print_namelet): Add static
16257 prototype.
16258 (print_base_classname, utf8_cmp, cxx_keyword_subst,
16259 name_is_method_p): Constify a char*.
16260 (get_field_name): Likewise. Prefer xstrdup over malloc/strcpy.
16261 Provide a final else clause in an if-else-if.
16262 (print_field_info): Add missing final arg in function call to
16263 `print_field_name'.
16264 (print_method_info, decompile_method, decode_signature_piece,
16265 print_c_decl, print_full_cxx_name, print_stub,
16266 print_mangled_classname, super_class_name, print_include,
16267 add_namelet, add_class_decl, print_class_decls, process_file,
16268 help): Constify a char*.
16269
16270 * jcf-write.c (jcf_handler, push_constant1, push_constant2,
16271 push_int_const, find_constant_wide, find_constant_index,
16272 push_long_const, field_op, maybe_wide, emit_dup, emit_pop,
16273 emit_iinc, emit_load_or_store, emit_load, emit_store, emit_unop,
16274 emit_binop, emit_reloc, emit_switch_reloc, emit_case_reloc,
16275 emit_if, emit_goto, emit_jsr, call_cleanups,
16276 make_class_file_name): Add static prototypes.
16277 (generate_bytecode_return, generate_bytecode_insns): Pass a
16278 NULL_PTR, not a NULL_TREE.
16279
16280 * jv-scan.c: Include "jcf.h".
16281 (main): Declare using DEFUN macro.
16282
16283 * jvspec.c (find_spec_file, lang_specific_pre_link,
16284 lang_specific_driver): Add prototypes.
16285 (find_spec_file): Constify a char*.
16286
16287 * keyword.gperf (hash, java_keyword): Add prototypes.
16288
16289 * lang.c (lang_print_error): Add static prototype.
16290 (lang_init): Prefer memcpy over bcopy to avoid casts.
16291
16292 * lex.c (yylex): Add static prototype.
16293
16294 * parse-scan.y: Include "lex.c" earlier.
16295
16296 * parse.h: Remove redundant declaration for `yylex'.
16297
16298 * parse.y (java_decl_equiv, binop_compound_p, search_loop,
16299 labeled_block_contains_loop_p): Add static prototypes.
16300 (not_accessible_p): Make static to match prototype.
16301
16302 * verify.c (start_pc_cmp): Don't needlessly cast away const.
16303
163041999-08-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16305
16306 * parse.y (check_method_redefinition): Changed leading comment.
16307 (check_abstract_method_definitions): New function.
16308 (java_check_abstract_method_definitions): New function.
16309 (java_check_regular_methods): Call it.
16310 (verify_constructor_super): Fixed indentation.
16311 (lookup_method_invoke): Likewise.
16312
163131999-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
16314
16315 * parse.y (method_header): Return a null pointer if the current
16316 class node is null.
16317 (finish_method_declaration): Return if the current function decl
16318 is null.
16319 (source_start_java_method): Likewise.
16320 (java_method_add_stmt): Likewise.
16321
163221999-08-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
16323
16324 * class.c (emit_register_class): Removed unnecessary call to
16325 start_sequence.
16326 * parse.y (labeled_block_contains_loop_p): Removed unused local
16327 variable.
16328
163291999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16330
16331 * parse.y (java_refold): Added prototype.
16332
163331999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16334
16335 * parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
16336 (java_stabilize_reference): Removed unnecessary `else'.
16337 (java_complete_lhs): Set flag to remember boolean. Call
16338 java_refold. Added comments.
16339 (java_decl_equiv): New function.
16340 (binop_compound_p): Likewise.
16341 (java_refold): Likewise.
16342 (patch_unaryop): Striped static field access assigned to decl and
16343 op. Changed promotion scheme for ++/-- operators.
16344 (search_loop): New function.
16345 (labeled_block_contains_loop_p): Likewise.
16346 (patch_loop_statement): Call labeled_block_contains_loop_p. Added
16347 comment.
16348 (patch_bc_statement): Call search_loop. Fixed comment.
16349
163501999-08-14 Anthony Green <green@cygnus.com>
16351
16352 * expr.c (java_lang_expand_expr): Mark static array data as
16353 referenced.
16354
163551999-08-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16356
16357 * jvgenmain.c (main): NUL-terminate name_obstack.
16358
163591999-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16360
16361 * check-init.c (check_bool2_init, done_alternative): Add static
16362 prototypes.
16363
16364 * class.c (add_interface_do, maybe_layout_super_class): Likewise.
16365 (add_method, build_utf8_ref, build_class_ref,
16366 append_gpp_mangled_type, layout_class_method): Constify a char*.
16367
16368 * decl.c (push_promoted_type, make_binding_level): Add static
16369 prototypes.
16370 (push_promoted_type, pushdecl): Constify a char*.
16371
16372 * except.c (find_handler_in_range, link_handler,
16373 check_start_handlers): Add static prototypes.
16374
16375 * expr.c (process_jvm_instruction): Constify a char*.
16376
16377 * gjavah.c (main): Constify a char*.
16378
16379 * java-tree.h (verify_jvm_instructions, process_jvm_instruction):
16380 Constify a char*.
16381
16382 * jcf-depend.c (free_entry, add_entry, munge, print_ents): Add
16383 static prototypes.
16384 (add_entry, jcf_dependency_set_target, jcf_dependency_add_target,
16385 munge, print_ents): Constify a char*.
16386
16387 * jcf-dump.c (disassemble_method): Constify a char*.
16388 (print_constant_pool, print_exception_table): Add static prototypes.
16389 (print_constant, print_exception_table, main, disassemble_method):
16390 Constify a char*.
16391
16392 * jcf-io.c (find_classfile, find_class): Likewise.
16393
16394 * jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise.
16395 (set_source_filename, predefined_filename_p): Add static prototypes.
16396 (set_source_filename, get_constant, get_class_constant,
16397 find_in_current_zip): Constify a char*.
16398
16399 * jcf-path.c (free_entry, append_entry, add_entry, add_path): Add
16400 static prototypes.
16401 (add_entry, add_path, jcf_path_classpath_arg,
16402 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
16403
16404 * jcf-reader.c (get_attribute, jcf_parse_preamble,
16405 jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields,
16406 jcf_parse_one_method, jcf_parse_methods,
16407 jcf_parse_final_attributes): Add static prototypes.
16408 (get_attribute): Constify a char*.
16409
16410 * jcf.h (find_class, find_classfile, jcf_dependency_set_target,
16411 jcf_dependency_add_target, jcf_path_classpath_arg,
16412 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
16413
16414 * jv-scan.c (main): Constify a char*.
16415 (gcc_obstack_init): Add prototype arguments.
16416
16417 * jvgenmain.c (gcc_obstack_init): Likewise.
16418 (main): Constify a char*.
16419
16420 * lang.c (put_decl_string, put_decl_node, java_dummy_print): Add
16421 static prototypes.
16422 (put_decl_string, lang_print_error): Constify a char*.
16423 (lang_init): Remove redundant extern prototype.
16424
16425 * mangle.c (emit_unicode_mangled_name): Constify a char*.
16426
16427 * typeck.c (convert_ieee_real_to_integer, parse_signature_type):
16428 Add static prototypes.
16429 (get_type_from_signature): Constify a char*.
16430
16431 * verify.c (check_pending_block, type_stack_dup, start_pc_cmp ):
16432 Add static prototypes.
16433 (start_pc_cmp): Prefer PTR over GENERIC_PTR.
16434 (verify_jvm_instructions): Constify a char*.
16435
16436 * xref.c (xref_flag_value): Likewise.
16437
16438 * xref.h (xref_flag_value): Likewise.
16439
16440 * zextract.c (makeword, makelong): Add static prototypes.
16441 (makeword, makelong): Constify a uch*.
16442
164431999-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16444
16445 * lang.c (java_dummy_print): Constify a char*.
16446 (lang_print_error): Likewise.
16447 (lang_init): Remove redundant prototype for `print_error_function'.
16448 (lang_init_source): Likewise.
16449 (lang_identify): Constify a char*.
16450
164511999-08-09 Tom Tromey <tromey@cygnus.com>
16452
16453 * javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
16454 (WORDS_TO_LONG): Likewise.
16455 (WORDS_TO_DOUBLE): Likewise.
16456
164571999-08-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16458
16459 * Makefile.in (lang.o): Depend on $(RTL_H) $(EXPR_H).
16460
16461 * expr.c (java_stack_pop, java_array_data_offset,
16462 build_java_throw_out_of_bounds_exception, case_identity,
16463 build_java_check_indexed_type): Add static prototypes.
16464 (linenumber_table, expand_invoke, expand_java_field_op,
16465 build_primtype_type_ref, expand_byte_code): Constify a char*.
16466
16467 * java-tree.h (build_primtype_type_ref, linenumber_table):
16468 Constify a char*.
16469 (java_lang_expand_expr): Add prototype.
16470
16471 * lang.c: Include rtl.h and expr.h. Remove extern prototype for
16472 `java_lang_expand_expr'.
16473
16474 * lex.c (java_lex_error): Constify a char*.
16475 (java_get_unicode, java_read_char, java_allocate_new_line,
16476 java_unget_unicode, java_sneak_unicode): Prototype.
16477
16478 * parse-scan.y (current_class, package_name, method_declarator,
16479 report_class_declaration, yyerror): Constify a char*.
16480
16481 * parse.h (java_report_errors): Prototype.
16482 (yyerror): Constify a char*.
16483
16484 * parse.y (classitf_redefinition_error, check_modifiers,
16485 parse_jdk1_1_error, lookup_package_type,
16486 lookup_package_type_and_set_next, get_printable_method_name,
16487 purify_type_name): Constify a char*.
16488 (build_super_invocation, maybe_generate_finit,
16489 verify_constructor_super, parser_add_interface,
16490 add_superinterfaces, jdep_resolve_class, note_possible_classname,
16491 java_complete_expand_methods, java_expand_finals,
16492 cut_identifier_in_qualified, java_stabilize_reference,
16493 do_unary_numeric_promotion, operator_string, do_merge_string_cste,
16494 merge_string_cste): Prototype.
16495 (single_type_import_declaration, yyerror,
16496 variable_redefinition_error, build_array_from_name,
16497 build_unresolved_array_type, check_class_interface_creation,
16498 resolve_class, complete_class_report_errors,
16499 note_possible_classname, read_import_dir,
16500 find_in_imports_on_demand, resolve_package, fix_constructors,
16501 check_deprecation, lookup_method_invoke,
16502 maybe_build_primttype_type_ref, array_constructor_check_entry):
16503 Constify a char*.
16504 (java_complete_expand_methods, java_expand_finals): Make static.
16505 (convert_narrow): Remove static prototype.
16506
165071999-08-03 J"orn Rennecke <amylaar@cygnus.co.uk>
16508
16509 * Makefile.in (decl.o): Depends on $(srcdir)/../defaults.h.
16510
165111999-08-02 Richard Henderson <rth@cygnus.com>
16512
16513 * decl.c: Include defaults.h instead of expr.h.
16514 * parse.y: Likewise.
16515
165161999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
16517
16518 * java/decl.c (start_java_method): Change all uses of
16519 PROMOTE_PROTOTYPES, so that it tests it as a C expression.
16520 Ensure expr.h is included.
16521 * java/expr.c (pop_arguments): Ditto.
16522 * java/parse.y (expand_start_java_method): Ditto.
16523
165241999-08-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16525
16526 * Makefile.in (ALL_CFLAGS): Add '-W -Wall'.
16527
165281999-07-31 Bernd Schmidt <bernds@cygnus.co.uk>
16529
16530 * decl.c: Include "function.h".
16531 * except.c: Likewise.
16532 * parse.y: Likewise.
16533 * Makefile.in: Update dependencies.
16534
165351999-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16536
16537 * expr.c (build_java_soft_divmod): Provide a default case in switch.
16538 (java_lang_expand_expr): Mark parameters `target', `tmode' and
16539 `modifier' with ATTRIBUTE_UNUSED.
16540
16541 * gjavah.c (process_file): Add braces around ambiguous `else'.
16542
16543 * jcf-dump.c (print_access_flags, localvar_free): Change return
16544 type to void.
16545
16546 * parse.y (java_complete_expand_method): Initialize variable
16547 `exception_copy'.
16548 (resolve_qualified_expression_name): Likewise for `field_decl'.
16549 (patch_method_invocation): Likewise for `class_to_search'.
16550 (qualify_ambiguous_name): Likewise for `name' and `ptr_type'.
16551 (patch_assignment): Likewise for `lhs_type'.
16552
16553 * verify.c (verify_jvm_instructions): Remove unused variable
16554 `caller'.
16555
165561999-07-25 Richard Henderson <rth@cygnus.com>
16557
16558 * decl.c (va_list_type_node): New.
16559
165601999-07-25 Anthony Green <green@cygnus.com>
16561
16562 * gjavah.c (print_stub): New function.
16563 (METHOD_IS_NATIVE): New macro.
16564 (print_mangled_classname): Make static.
16565 (HANDLE_END_FIELD): Don't emit fields during stub generation.
16566 (process_file): Perform stub generation.
16567 (HANDLE_METHOD): Don't emit class decls during stub
16568 generation.
16569 (HANDLE_END_METHOD): Take into account stub generation.
16570 (print_method_info): Handle stub generation.
16571 (print_stub): New function.
16572 (print_cxx_classname): Make signature consistant with others.
16573 (help): Describe -stubs option.
16574 (main): Create stub file.
16575 (version): Use version.c.
16576 (print_full_cxx_name): New function.
16577 (print_c_decl): Use print_full_cxx_name.
16578
165791999-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16580
16581 * check-init.c (check_init): Handle MAX_EXPR.
16582
165831999-07-15 Andrew Haley <aph@cygnus.com>
16584
16585 * lang.c (flag_use_divide_subroutine): New variable.
16586 * typeck.c: (convert_ieee_real_to_integer): Bounds check
16587 fp-to-integer conversion.
16588 (convert): Call convert_ieee_real_to_integer when flag_fast_math
16589 is not set.
16590
16591 * expr.c (build_java_soft_divmod): New function.
16592 (build_java_binop): Call build_java_soft_divmod if
16593 flag_use_divide_subroutine is set.
16594 * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
16595 soft_lrem_node: new builtin functions.
16596 (init_decl_processing) Initialize the new builtins.
16597 * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
16598 soft_lrem_node: new builtin functions.
16599 (build_java_soft_divmod): New function.
16600 * parse.y: Call build_java_soft_divmod if
16601 flag_use_divide_subroutine is set.
16602 * parse.c: Rebuilt.
16603
16604 * jvspec.c (lang_specific_driver): Always allow an extra arg (for
16605 a --specs= arg) even if not linking.
16606 * lang-options.h (DEFINE_LANG_NAME ("Java")): Add
16607 -fuse-divide-subroutine
16608
166091999-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
16610
16611 * parse.y (resolve_and_layout): Check methods only once.
16612 (resolve_qualified_expression_name): Verify thrown exceptions
16613 compatibility.
16614 (check_thrown_exceptions): Reject exceptions thrown in
16615 initializer. Error message tuned.
16616
166171999-07-14 Andrew Haley <aph@cygnus.com>
16618
16619 * expr.c (expand_expr): Do not return the last statement in a
16620 block as the block's value.
16621
166221999-07-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
16623
16624 * expr.c (force_evaluation_order): Save the COMPOUND_EXPR'ed
16625 CALL_EXPR, to avoid order of evaluation changes.
16626
166271999-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
16628
16629 * parse.y (qualify_ambiguous_name): Do not use
16630 IDENTIFIER_LOCAL_VALUE when name is a STRING_CST.
16631
166321999-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
16633
16634 * check-init.c (check_init): Handle MAX_EXPR.
16635 * expr.c (force_evaluation_order): Force method call arguments to
16636 be evaluated in left-to-right order.
16637 * parse.y (qualify_ambiguous_name): Loop again to qualify
16638 NEW_ARRAY_EXPR properly.
16639
166401999-06-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
16641
16642 * parse.y (patch_invoke): Resolve unresolved invoked method
16643 returned type.
16644 (qualify_ambiguous_name): STRING_CST to qualify expression for
16645 type name resolution.
16646
166471999-06-24 Andrew Haley <aph@cygnus.com>
16648
16649 * class.c (finish_class): Whenever a deferred method is
16650 output, rescan the list of methods to see if a new candidate for
16651 output can be found.
16652
166531999-06-28 Tom Tromey <tromey@cygnus.com>
16654
16655 * jvspec.c (lang_specific_driver): Recognize --help.
16656
166571999-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
16658
16659 * parse.y (resolve_package): Fixed bogus return statement.
16660 (patch_method_invocation): Resolve method invocation beginning with
16661 a package name qualifier.
16662
166631999-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16664
16665 * Make-lang.in (java.stage1): Depend on stage1-start.
16666 (java.stage2): Likewise for stage2-start.
16667 (java.stage3): Likewise for stage3-start.
16668 (java.stage4): Likewise for stage4-start.
16669
166701999-06-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
16671
16672 * parse.y (java_complete_lhs): When doing cross referencing, don't
16673 try to keep file location on a WFL expanded as a CALL_EXPR.
16674
166751999-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
16676
16677 * parse.y (finish_method_declaration): Insert a RETURN_EXPR when
16678 compiling to class file a void method with an empty method body.
16679 As a side effect, the bytecode backend will generate the
16680 appropriate `return' instruction.
16681
166821999-06-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16683
16684 * parse.y (lookup_package_type_and_set_next): New function prototype.
16685 (resolve_package): Search current and imported packages.
16686 (lookup_package_type_and_set_next): New function.
16687
166881999-06-22 Andrew Haley <aph@cygnus.com>
16689
16690 * verify.c (verify_jvm_instructions): Check for pending blocks
16691 before invalid PC test and opcode switch, not after.
16692
166931999-06-21 Andrew Haley <aph@cygnus.com>
16694
16695 * except.c (find_handler_in_range): The upper limit for exception
16696 ranges is exclusive, not inclusive: (start <= pc < end).
16697 (link_handler): find child pointer which points to outer by
16698 searching sibling list: previous code incorrectly assumed that
16699 outer->outer->first_child must point to outer.
16700 * verify.c (verify_jvm_instructions): FIXME added to code for
16701 `athrow'.
16702 (verify_jvm_instructions): Do not assume that the last block
16703 processed in a subroutine is a block which ends with a `ret'
16704 instruction. With some control flows it is possible that the last
16705 block ends with an `athrow'.
16706
167071999-06-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
16708
16709 * parse.y (qualify_ambiguous_name): Reorganized the post
16710 evaluation of non WFL leading expression nodes.
16711
167121999-06-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
16713
16714 * parse.y (qualify_ambiguous_name): Handle ARRAY_REF after
16715 CONVERT_EXPR.
16716
167171999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
16718
16719 * parse.y (qualify_ambiguous_name): Handle qualified expression
16720 beginning with a STRING_CST.
16721
167221999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
16723
16724 * parse.y (register_fields): Set DECL_INITIAL on both
16725 pre-initialized static and public fields.
16726 (resolve_field_access): Static field access expressions to always
16727 use pointer types.
16728 (qualify_ambiguous_name): Work out buried CALL_EXPR for proper
16729 qualification. CONVERT_EXPR to be resolved as an expression name.
16730 (java_complete_lhs): Identify and access qualified final
16731 initialized field in switch statement case expression.
16732 (fold_constant_for_init): Pre-initialized field decl constant to
16733 be folded.
16734
167351999-06-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
16736
16737 * parse.y (note_possible_classname): Mark returned node with
16738 QUALIFIED_P only if the original class name contained a '/'.
16739
167401999-06-05 Anthony Green <green@cygnus.com>
16741
16742 * Make-lang.in (gcjh): More parallel build fixes.
16743
167441999-06-03 Mike Stump <mrs@wrs.com>
16745
16746 * Make-lang.in (JCF_DUMP_SOURCES, jvgenmain): Fix parallel builds.
16747
167481999-06-02 Anthony Green <green@cygnus.com>
16749
16750 * except.c (link_handler): Chain exception handlers in order.
16751
167521999-06-02 Anthony Green <green@cygnus.com>
16753
16754 * expr.c (expand_byte_code): Fill unreachable bytecode regions
16755 with nops and process as usual in order to always set correct EH
16756 ranges. Emit detailed warnings about unreachable bytecodes.
16757
167581999-06-02 Anthony Green <green@cygnus.com>
16759
16760 * class.c (build_utf8_ref): Mark cinit and utf8 tree nodes as
16761 constant.
16762
167631999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
16764
16765 * parse.y (lookup_field_wrapper): Unified returned value to NULL
16766 or the searched field decl.
16767
167681999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
16769
16770 * parse.y (fold_constant_for_init): Convert numerical constant
16771 values to the type of the assigned field.
16772
167731999-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
16774
16775 * expr.c (lookup_field): Relaxed the test on class loading error
16776 detection.
16777 * parse.y (fold_constant_for_init): Enabeled old code.
16778
167791999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
16780
16781 * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast'
16782 decide the validity of the cast of a java.lang.Cloneable reference
16783 to an array.
16784 (patch_conditional_expr): Fixed first argument passed to
16785 binary_numeric_promotion.
16786
167871999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
16788
16789 * parse.y (qualify_ambiguous_name): Take into account that a
16790 CONVERT_EXPR might specify a type as a WFL.
16791
167921999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
16793
16794 * parse.y (patch_assignment): Save the rhs before using it as an
16795 argument to _Jv_CheckArrayStore.
16796
167971999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
16798
16799 * lex.c (java_parse_doc_section): Fixed `tag' buffer size.
16800
168011999-05-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
16802
16803 * lex.c (java_lex): Accepts `+' or `-' after the beginning of a
16804 floating point literal only when the exponent indicator has been
16805 parsed.
16806
168071999-05-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16808
16809 * parse.y (formal_parameter:): Construct argument tree list
16810 element even if a yet unsupported final parameter was encountered.
16811
168121999-05-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
16813
16814 * parse.y (finish_method_declaration): Issue errors for native or
16815 abstract methods declared with a method body, as well as for non
16816 native or non abstract methods with no method body.
16817
168181999-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16819
16820 * class.c (build_utf8_ref): Initialize variable `field'.
16821
16822 * decl.c (init_decl_processing): Initialize variable `field'.
16823
16824 * expr.c (build_known_method_ref): Mark parameters `method_type',
16825 `method_signature' and `arg_list' with ATTRIBUTE_UNUSED.
16826 (process_jvm_instruction): Likewise for parameter `length'.
16827
16828 * jvspec.c (lang_specific_driver): Mark variables `saw_math',
16829 `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with
16830 ATTRIBUTE_UNUSED.
16831
16832 * parse.y (maybe_generate_clinit): Remove unused variable
16833 `has_non_primitive_fields'.
16834 (find_in_imports_on_demand): Initialize variables `node_to_use'
16835 and `cl'.
16836 (patch_binop): Likewise for variable `prom_type'.
16837 (patch_unaryop): Likewise for variable `prom_type'.
16838
16839 * verify.c (verify_jvm_instructions): Likewise for variable `last'.
16840
16841 * xref.c (xref_table): Add missing initializer.
16842
168431999-05-14 Tom Tromey <tromey@cygnus.com>
16844
16845 * java-except.h (struct eh_range): Removed unused `next' member.
16846 * verify.c (verify_jvm_instructions): Call check_nested_ranges
16847 after adding all exception handlers. Sort exception ranges in
16848 order of start PC.
16849 (struct pc_index): New structure.
16850 (start_pc_cmp): New function.
16851 * except.c (add_handler): Return `void'. Don't call link_handler;
16852 instead construct an ordinary linked list and do range
16853 coalescing.
16854 (check_nested_ranges): New function.
16855 (link_handler): Changed interface to allow merging of eh_ranges.
16856 Split overlapping ranges. Return `void'.
16857
168581999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16859
16860 * parse.y (constructor_block_end:): New rule, tagged <node>.
16861 (constructor_body:): Use `constructor_block_end' instead of
16862 `block_end'.
16863
168641999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16865
16866 * parse.y (statement_nsi:): Pop `for' statement block.
16867 (java_complete_lhs): Labeled blocks containing no statement are
16868 marked as completing normally.
16869
168701999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
16871
16872 * xref.c (xref_set_current_fp): New function, defined.
16873 * xref.h (xref_set_current_fp): New function, prototyped.
16874
168751999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
16876
16877 * check-init.c (check_init): Take into account that
16878 LABELED_BLOCK_STMT can be empty.
16879
168801999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
16881
16882 * parse.y (java_check_regular_methods): Warning check on not
16883 overriding methods with default access in other packages does not
16884 apply to `<clinit>'.
16885 (java_complete_lhs): If block body is an empty_stmt_node, replace
16886 it by NULL_TREE. This prevents gcc from generating an irrelevant
16887 warning.
16888
168891999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
16890
16891 * check-init.c (check_init): Removed code accepting to see things
16892 falling through default:, when doing xrefs.
16893 * java-tree.h (do_not_fold): New global variable, declared.
16894 * parse.y (do_not_fold): New global variable, defined.
16895 (java_complete_expand_method): Set `do_not_fold' to the value of
16896 `flag_emit_xref'. When doing xrefs: copy the thrown exceptions,
16897 and reinstall them after them have been purged; do not check for
16898 initializations; do not issue missing return errors.
16899 (java_complete_lhs): Do not attempt to patch INSTANCEOF_EXPR nodes
16900 when doing xrefs.
16901 (patch_binop): Skip the fold part when doing xrefs.
16902 (build_string_concatenation): Skip the concatenation part when
16903 doing xrefs.
16904 (patch_synchronized_statement): Do not generate a try-finally when
16905 doing xrefs.
16906 (patch_throw_statement): When doing xrefs, do not call BUILD_THROW
16907 and keep the location where the throw was seen.
16908 * typeck.c (convert): When `do_not_fold' is set, do not attempt
16909 any treatment on the converted node an simply return a NOP_EXPR of
16910 the targeted type.
16911 * xref.c (xref_get_data): New function, defined.
16912 * xref.h (xref_get_data): New function, declared.
16913 (XREF_GET_DATA): Use xref_get_data.
16914
169151999-05-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16916
16917 * gjavah.c (print_include): Cast the result of `strlen' to int
16918 when comparing against a signed value.
16919 (add_namelet): Likewise.
16920
169211999-05-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16922
16923 * expr.c (expand_invoke): Mark parameter `nargs' with
16924 ATTRIBUTE_UNUSED.
16925 (PRE_LOOKUP_SWITCH): Likewise for variable `match'.
16926
16927 * jcf-io.c (jcf_unexpected_eof): Mark parameter `count' with
16928 ATTRIBUTE_UNUSED.
16929
16930 * jcf-reader.c (get_attribute): Cast a value to long
16931 when comparing against a signed expression. Likewise.
16932
16933 * lex.h: Never define HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT or
16934 HOST_BITS_PER_CHAR.
16935
169361999-05-11 Andrew Haley <aph@cygnus.com>
16937
16938 * parse.y (source_end_java_method): If the current method contains
16939 any exception handlers, force asynchronous_exceptions: this is
16940 necessary because signal handlers in libjava may throw exceptions.
16941 * decl.c (end_java_method): Ditto.
16942
169431999-05-11 Tom Tromey <tromey@cygnus.com>
16944
16945 * Make-lang.in (jvspec.o): Don't define WITH_THREAD_x or WITH_GC_x
16946 flags.
16947 * jvspec.c (THREAD_NAME): Removed.
16948 (GC_NAME): Likewise.
16949 (MATHLIB): Likewise.
16950 (WITHLIBC): Likewise.
16951 (GCLIB): Likewise.
16952 (THREADLIB): Likewise.
16953 (MATH_LIBRARY): Likewise.
16954 (lang_specific_driver): Don't add `-l' options to command line.
16955 Instead, add a single --specs option. Recognize `-L' options and
16956 use them to search for spec file.
16957 (find_spec_file): New function.
16958 (SPEC_FILE): New define.
16959
169601999-05-11 Dave Brolley <brolley@cygnus.com>
16961
16962 * lang-options.h: -MD, -MMD, -M and -MM not needed here for
16963 cpplib-enabled build.
16964
169651999-05-05 Per Bothner <bothner@cygnus.com>
16966
16967 * class.c (make_field_value): DECL_INITIAL may be a string literal;
16968 temporarily zero it while calling rest_of_decl_compilation.
16969
16970 * java-tree.h (string_ptr_type_node): Add declaration.
16971 * decl.c: Define and initialize string_ptr_type_node.
16972 * parse.y (patch_string_cst): Use string_ptr_type_node.
16973
16974 * parse.h (LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P): Removed.
16975 * parse.y (for_statement): Now unconditionally exit_block.
16976 (finish_labeled_statement): No longer exit_block if for-loop.
16977 (patch_loop_statement): Check harder if the loop is already labeled.
16978
16979 * parse.y (patch_initialized_static_field): Removed function.
16980 (maybe_generate_clinit): Removed special handling for interfaces.
16981 (java_complete_expand_methods): Do a preliminary java_complete_tree
16982 on <clinit> to determine if it can be removed.
16983 (java_complete_expand_method): Remove special handling for <clinit>.
16984 (java_complete_lhs): For BLOCK and EXPR_WITH_FILE_LOCATION
16985 optimize if we get back empty_stmt_node.
16986 For MODIFY_EXPR, re-do checking of static initializers.
16987 (fold_constant_for_init): Don't return immediate if VAR_DECL.
16988 For VAR_DECL, pass correct context.
16989
16990 * verify.c (verify_jvm_instructions): Better error messages.
16991
169921999-05-03 Tom Tromey <tromey@cygnus.com>
16993
16994 * parse-scan.y (interface_declaration): Call
16995 report_class_declaration for interfaces.
16996
169971999-04-30 20:54 -0400 Zack Weinberg <zack@rabi.columbia.edu>
16998
16999 * Makefile.in: Remove -v from bison command lines.
17000
170011999-04-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
17002
17003 * check-init.c (check_init): Exclude a case of error when doing
17004 xrefs.
17005 * class.c (layout_class_method): Don't generate the error message
17006 twice when compiling from source.
17007 * lang-options.h: Added `-Wredundant-modifers' and
17008 `-Wunusupported-jdk11' flags and help text.
17009 * lang.c (lang_decode_option): Added support for
17010 `-Wunsupported-jdk11' and `-Wredundant-modifiers'.
17011 flag_static_local_jdk11 and flag_redundant set accordingly.
17012 * lex.c (java_lex): Call BUILD_OPERATOR on CCB_TK.
17013 * parse.h (EXPR_WFL_ADD_COL): New macro.
17014 (DECL_END_SOURCE_LINE): Likewise.
17015 (DECL_INHERITED_SOURCE_LINE): Likewise.
17016 * parse.y (static_ref_err): New function, prototyped.
17017 (CCB_TK): Now tagged <operator>.
17018 (class_body:): Remember the location of the closing '}' of a class
17019 definition when doing xrefs.
17020 (block:): Likewise.
17021 (block_end:): Likewise.
17022 (create_class): Remember the location of the inherited class
17023 identifier when doing xrefs.
17024 (register_fields): Added test on first operand of `init' before
17025 testing it TREE_CODE.
17026 (method_header): Store the location of the class identifier in the
17027 class decl when doing xrefs.
17028 (finish_method_declaration): Don't combine first/last method line
17029 when doing xref.
17030 (java_check_regular_methods): Warning check on not overriding
17031 methods with default access on other packages move before check on
17032 static methods. Initialization of `aflags' also moved up.
17033 (resolve_expression_name): Call static_ref_err to report the error.
17034 (static_ref_err): New function, implemented.
17035 (resolve_field_access): Returned simplified static field access
17036 when doing xrefs.
17037 (resolve_qualified_expression_name): Check for illegal use of
17038 static fields in a non static context. Call static_ref_err to
17039 report error in various places.
17040 (java_complete_tree): Do not fold initialized static fields when
17041 doing xrefs.
17042 (java_complete_lhs): Likewise.
17043
170441999-04-29 Anthony Green <green@cygnus.com>
17045
17046 * expr.c (generate_name): Use ASM_GENERATE_INTERNAL_LABEL to
17047 create internal labels.
17048 (lookup_label): Ditto.
17049
170501999-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
17051
17052 * class.c (layout_class_method): Generate <clinit>'s rtl for
17053 interfaces.
17054 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
17055 for interfaces' <clinit>.
17056 * expr.c (lookup_field): Search for fields in interfaces.
17057 (expand_invoke): Fixed indentation.
17058 (expand_java_field_op): Likewise. Use IS_CLINIT.
17059 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): Macro removed.
17060 (IS_CLINIT): New macro.
17061 * parse.y (type_declaration:): Call maybe_generate_clinit after an
17062 interface was parsed.
17063 (maybe_generate_clinit): Don't generate if the current class is an
17064 interface with only fields of primitive types.
17065 (reset_method_name): Use IS_CLINIT.
17066 (java_complete_expand_method): Expand <clinit> when it exists for
17067 interfaces. Use IS_CLINIT.
17068 (resolve_expression_name): Use DECL_CONTEXT instead of
17069 current_class to build static field references.
17070 (java_complete_lhs): Use IS__CLINIT. Don't use SAVE_EXPR on
17071 ARRAY_REF when doing xreferencing.
17072 (check_final_assignment): Fixed typo in leading comment. Use
17073 IS_CLINIT.
17074 (patch_array_ref): Don't fully expand array references when
17075 xreferencing.
17076 (patch_return): Use IS_CLINIT.
17077 (patch_throw_statement): Likewise.
17078
170791999-04-22 Tom Tromey <tromey@cygnus.com>
17080
17081 * Make-lang.in (JAVA_SRCS): Added check-init.c.
17082
170831999-04-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
17084
17085 * decl.c (predef_filenames, predef_filenames_size): New globals
17086 (init_decl_processing): predef_filenames and predef_filenames_size
17087 initialized.
17088 * java-tree.h (predef_filenames, predef_filenames_size): Declared
17089 extern.
17090 * jcf-parse.c (predefined_filename_p): New function.
17091 (yyparse): Check that files on the command line are specified only
17092 once and issue a warning otherwise.
17093 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): New macro.
17094 * parse.y (source_end_java_method): Nullify NOP method bodies, to
17095 avoid a gcc warning with -W -Wall turned on.
17096 (java_expand_classes): Abort if errors were encountered.
17097 (java_complete_lhs): If the cross reference flag is set, wrap
17098 field DECL node around a WFL when resolving expression name.
17099
171001999-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
17101
17102 * lang.c (lang_decode_option): Fixed returned value when parsing
17103 `-fxref=...' and `-Wall'.
17104 * parse.y (source_end_java_method): Do not generate code when
17105 flag_emit_xref is set.
17106 (resolve_expression_name): Do not build static field access when
17107 flag_emit_xref is set.
17108 (resolve_field_access): No special treatment on `length' when
17109 flag_emit_xref is set. Do not build qualified static field access
17110 when flag_emit_xref is set.
17111 (patch_invoke): Keep the method DECL as operand 0 of the CALL_EXPR
17112 when flag_emit_xref is set.
17113 (patch_assignment): Do not generate array store runtime check when
17114 flag_emit_xref is set.
17115 * xref.c (xref_flag_value): Fixed function declaration
17116 indentation.
17117 (xset_set_data): New function.
17118 * xref.h (xref_set_data): Added prototype for new function.
17119 (typedef struct xref_flag_table): New field data.
17120 (XREF_GET_DATA): New macro.
17121
171221999-04-19 Tom Tromey <tromey@cygnus.com>
17123
17124 * xref.h (enum): Removed trailing comma.
17125
17126 * parse.y (resolve_qualified_expression_name): Added missing
17127 `break'.
17128
171291999-04-15 Anthony Green <green@cygnus.com>
17130
17131 * gjavah.c: New prototypes for java_float_finite and
17132 java_double_finite.
17133
171341999-04-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
17135
17136 * parse.y (patch_unaryop): Fixed ++/-- operator check on array
17137 references.
17138
171391999-04-06 Jeffrey A Law (law@cygnus.com)
17140
17141 * Makefile.in (TREE_H): Add tree-check.h.
17142 (RTL_H): Add genrtl.h.
17143
171441999-04-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
17145
17146 * parse.y (patch_assignment): Added ArrayStoreException runtime
17147 check.
17148
171491999-04-06 Per Bothner <bothner@cygnus.com>
17150
17151 * expr.c (pop_type_0): New function.
17152 (pop_type): Use pop_type_0.
17153 * java-tree.h (pop_type_0): New declaration.
17154 * verify.c (verify_jvm_instructions): Check return instructions.
17155
17156 * parse.y (patch_binop): Don't fold if non-constant and emiting
17157 class files.
17158
171591999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17160
17161 * Makefile.in (gjavah.o): Depend on $(JAVA_TREE_H).
17162
17163 * gjavah.c: Include math.h earlier. Include tree.h/java-tree.h.
17164 (main_jcf): Don't define.
17165 (process_file): Don't set `main_jcf'.
17166
17167 * java-tree.h (main_jcf): Don't declare.
17168
17169 * jcf-parse.c (main_jcf): Add static definition.
17170
17171 * lang.c (main_jcf): Don't define.
17172
171731999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17174
17175 * class.c (add_method_1): Cast the argument of `bzero' to PTR.
17176
17177 * decl.c (copy_lang_decl): Likewise for `bcopy'.
17178
17179 * jcf-depend.c: Include "config.h", not <config.h>.
17180
17181 * jcf-parse.c (jcf_figure_file_type): Cast the arguments of
17182 `bcopy' to PTR.
17183
17184 * jcf-path.c: Include "config.h", not <config.h>.
17185
17186 * lex.c: Don't include various system header files.
17187 (java_init_lex): Cast the argument of `bzero' to PTR
17188
17189 * parse-scan.y (java_push_parser_context): Likewise.
17190
17191 * parse.y (java_push_parser_context): Likewise.
17192 (patch_bc_statement): Match format specifier to variable argument.
17193
17194 * xref.c: Don't include <stdio.h>.
17195
171961999-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
17197
17198 * parse.y (struct parser_ctxt *ctxp): Now global.
17199 (declare_local_variables): Use WFL compound value for the
17200 declaration source line value, when doing cross-referencing.
17201
172021999-03-31 Tom Tromey <tromey@cygnus.com>
17203
17204 * gjavah.c (print_field_info): Allow constants of other types.
17205 (print_include): Generate include when new name is proper prefix
17206 of already printed name.
17207 (add_namelet): Likewise.
17208 (cxx_keyword_subst): New function.
17209 (print_method_info): Use it.
17210 (print_field_name): New function.
17211 (get_field_name): New function.
17212 (print_field_info): Use get_field_name and print_field_name.
17213
172141999-03-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17215
17216 * Makefile.in (keyword.h): Generate using gperf language 'C', not
17217 'KR-C', so gperf uses the `const' keyword on strings.
17218
17219 * keyword.gperf (java_keyword): Const-ify a char*.
17220
172211999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
17222
17223 * parse.y (patch_bc_statement): Fixed identation and a bogus
17224 `printf' format.
17225
172261999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
17227
17228 * parse.y (patch_assignment): Allow static variables in other
17229 classes to be assigned.
17230
172311999-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17232
17233 * class.c (maybe_add_interface): Remove unused variable
17234 `interface_binfo'.
17235 (make_class_data): Use = for assignment, not ==. Likewise.
17236 (emit_register_classes): Remove unused variable `decl'.
17237
17238 * lex.c: Fix comment so as not to contain an embedded `/*'.
17239
17240 * verify.c (verify_jvm_instructions): Remove unused variable
17241 `self_type'.
17242
172431999-03-27 Per Bothner <bothner@cygnus.com>
17244
17245 * parse.y (complete_loop_body): Rename to finish_loop_body.
17246 (complete_labeled_statement): Rename to finish_labeled_statement.
17247 (complete_for_loop): Rename to finish_for_loop.
17248 (complete_method_declaration): Rename to finish_method_declaration.
17249
17250 * java-tree.h (continue_identifier_node): New global node.
17251 * decl.c: Define and initialize continue_identifier_node.
17252 * parse.y (generate_labeled_block): Remove - no longer needed.
17253 (build_loop_body): Use continue_identifier_node for continue block.
17254 (finish_labeled_statement): Also do pop_labeled_block actions.
17255 (java_complete_lhs): POP_LOOP even if error.
17256 (build_labeled_block): Special handling for continue_identifier_node.
17257 (patch_loop_statement): Re-organize.
17258 (patch_bc_statement): Re-write.
17259
172601999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
17261
17262 * parse.h (EXPR_WFL_GET_LINECOL): Set a line and column count
17263 using a WFL compound value.
17264 * parse.y (xref.h): Include.
17265 (maybe_create_class_interface_decl): Set DECL_SOURCE_LINE to the
17266 WFL compound value.
17267 (register_fields): Set WFL compound value to lineno if doing
17268 xrefs.
17269 (java_complete_expand_method): Call expand_xref if flag_emit_xref
17270 is set.
17271 * xref.c (system.h, jcf.h, parse.h, obstack.h): Include.
17272 * xref.h (expand_xref): Prototype renamed from xref_generate.
17273
172741999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
17275
17276 * parse.h (BLOCK_CHAIN_DECL): New use GET_CURRENT_BLOCK.
17277 (GET_CURRENT_BLOCK): New macro.
17278 * parse.y (current_static_block): New global variable.
17279 (method_body:): Define action.
17280 (complete_method_declaration): Set current_function_decl to NULL
17281 when work on the current method is done.
17282 (declare_local_variables): Use GET_CURRENT_BLOCK.
17283 (java_method_add_stmt): Likewise.
17284 (java_complete_expand_method): Disable the use of `this' when
17285 expanding <clinit>.
17286 (enter_a_block): If no current method exist, use
17287 current_static_block to link static initializer blocks.
17288 (exit_block): Rewritten to use current_static_block when no current
17289 method decl exists.
17290 (lookup_name_in_blocks): Use GET_CURRENT_BLOCK.
17291 (patch_return): Forbid the use of `return' in static initializers.
17292 (patch_throw_statement): Fixed indentation. Issue specific error
17293 for uncaught thrown checked exception in static initializer
17294 blocks. Removed FIXME.
17295
172961999-03-25 Zack Weinberg <zack@rabi.columbia.edu>
17297
17298 * java/Make-lang.in: Remove all references to gcj.o/gcj.c.
17299 Link gcj from gcc.o.
17300
173011999-03-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
17302
17303 * parse.y (find_applicable_accessible_methods_list): When dealing
17304 with interface: ensure that a given interface or java.lang.Object
17305 are searched only once.
17306
173071999-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17308
17309 * gjavah.c (print_c_decl): Remove unused argument `flags'.
17310
17311 * jcf-dump.c (print_access_flags): Add braces around if-else.
17312
17313 * jvspec.c (lang_specific_driver): Wrap variable `len' in macro
17314 COMBINE_INPUTS.
17315
17316 * lex.c (build_wfl_node): Add static prototype.
17317
17318 * lex.h (build_wfl_node): Remove static prototype.
17319
17320 * parse.y: Include lex.c early enough to declare everything needed.
17321 Ensure calls to `build_wfl_node' pass the proper arguments.
17322 (create_class): Remove unused variable `super_decl'.
17323 (get_printable_method_name): Initialize variable `name'.
17324
173251999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
17326
17327 * Changelog: Fixed 1999-03-22 typos.
17328 * lang.c (lang_decode_option): Fixed typo in error string in the
17329 XARG section.
17330
173311999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
17332
17333 * Makefile.in (JAVA_OBJS): Added entry xref.o.
17334 (xref.o): New rule.
17335 * java-tree.h (flag_emit_xref): Declared extern.
17336 * lang.c (xref.h): Included.
17337 (flag_emit_xref): New global variable.
17338 (lang_decode_option): Added support for -fxref.
17339 * xref.c: Created.
17340 * xref.h: Likewise.
17341
173421999-03-21 Manfred Hollstein <manfred@s-direktnet.de>
17343
17344 * Make-lang.in ($(GCJ)$(exeext)): Add intl.o to list of files to be
17345 linked with.
17346
173471999-03-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17348
17349 * Makefile.in (jcf-dump.o): Depend on $(CONFIG_H)
17350 $(srcdir)/../system.h and $(JAVA_TREE_H).
17351 (jcf-io.o): Depend on $(JAVA_TREE_H).
17352 (mangle.o): Likewise.
17353
17354 * check-init.c (check_cond_init): Add static prototype.
17355
17356 * class.c (build_java_method_type, hashUtf8String,
17357 make_field_value, get_dispatch_vector, get_dispatch_table,
17358 append_gpp_mangled_type, mangle_static_field): Likewise.
17359 (strLengthUtf8): Hide unused definition.
17360 (hashUtf8String): Const-ify.
17361 (make_field_value): Un-ANSI-fy.
17362
17363 * constants.c: Move inclusion of jcf.h above java-tree.h.
17364 (set_constant_entry, find_class_or_string_constant,
17365 find_name_and_type_constant, get_tag_node,
17366 build_constant_data_ref): Add static prototype.
17367
17368 * decl.c (push_jvm_slot, builtin_function,
17369 lookup_name_current_level): Likewise.
17370 (builtin_function): Const-ify.
17371
17372 * except.c (expand_start_java_handler, expand_end_java_handler):
17373 Add static prototype.
17374
17375 * expr.c (flush_quick_stack, push_value, pop_value,
17376 java_stack_swap, java_stack_dup, build_java_athrow,
17377 build_java_jsr, build_java_ret, expand_java_multianewarray,
17378 expand_java_arraystore, expand_java_arrayload,
17379 expand_java_array_length, build_java_monitor, expand_java_pushc,
17380 expand_java_return, expand_java_NEW, expand_java_INSTANCEOF,
17381 expand_java_CHECKCAST, expand_iinc, expand_java_binop, note_label,
17382 expand_compare, expand_test, expand_cond, expand_java_goto,
17383 expand_java_call, expand_java_ret, pop_arguments, expand_invoke,
17384 expand_java_field_op, java_push_constant_from_pool): Likewise.
17385
17386 (decode_newarray_type, expand_iinc): Un-ANSI-fy.
17387 (build_java_arraynull_check): Mark parameters `node' and `type'
17388 with ATTRIBUTE_UNUSED.
17389 (note_label): Likewise for parameter `current_pc'.
17390 (expand_java_call, expand_java_ret): Hide unused definition.
17391
17392 * java-tree.h (make_class, build_constants_constructor,
17393 java_set_exception_lang_code, pop_labeled_block, emit_handlers,
17394 init_outgoing_cpool, register_class, emit_register_classes,
17395 java_layout_seen_class_methods): Prototype.
17396 (unicode_mangling_length): Const-ify.
17397 (append_gpp_mangled_name, append_gpp_mangled_classtype,
17398 emit_unicode_mangled_name, format_int, format_uint,
17399 jcf_trim_old_input, jcf_print_utf8, jcf_print_char,
17400 jcf_print_utf8_replace, open_class): Prototype.
17401
17402 * jcf-dump.c: Include "config.h", not <config.h>. Don't include
17403 <stdio.h>. Include tree.h/java-tree.h.
17404 (utf8_equal_string usage, process_class): Add static prototype.
17405 (open_class): Don't prototype this here.
17406 (utf8_equal_string): Match arguments to format specifiers.
17407 (HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH,
17408 TABLE_SWITCH, disassemble_method): Likewise.
17409
17410 * jcf-io.c: Include tree.h/java-tree.h.
17411 (open_class, find_classfile, jcf_print_utf8,
17412 jcf_print_utf8_replace): Const-ify.
17413
17414 * jcf-parse.c (parse_zip_file_entries, process_zip_dir,
17415 parse_class_file): Add static prototype.
17416 (find_in_current_zip): Match definition to existing static
17417 prototype.
17418
17419 * jcf-write.c: Include jcf.h before tree.h/java-tree.h.
17420 (alloc_chunk, append_chunk, append_chunk_copy, gen_jcf_label,
17421 finish_jcf_block, define_jcf_label, get_jcf_label_here,
17422 put_linenumber, localvar_alloc, localvar_free, get_access_flags,
17423 write_chunks, adjust_typed_op, generate_bytecode_conditional,
17424 generate_bytecode_return, perform_relocations, init_jcf_state,
17425 init_jcf_method, release_jcf_state, generate_classfile):
17426 Add static prototype.
17427 (emit_unop): Mark parameter `type' with ATTRIBUTE_UNUSED.
17428 (make_class_file_name): Const-ify.
17429
17430 * jcf.h (find_classfile): Const-ify.
17431
17432 * jv-scan.c (reset_report): Remove prototype.
17433
17434 * jvgenmain.c: Include jcf.h/tree.h/java-tree.h.
17435 (error): Rewrite to allow varargs.
17436
17437 * lang.c (lang_f_options): Const-ify.
17438
17439 * lex.c (java_parse_escape_sequence): Add static prototype.
17440 (java_allocate_new_line): Match definition to existing static
17441 prototype.
17442
17443 * mangle.c Include tree.h/java-tree.h.
17444 (unicode_mangling_length, emit_unicode_mangled_name,
17445 append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify.
17446
17447 * parse.h (jdep_code): Remove trailing comma in enumeration.
17448 (java_get_line_col): Move prototype outside of !JC1_LITE test.
17449 (reset_report): Add prototype.
17450
17451 * verify.c (push_pending_label, merge_types): Add static
17452 prototypes.
17453
17454 * zipfile.h (opendir_in_zip, open_in_zip): Prototype.
17455
174561999-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
17457
17458 * parse.y (find_applicable_accessible_methods_list): Extend the
17459 search to superinterfaces when relevant.
17460 (search_applicable_methods_list): New function.
17461
174621999-03-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
17463
17464 * class.c (unmangle_classname): Implemented stricter testing
17465 before setting the QUALIFIED_P flag on an identifier.
17466
174671999-03-16 Per Bothner <bothner@cygnus.com>
17468
17469 * parse.y (java_complete_lhs): Call force_evaluation_order
17470 after patch_newarray.
17471 (patch_binop): Don't call fold if there are side effects.
17472
174731999-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
17474
17475 * parse.y (java_stabilize_reference): Use save_expr instead of
17476 building a SAVE_EXPR node.
17477 (java_complete_lhs): Patch the resulting string of the `+='
17478 operator (if necessary) and complete the RHS after having built
17479 the cast.
17480
174811999-03-15 Per Bothner <bothner@cygnus.com>
17482
17483 * class.c (make_class): Don't set CLASS_P here (because
17484 this function is also called by build_java_array_type).
17485 (push_class): Set CLASS_P here instead.
17486 * parse.h (TYPE_CLASS_P): Check for TYPE_ARRAY_P is redundant.
17487
17488 * jcf-dump.c (print_access_flags): Take extra parameter to indicate
17489 context. If the context is class, perfer "super" over "synchronized".
17490 * jcf-write.c (generate_classfile): Don't add ACC_SUPER if interface.
17491
17492 * parse.y (create_class): Don't call parser_check_super here;
17493 it is not robust. Always wait until later.
17494
17495 * parse.y (method_header): For interfaces, set ACC_ABSTRACT (to
17496 match what JDK 1.2 does), but don't set ACC_PUBLIC.
17497
174981999-03-13 Per Bothner <bothner@cygnus.com>
17499
17500 * lex.c (java_read_char): UNGET invalid non-initial utf8 character.
17501 * lex.h (UNGETC): Change misleading macro.
17502
175031999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
17504
17505 * parse.y (java_stabilize_reference): Return NODE when patching a
17506 COMPOUND_EXPR.
17507 (java_complete_lhs): Put parenthesis around truth values.
17508
175091999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
17510
17511 * class.c (layout_class_method): Don't make rtl for interface
17512 methods.
17513 * parse.h (GET_TYPE_NAME): New macro.
17514 * parse.y (if_then_statement:): Fixed indentation.
17515 (if_then_else_statement:): Likewise.
17516 (for_statement:): Fixed spacing.
17517 (try_statement:): Fixed indentation.
17518 (create_interface): Don't force interfaces to be abstract.
17519 (method_header): Abstract methods are OK in interfaces.
17520 (declare_local_variables): Fixed typo in comment.
17521 (java_complete_expand_method): Fixed indentation.
17522 (resolve_qualified_expression_name): Use GET_TYPE_NAME to report
17523 non accessible fields.
17524 (java_stabilize_reference): New function.
17525 (java_complete_lhs): Fixed indentation. Use
17526 java_stabilize_reference in compound assignment. Insert the
17527 cast. If not processing `+' fix string constants before processing
17528 binop.
17529
175301999-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17531
17532 * constants.c (find_class_or_string_constant): Cast variable `j'
17533 to a `jword' when comparing against one.
17534
17535 * expr.c (java_lang_expand_expr): Remove unused variables
17536 `has_finally_p' and `op0'.
17537
17538 * gjavah.c (print_field_info): Cast a value to jint when comparing
17539 against one. Likewise for a jlong.
17540 (add_namelet): Likewise cast a `sizeof' to an int when comparing
17541 against a signed quantity.
17542
17543 * jcf-dump.c (print_signature_type): Remove unused variable `digit'.
17544 (print_signature): Don't needlessly dereference variable `str'
17545
17546 * jcf-reader.c (get_attribute): Mark variables `max_stack' and
17547 `max_locals' with ATTRIBUTE_UNUSED.
17548 (jcf_parse_class): Likewise for variable `index'.
17549
17550 * parse.h (reverse_jdep_list): Remove static prototype.
17551
17552 * parse.y (build_jump_to_finally): Remove prototype and definition.
17553 (reverse_jdep_list): Add static prototype.
17554
17555 * typeck.c (convert_ieee_real_to_integer): Remove unused variables
17556 `assignment' and `expr_decl'.
17557
17558 * verify.c (verify_jvm_instructions): Remove unused label `bad_ldc'.
17559
175601999-03-12 Andrew Haley <aph@cygnus.com>
17561
17562 * jcf-path.c (add_entry): alloca len+2 rather than len+1 bytes;
17563 we'll need a directory separator and a null character.
17564
175651999-03-10 Per Bothner <bothner@cygnus.com>
17566
17567 * jcf-write.c (generate_bytecode_insns): Handle __builtin_fmod, for %.
17568
17569Tue Mar 9 11:52:08 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
17570
17571 * parse.y (method_header): Don't set ACC_ABSTRACT flags on
17572 interfaces.
17573
175741999-03-05 Per Bothner <bothner@cygnus.com>
17575
17576 * lex.c (java_parse_end_comment): Take extra parameter (next char).
17577
17578 * class.c (build_utf8_ref): Fix possible name class/ambiguity.
17579
17580 * class.c (layout_class_method): A static method in a base class
17581 is never overridden, so treat it like it doesn't exist.
17582 However, do complain about private non-static method overriding
17583 public static method.
17584
17585 * parse.y: Don't set unused INITIALIZED_P flag.
17586 * java-tree.h (INITIALIZED_P): Removed no-longer needed flag.
17587
17588 * parse.y (find_expr_with_wfl): Optimize tail-calls.
17589 (build_array_from_name): Re-order &index[string] to &string[index].
17590
17591 * parse.y (java_complete_lhs): Don't call patch_assignment if rhs is
17592 error_mark (it might catch more errors, but it is more likely to lose).
17593
175941999-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17595
17596 * Makefile.in (jcf-parse.o): Depend on $(PARSE_H).
17597 (parse-scan.o): Depend on toplev.h.
17598
17599 * class.c (make_method_value): Add prototype. Make it static.
17600 Remove unused second argument, caller changed.
17601
17602 * expr.c (java_lang_expand_expr): Remove unused variable
17603 `return_label'.
17604
17605 * java-tree.h: Don't prototype find_in_current_zip.
17606 Add prototypes for verify_constant_pool, start_java_method,
17607 end_java_method, give_name_to_locals, expand_byte_code,
17608 open_in_zip, set_constant_value, find_constant1, find_constant2,
17609 find_utf8_constant, find_string_constant, find_class_constant,
17610 find_fieldref_index, find_methodref_index, write_constant_pool,
17611 count_constant_pool_bytes and encode_newarray_type.
17612
17613 * jcf-dump.c: Remove unused variable `LONG_temp'.
17614
17615 * jcf-parse.c: Include parse.h.
17616 (jcf_parse_source): Remove unused parameter, all callers changed.
17617 (jcf_figure_file_type): Add static prototype.
17618 (find_in_current_zip): Likewise. Also remove unused parameter,
17619 all callers changed.
17620 (read_class): Initialize variable `saved_pos'.
17621
17622 * jcf-reader.c (jcf_parse_preamble): Mark variables
17623 `minor_version' and `major_version' with ATTRIBUTE_UNUSED.
17624
17625 * lex.c (java_is_eol): Wrap prototype and definition in !JC1_LITE.
17626 (java_init_lex): Wrap variable `java_lang_imported' in !JC1_LITE.
17627 (java_parse_doc_section): Initialize variable `seen_star'.
17628 (java_lex): Wrap variable `number_beginning' in !JC1_LITE.
17629 (java_lex_error): Mark parameters `msg' and `forward' with
17630 ATTRIBUTE_UNUSED.
17631 (java_get_line_col): Mark parameters `filename' and `line' with
17632 ATTRIBUTE_UNUSED.
17633
17634 * parse-scan.y: Include toplev.h.
17635 (yyerror): Mark parameter `msg' with ATTRIBUTE_UNUSED.
17636
17637 * parse.h: use `struct JCF', not plain `JCF'.
17638 (java_parser_context_save_global, java_expand_classes
17639 java_parser_context_restore_global, java_parse): Add prototypes.
17640
17641 * typeck.c (convert_ieee_real_to_integer): Remove unused variable
17642 `node'.
17643
176441999-02-24 Per Bothner <bothner@deneb.cygnus.com>
17645
17646 * check-init.c (check_init): COPYN takes word count, not bit count.
17647
176481999-02-26 Per Bothner <bothner@cygnus.com>
17649
17650 * typeck.c (convert_ieee_real_to_integer): Use save_expr instead of
17651 explicit build_decl. (Avoids crash in reload when optimizing.)
17652
176531999-02-25 Per Bothner <bothner@cygnus.com>
17654
17655 * decl.c (complete_start_java_method): Handle synchronized method
17656 even when compiling from bytecode.
17657
176581999-02-26 Tom Tromey <tromey@cygnus.com>
17659
17660 * gjavah.c (add_class_decl): Only generate `#include' if outer
17661 class is not the name of the class we are processing. Correctly
17662 append `.h' in #include.
17663 (process_file): Clean up newlines around generated `#include's.
17664 (decode_signature_piece): Correctly handle inner classes.
17665 (struct include): New structure.
17666 (all_includes): New global.
17667 (print_include): New function.
17668 (add_class_decl): Use it.
17669 (process_file): Likewise.
17670 (add_class_decl): Generate include for java-array.h if array
17671 seen.
17672 (process_file): Don't generate java-array.h include.
17673
17674 * gjavah.c (add_namelet): Check for standard package names here.
17675 (add_class_decl): Don't check for standard package names here.
17676
176771999-02-25 Tom Tromey <tromey@cygnus.com>
17678
17679 * parse.y (read_import_dir): Use `|=', not `+=', to set `found'.
17680 When reading a zip file, only use strncmp if both strings are
17681 bigger than the buffer length. Initialize `k' when looping
17682 through zip file.
17683
176841999-02-24 Tom Tromey <tromey@cygnus.com>
17685
17686 * gjavah.c (struct namelet): New structure.
17687 (add_namelet): New function.
17688 (print_namelet): New function.
17689 (print_class_decls): Use add_namelet and print_namelet to generate
17690 namespaces and not classes.
17691 (method_printed): New global.
17692 (HANDLE_END_METHOD): Examine method_printed.
17693 (print_method_info): Set method_printed when required. Print
17694 error if function to be ignored is marked virtual. Handle $finit$
17695 method.
17696 (METHOD_IS_FINAL): New macro.
17697 (print_field_info): Use it.
17698 (HANDLE_METHOD): Clear method_printed.
17699 (method_pass): New global.
17700 (HANDLE_END_FIELD): Call add_class_decl on the first pass.
17701 (process_file): Do two passes over both fields and methods.
17702 (HANDLE_METHOD): Examine method_pass.
17703 (root): New global.
17704 (add_class_decl): New function.
17705 (print_class_decls): Don't scan over entire constant pool.
17706
177071999-02-23 Tom Tromey <tromey@cygnus.com>
17708
17709 * jvspec.c (lang_specific_driver): Recognize -fsyntax-only and
17710 disable linking in that case.
17711
177121999-02-20 Tom Tromey <tromey@cygnus.com>
17713
17714 * jcf.h (UTF8_GET): Mask first byte of 3-byte encoding with 0x0f,
17715 not 0x1f.
17716
177171999-02-21 Per Bothner <bothner@cygnus.com>
17718
17719 * decl.c (build_result_decl), java-tree.h: New method.
17720 (complete_start_java_method): Handle synchronized methods.
17721 Don't build DECL_RESULT here. (Ordering dependency problem.)
17722 (start_java_method): Call build_result_decl here instead ...
17723 * parse.y (java_complete_expand_method): ... and here.
17724 (expand_start_java_method): Don't call complete_start_java_method here.
17725 (java_complete_expand_method): Call it here instead.
17726 * parse.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Moved to ..
17727 * java-tree.h: ... here.
17728
17729 * expr.c (force_evaluation_order): Fix typo, don't handle ARRAY_REF.
17730 * parse.y (java_complete_lhs): Don't call force_evaluation_order
17731 for ARRAY_REF - it doesn't work when array bounds are checked.
17732 (patch_array_ref): Handle it here instead.
17733
17734 * jcf-write.c (generate_classfile): Emit "Exceptions" attribute.
17735
177361999-02-19 Per Bothner <bothner@cygnus.com>
17737
17738 Force left-to-right evaluation of binary operations etc.
17739 * expr.c (force_evaluation_order), java-tree.h: New function.
17740 * parse.y (java_complete_lhs): Pass binary operations, procedure
17741 calls, and ARRAY_REFs to force_evaluation_order.
17742 (various): Set TREE_SIDE_EFFECTS more carefully.
17743
17744 Tolerate random (non-UTF8) encoding in comments without complaining.
17745 * lex.c (java_read_char): Return 0xFFFE if bad UTF8 encoding.
17746 (java_is_eol): Handle '\r' followed by '\n' instead of vice versa.
17747
17748 * parse.y (resolve_qualified_expression_name): Handle error_mark.
17749 (java_complete_node case EXPR_WITH_FILE_LOCATION): Likewise.
17750
17751 * parse.y (java_complete_lhs): Ignore an empty statement in a
17752 COMPOUND_EXPR. Don't complain about empty statement after return.
17753
177541999-02-19 Per Bothner <bothner@cygnus.com>
17755
17756 * parse.y (obtain_incomplete_type): Don't wrap unknown types
17757 in TREE_LIST - just chain the POINTER_TYPEs together.
17758 (resolve_class): If type already resolved, return decl.
17759 After resolving, update TREE_TYPE(class_type), and name (if array).
17760 * parse.h (do_resolve_class), parse.y: Make non-static.
17761 * class.c (maybe_layout_super_class): Take this_class argument.
17762 Do do_resolve_class if necessary.
17763 (layout_class, layout_class_methods): Adjust calls appropriately.
17764 * parse.h (JDEP_TO_RESOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
17765 JDEP_RESOLVED_P): Redefined for new TREE_LIST-less convention.
17766 * typeck.c (build_java_array_type): Don't call layout_class.
17767
177681999-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
17769
17770 * parse.y (check_pkg_class_access): Allow private class access
17771 within the same package.
17772 (strip_out_static_field_access_decl): New function.
17773 (patch_unaryop): Call strip_out_static_field_access_decl on ++/--
17774 operator argument before testing its nature.
17775
177761999-02-03 Per Bothner <bothner@cygnus.com>
17777
17778 * java-tree.def (FINALLY_EXPR): Removed. (Now uses TRY_FINALLY_EXPR.)
17779 (TRY_EXPR): Simplify - it no longer has a finally clause.
17780 * check-init.c (check_init): Handle TRY_FINALLY_EXPR.
17781 Simpler handling of TRY_EXPR, which no longer has a finally clause.
17782 * expr.c (java_lang_expand_expr): Likewise.
17783 * java-tree.h (CATCH_EXPR_GET_EXPR): Removed - no longer needed.
17784 * parse.h (java_get_catch_block), parse.y: Removed - no longer needed.
17785 * parse.y (java_complete_lhs): Add support for TRY_FIANLLY_EXPR.
17786 (build_try_statement): Remove finally parameter and handling.
17787 (build_try_finally_statement): New function.
17788 (patch_try_statement): No longer need to support finally clause.
17789 (try_statement): Update grammar action rules.
17790 * jcf-write.c (generate_bytecode_insns): Handle TRY_FINALLY_EXPR.
17791 Simpler handling of TRY_EXPR, which no longer has a finally clause.
17792
177931998-11-26 Andrew Haley <aph@viagra.cygnus.co.uk>
17794
17795 * jcf-parse.c (get_constant): Add braces around computation of 'd'
17796 when REAL_ARITHMETIC is not defined. [Oct 26 fix got overwritten -PB]
17797
177981999-02-17 Andrew Haley <aph@cygnus.com>
17799
17800 * class.c (build_utf8_ref): Back out broken patch which was
17801 intended to to output signatures using '.' as a separator.
17802
17803 * class.c (make_class_data): Output signatures using '.' as a
17804 separator, rather than '/'.
17805 (mangled_classname): Likewise.
17806 (make_field_value): Likewise.
17807 (make_method_value): Likewise.
17808 * constants.c (alloc_class_constant): Likewise.
17809 * expr.c (build_invokeinterface): Likewise.
17810
178111999-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
17812
17813 * parse.y (valid_builtin_assignconv_identity_widening_p): Got rid
17814 of an ancient workaround.
17815
178161999-02-10 Jeffrey A Law (law@cygnus.com)
17817
17818 * jvspec.c (xmalloc): Kill the prototype. It does not belong
17819 here anymore.
17820
178211999-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
17822
17823 * lex.c (yylex): Encode \0 as UTF8.
17824
178251999-02-10 Tom Tromey <tromey@cygnus.com>
17826
17827 * jvspec.c (lang_specific_driver): Use libgcj, not libjava.
17828 * Makefile.in (jcf-path.o): Define LIBGCJ_ZIP_FILE.
17829 (libgcj_zip): Renamed.
17830 * jcf-path.c (add_entry): Use LIBGCJ_ZIP_FILE, not
17831 LIBJAVA_ZIP_FILE.
17832 (jcf_path_init): Use LIBGCJ_ZIP_FILE.
17833
17834 * jvspec.c (THREAD_NAME): Renamed -lqthreads to -lgcjcoop.
17835 (GC_NAME): Renamed -lgc to -lgcjgc.
17836
178371999-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
17838
17839 * lex.c (java_lang_cloneable): Initialize.
17840 * parse.y (java_lang_cloneable): New static variable.
17841 (qualify_ambiguous_name): Take CONVERT_EXPR into account when
17842 doing one more qualification round.
17843 (valid_ref_assignconv_cast_p): Reject null source or
17844 destination. Allow an array to be cast into java.lang.Cloneable.
17845 (patch_cast): Swapped two first arguments to first call to
17846 valid_ref_assignconv_cast_p.
17847
178481999-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
17849
17850 * parse.h: DECL_P renamed JDECL_P.
17851 * parse.y: DECL_P replaced by JDECL_P.
17852 (build_array_from_name): Always use pointer's type.
17853 (patch_bc_statement): Extra code to search continue target in a
17854 for loop. Fixed comments. Continue target is current loop when
17855 unlabeled.
17856
178571999-02-05 Andrew Haley <aph@cygnus.com>
17858
17859 * class.c (make_class_data): The superclass of an interface should
17860 be null, not class Object.
17861
17862 * lex.c (java_lex): Sign extend hex literals.
17863
178641999-02-04 Andrew Haley <aph@cygnus.com>
17865
17866 * class.c (build_utf8_ref): Output signatures using '.' as a
17867 separator, rather than '/'.
17868 (make_class_data): Likewise.
17869
178701999-02-03 Marc Espie <Marc.Espie@liafa.jussieu.fr>
17871
17872 * Make-lang.in ($(GCJ)(exeext)): Remove choose-temp.o, pexecute.o and
17873 mkstemp.o. Get them from libiberty now.
17874
178751999-02-02 Jeffrey A Law (law@cygnus.com)
17876
17877 * jcf-io.c: Do not include sys/stat.h or sys/wait.h
17878
178791999-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17880
17881 * jvspec.c (xmalloc): Fix the prototype to match the one obtained
17882 from libiberty.h
17883
178841999-02-02 Per Bothner <bothner@cygnus.com>
17885
17886 Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'.
17887 * jcf-write.c (generate_bytecode_return): New function.
17888 (generate_bytecode_insns): Use it, for RETURN_EXPR.
17889
17890 * jcf-write.c (generate_bytecode_insns): For REAL_CST that is 0 or 1,
17891 generate special [fd]const_[01] instructions.
17892
17893 * jcf-parse.c (yyparse): Don't emit_register_classes if -fsyntax-only.
17894
17895 * verify.c (verify_jvm_instructions): Do INVALIDATE_PC after
17896 handling OPCODE_lookupswitch or OPCODE_tableswitch.
17897
178981999-02-01 Per Bothner <bothner@cygnus.com>
17899
17900 * parse.y (patch_method_invocation): Handle calling static methods,
17901 even in the form EXPR.METHOD(ARGS), not just TYPE.METHOD(ARGS).
17902
17903 * parse.y (java_complete_lhs): Don't complain about unreachable
17904 exit condition in a do-while statement.
17905
179061999-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
17907
17908 * lex.c (java_read_char): Fixed utf8 decoding.
17909 (java_unicode_2_utf8): Fixed utf8 encoding in the 0x800-0xffff
17910 range.
17911 * parse.y (valid_builtin_assignconv_identity_widening_p): Fixed
17912 comments. Local variable `all_primitive' is gone. Broadened
17913 acceptance of `0' to floating point targets. `long' can now be
17914 widened to `double' or `float'.
17915 (valid_method_invocation_conversion_p): Added leading
17916 comment. Fixed tabulation.
17917 (build_string_concatenation): Optimize out left or right empty
17918 string constants.
17919
179201999-01-28 Per Bothner <bothner@cygnus.com>
17921
17922 * jcf-write.c (localvar_alloc): Only emit entry for
17923 LocalVariableTable if debug_info_level > DINFO_LEVEL_TERSE.
17924 (generate_bytecode_insns): Only call put_linenumber if
17925 debug_info_level > DINFO_LEVEL_NONE.
17926 * jvspec.c (lang_specific_driver): If no -O* or -g* option
17927 is specified, add -g1 (for compatibility wih javac).
17928
179291999-01-28 Hans-Peter Nilsson <hp@axis.se>
17930
17931 * java/Makefile.in: Add missing dependencies for jcf-dump.o,
17932 gjavah.o, check-init.o, jv-scan.o
17933
179341999-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17935
17936 * Makefile.in (gjavah.o): Depend on $(CONFIG_H) and system.h.
17937
17938 * gjavah.c: Include config.h and system.h.
17939
17940 * javaop.h (inline): Don't define, its handled by system.h.
17941 (WORD_TO_FLOAT, WORDS_TO_LONG, WORDS_TO_DOUBLE): Change these
17942 from `inline' to `static inline'.
17943
17944 * jcf.h (inline): Don't define, its handled by system.h.
17945
17946 * lex.c (inline): Likewise.
17947
179481999-01-31 Zack Weinberg <zack@rabi.columbia.edu>
17949
17950 * lang-specs.h: Map -Qn to -fno-ident.
17951
179521999-01-29 Richard Henderson <rth@cygnus.com>
17953
17954 * check-init.c (check_init): Fix CLEANUP_POINT_EXPR typo.
17955
179561999-01-29 Tom Tromey <tromey@cygnus.com>
17957
17958 * parse.h (BUILD_APPEND): If ARG is a non-String object reference,
17959 then cast it to Object before calling `append' method.
17960
179611999-01-28 Per Bothner <bothner@cygnus.com>
17962
17963 * check-init.c (check_bool2_init, check_bool_init, check_init):
17964 Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
17965 * jcf-write.c (generate_bytecode_insns): Likewise.
17966
179671999-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
17968
17969 * jcf-parse.c (jcf_parse): Don't parse the same class file twice.
17970 * parse.y (patch_cast): Allow a boolean to be cast into a
17971 boolean.
17972
179731999-01-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
17974
17975 * parse.y: (class_declaration:): Fixed indentation.
17976 (class_member_declaration:): Extra `;' after field declaration now
17977 accepted.
17978 (interface_declaration:): Removed debug messages in error reports.
17979 (patch_binop): Nodes created and returned inherit the orignal
17980 node's COMPOUND_ASSIGN_P flag value.
17981 (patch_cast): Fix cast from char to floating point.
17982
179831999-01-25 Andrew Haley <aph@cygnus.com>
17984
17985 * except.c, java-except.h (expand_resume_after_catch): new
17986 function.
17987 * expr.c (java_lang_expand_expr): call expand_resume_after_catch
17988 to branch back to main flow of control after a catch block.
17989
179901999-01-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17991
17992 * Makefile.in (parse.o): Depend on $(CONFIG_H) and
17993 $(srcdir)/../system.h.
17994 (class.o): Depend on $(PARSE_H) and $(srcdir)/../output.h.
17995 (jcf-parse.o): Depend on $(srcdir)/../toplev.h.
17996 (jcf-write.o): Likewise.
17997 (jv-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17998 (mangle.o): Depend on $(srcdir)/../toplev.h.
17999 (parse-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
18000 (zextract.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
18001
18002 * class.c: Include output.h and parse.h.
18003 (mangled_classname): Add the `const' keyword to a char*.
18004 (find_named_method): Hide unused function definition.
18005 (build_utf8_ref): Change type of variable `c' to unsigned char.
18006 Use ISALPHA/ISDIGIT instead of isalpha/isdigit.
18007 (build_class_ref): Add the `const' keyword to a char*.
18008 (layout_class_method): Remove unused variable `buf'.
18009
18010 * decl.c (find_local_variable): Remove unused variable `rtl'.
18011 (pushdecl): Likewise for variables `different_binding_level' and
18012 `oldglobal'.
18013 (pushlevel): Mark parameter `unused' with ATTRIBUTE_UNUSED.
18014 (maybe_build_cleanup): Likewise for parameter `decl'.
18015
18016 * except.c (expand_start_java_handler): Mark parameter `range'
18017 with ATTRIBUTE_UNUSED.
18018
18019 * expr.c: Include except.h.
18020 (pop_type): Remove unused variable `i'.
18021 (pop_value): Likewise for variables `n_words' and `i'.
18022 (expand_java_arrayload): Likewise for variable `convert'.
18023 (java_lang_expand_expr): Likewise for variables `op0', `type',
18024 `mode', `unsignedp', `node' and `elements'.
18025 (expand_byte_code): Likewise for variables `prev_eh_ranges' and
18026 `eh_ranges'.
18027 (process_jvm_instruction): Add a `const' qualifier to a char*.
18028
18029 * gjavah.c (output_directory): Add the `const' keyword to a char*.
18030 (temp_directory): Likewise.
18031 (print_c_decl): Likewise.
18032 (print_method_info): Likewise.
18033 (decode_signature_piece): Likewise.
18034 (print_mangled_classname): Likewise.
18035
18036 * java-except.h: Provide prototypes for maybe_start_try,
18037 maybe_end_try and add_handler.
18038
18039 * java-tree.h (mangled_classname): Add the `const' keyword to a char*.
18040 (parse_error_context): Likewise. Also add ATTRIBUTE_PRINTF_2.
18041 (pushdecl_top_level, alloc_class_constant, unicode_mangling_length,
18042 init_expr_processing, push_super_field, init_class_processing,
18043 can_widen_reference_to, class_depth, verify_jvm_instructions,
18044 maybe_pushlevels, maybe_poplevels, process_jvm_instruction,
18045 set_local_type, merge_type_state, push_type, load_type_state,
18046 add_interface, find_in_current_zip, append_gpp_mangled_classtype,
18047 emit_unicode_mangled_name): Add prototypes.
18048
18049 * jcf-dump.c (print_constant): Add the `const' keyword to a char*.
18050 (print_signature_type): Use ISDIGIT, not isdigit.
18051 (print_signature): Remove unused variable `j'.
18052
18053 * jcf-io.c (jcf_filbuf_from_stdio): Cast the result of `fread' to
18054 int when comparing against one.
18055
18056 * jcf-parse.c: Include toplev.h.
18057
18058 * jcf-write.c: Likewise. Don't include <string.h> or <sys/stat.h>.
18059 (localvar_free): Remove unused variable `i'.
18060 (generate_bytecode_conditional): Likewise for variable `kind'.
18061
18062 * jv-scan.c: Include config.h and system.h. Remove redundant
18063 OS header and gansidecl.h includes.
18064 (warning): Add the `const' keyword to a char*. Also add
18065 ATTRIBUTE_PRINTF_1 to the prototype. Check ANSI_PROTOTYPES, not
18066 __STDC__, when determining whether to use ANSI-isms.
18067 (fatal): Likewise. Also add ATTRIBUTE_UNUSED.
18068 (xmalloc): Don't redundantly prototype here.
18069 (main): Remove unused parameter `envp'. Also fix the arguments
18070 passed to function `fatal' to match the format specifier.
18071
18072 * lang.c (java_tree_code_name): Add the `const' keyword to a char*.
18073
18074 * mangle.c: Include toplev.h.
18075 (emit_unicode_mangled_name): Declare parameter `len'.
18076
18077 * parse.y (parse_warning_context): Add the `const' keyword to a
18078 char*. Also add ATTRIBUTE_PRINTF_2 to the prototype. Check
18079 `ANSI_PROTOTYPES' not `__STDC__' for whether to use ANSI-isms.
18080 (issue_warning_error_from_context): Add the `const' keyword to
18081 a char*.
18082 (parse_error_context): Likewise. Also check `ANSI_PROTOTYPES'
18083 not `__STDC__' for whether to use ANSI-isms.
18084
18085 * typeck.c (incomplete_type_error): Mark parameters `value' and
18086 `type' with ATTRIBUTE_UNUSED.
18087 (parse_signature_type): Use ISDIGIT, not isdigit.
18088
18089 * verify.c (check_pending_block): Add the `const' keyword to a char*.
18090 (verify_jvm_instructions): Likewise. Remove unused variables
18091 `field_name' and `default_val'.
18092
18093 * zextract.c: Include config.h and system.h. Remove redundant
18094 OS header includes.
18095
18096 * zipfile.h: Prototype `read_zip_archive'.
18097
180981999-01-21 Andrew Haley <aph@cygnus.com>
18099
18100 * typeck.c (convert): Allow conversions to void type: some
18101 optimizations in gcc do this.
18102
181031999-01-21 Andrew Haley <aph@cygnus.com>
18104
18105 * typeck.c (convert_ieee_real_to_integer): New function.
18106 (convert): When not using fast-math and using hardware fp, convert
18107 an IEEE NaN to zero.
18108
181091999-01-18 Andrew Haley <aph@cygnus.com>
18110
18111 * parse.y (patch_binop): Do a type conversion from signed to
18112 unsigned and then back to signed when a ">>>" is found.
18113
181141999-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
18115
18116 * java-tree.h: (check_for_initialization): Added prototype.
18117 * lex.c (java_parse_doc_section): `\n' breaks the `*/' string.
18118 * parse.y (do_resolve_class): Removed unused locals.
18119 (read_import_dir): Likewise.
18120 (resolve_qualified_expression_name): Array creation
18121 expressions are valid primary expressions.
18122 (qualify_ambiguous_name): Likewise.
18123 (patch_synchronized_statement): Removed unused local.
18124
181251999-01-17 Jeffrey A Law (law@cygnus.com)
18126
18127 * Makefile.in (zextract.o): Add dependencies.
18128
18129 * Makefile.in: Do not put ^Ls at the start of a line.
18130
181311999-01-15 Per Bothner <bothner@cygnus.com>
18132
18133 * expr.c (process_jvm_instruction): Coerce to correct Throwable
18134 sub-type the result of the call that gets the exception value.
18135
18136 * parse.y (java_complete_expand_methods): If flags_syntax_only,
18137 don't call finish_class.
18138
18139 * parse.y (java_check_regular_methods): If METHOD_PRIVATE,
18140 clear found before continuing.
18141
18142 * verify.c (verify_jvm_instructions): On an array load, allow
18143 and handle top of stack to be TYPE_NULL.
18144
18145 * gjavah.c (generate_access): Translate Java package private or
18146 protected access to C++ public, but with a comment.
18147
181481999-01-13 Andrew Haley <aph@cygnus.com>
18149
18150 * expr.c (generate_name): Name prefix changed to avoid clashes
18151 with assembler temp labels.
18152
18153 * parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on
18154 MODIFY_EXPR. Without this, code for the assignment may not be
18155 generated at all and the synchronized statement will read an
18156 uninitialized variable.
18157
181581999-01-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
18159
18160 * class.c (maybe_layout_super_class): Fixed returned value.
18161 * lex.c: Added 1999 to the copyright.
18162 (java_init_lex): Initialize java_lang_imported.
18163 * lex.h: Added 1999 to the copyright.
18164 * parse.h: Added 1999 to the copyright.
18165 (REGISTER_IMPORT): Fixed typo in trailing macro.
18166 (CURRENT_OSB): New macro.
18167 (struct parser_ctxt): New fields osb_depth, osb_limit.
18168 * parse.y (java_lang_id): New global variable.
18169 (type_import_on_demand_declaration): Don't import java.lang.* twice.
18170 (array_creation_expression:): Use CURRENT_OSB.
18171 (dims:): Uses a stack to keep track of array dimensions.
18172 (cast_expression:): Use CURRENT_OSB.
18173 (find_expr_with_wfl): Return NULL if node found doesn't meet the
18174 conditions.
18175 (register_fields): Fixed typos in comment.
18176 (check_method_redefinition): Fixed comment indentation.
18177 (java_check_regular_methods): Set saved found wfl to NULL after
18178 having reinstalled it in the previously found DECL_NAME.
18179
181801999-01-10 Richard Henderson <rth@cygnus.com>
18181
18182 * gjavah.c (java_float_finite): Use a union to do type punning.
18183 (java_double_finite): Likewise.
18184
181851999-01-09 Per Bothner <bothner@cygnus.com>
18186
18187 * parse.y (build_new_array_init): Don't set EXPR_WFL_LINECOL
18188 on CONSTRUCTOR (since that trashes TREE_CST_RTL).
18189 (patch_new_array_init): Clear TREE_CONSTANT also if INDIRECT_REF.
18190 (register_fields): Set TREE_STATIC on NEW_ARRAY_INIT, not on
18191 CONSTRUCTOR (which causes expand_expr to call output_constant_def).
18192 * expr.c (java_lang_expand_expr): Check TREE_STATIC of NEW_ARRAY_INIT.
18193
181941999-01-08 Per Bothner <bothner@cygnus.com>
18195
18196 * check-init.c (check_init): If compiling to native, we don't
18197 see THROW_EXPR. Instead, look for a call to throw_node (_Jv_Throw).
18198
181991999-01-08 Tom Tromey <tromey@cygnus.com>
18200
18201 * parse-scan.y (variable_declarator_id): Set or increment
18202 bracket_count.
18203 (bracket_count): New global.
18204 (formal_parameter): Handle case where bracket pairs trail variable
18205 declarator id.
18206
182071999-01-07 Andrew Haley <aph@viagra.cygnus.co.uk>
18208
18209 * jcf-parse.c (yyparse): variable len changed from a char to an
18210 int to prevent overflow.
18211
182121999-01-06 Per Bothner <bothner@cygnus.com>
18213
18214 * java-tree.h: Declare read_class.
18215 * jcf-parse.c (read_class): New function.
18216 (load_class): Now just call read_class.
18217
18218 * java-tree.h (java_parse_abort_on_error): Only return if new errors.
18219 * jcf-parse.c (parse_source_file): Declare save_error_count,
18220 which is needed by java_parse_abort_on_error macro,
18221 * parse.y (java_layout_classes, java_expand_classes): Likewise.
18222
18223 * parse.y (register_fields): Set TREE_STATIC flag of NEW_ARRAY_INIT
18224 constructor, if initializing a static field.
18225 (patch_new_array_init): Set TREE_CONSTANT if it is.
18226 * expr.c (java_lang_expand_expr): For a static array constructor
18227 of primitive elements, allocate the array itself statically.
18228 Disabled until we can set the vtable field statically.
18229
18230 * check-init.c: New file. Checks for definite assignment.
18231 * Makefile.in (JAVA_OBJS): Add check-init.o.
18232 * parse.y (java_complete_expand_method): Call check_for_initialization.
18233 * parse.h (BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY): Moved to java-tree.h.
18234
182351999-01-06 Graham <grahams@rcp.co.uk>
18236
18237 * parse.y : include system.h instead of including
18238 standard headers directly with the exception of <dirent.h>.
18239
182401999-01-06 Per Bothner <bothner@cygnus.com>
18241
18242 * lex.h: Moved static function declarations to lex.c,
18243 to shut up some -Wall warnings.
18244 * lex.c: Static function declarations moved here.
18245 * jcf-dump.c: Small fixes to shut up -Wall warnings.
18246
182471999-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18248
18249 * Make-lang.in ($(GCJ).o): Depend on prefix.h.
18250
182511998-12-22 Per Bothner <bothner@cygnus.com>
18252
18253 * expr.c (process_jvm_instruction): Do load_type_state after JSR.
18254 * verify.c (verify_jvm_instructions): Fix off-by-one error.
18255
18256 * jcf-write.c (CHECK_PUT): Add (void) cast to avoid -Wall warnings.
18257 (localvar_alloc): Change return type to void,
18258 (emit_unop): Remove unused variable size.
18259
18260 * jcf-write.c (struct jcf_block): Add new union.
18261 (PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC): New macros.
18262 (call_cleanups): New functions.
18263 (struct jcf_partial): New fields num_finalizers and return_value_decl.
18264 (generate_bytecode_insns): Support CLEANUP_POINT_EXPR and
18265 WITH_CLEANUP_EXPR. Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
18266 * lang.c (lang_init): Call using_eh_for_cleanups.
18267 * parse.y (java_complete_lhs): For SYNCHRONIZED_EXPR, defer
18268 completing operands to patch_synchronized_statement.
18269 Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
18270 (patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
18271 WITH_CLEANUP_EXPR instead of TRY_EXPR.
18272
182731998-12-20 John F. Carr <jfc@mit.edu>
18274
18275 * Make-lang.in: Comment out control-Ls; they upset some makes.
18276
182771998-12-18 Tom Tromey <tromey@cygnus.com>
18278
18279 * parse.y (check_class_interface_creation): Use DIR_SEPARATOR
18280 consistently.
18281
182821998-12-17 Tom Tromey <tromey@cygnus.com>
18283
18284 * parse.y (DIR_SEPARATOR): New define.
18285 (check_class_interface_creation): Use it.
18286
18287 * parse-scan.y (report_main_declaration): Recognize
18288 `java.lang.String' in argument to main.
18289
182901998-12-16 Per Bothner <bothner@cygnus.com>
18291
18292 * parse.y (create_interface): Remove bogus test.
18293
182941998-12-16 Per Bothner <bothner@cygnus.com>
18295
18296 * jcf-parse.c (get_constant): Set TREE_TYPE for string constants.
18297 (HANDLE_CONSTANTVALUE): If flag_emit_class_files, call get_constant.
18298
182991998-12-16 Tom Tromey <tromey@cygnus.com>
18300
18301 * parse-scan.y (qualified_name): Use correct sprintf format.
18302
183031998-12-15 Tom Tromey <tromey@cygnus.com>
18304
18305 * gjavah.c (print_field_info): Changed how most negative number is
18306 printed.
18307
183081998-12-14 Per Bothner <bothner@cygnus.com>
18309
18310 * parse.y (fold_constant_for_init): New function.
18311 (resolve_expression_name): Don't replace static final
18312 constant-initialized fields by its value.
18313 (java_complete_lhs): New. Same as java_complete_tree, except does
18314 not replace static final constant-initialized fields by their values.
18315 (register_fields): If there is an initializer, set DECL_INITIAL and
18316 MODIFY_EXPR_FROM_INITIALIZATION_P.
18317 (java_complete_tree): For MODIFY_EXPR, use java_complete_lhs for lhs.
18318 Only call patch_initialized_static_field if
18319 MODIFY_EXPR_FROM_INITIALIZATION_P.
18320 (patch_initialized_static_field): If not valid constant, clear
18321 DECL_INITIAL.
18322
18323 * parse.y (lookup_field_wrapper): Fix thinko.
18324
18325 * parse.y (java_complete_tree): In EXPR_WITH_FILE_LOCATION,
18326 set and restore global lineno.
18327
183281998-12-14 Tom Tromey <tromey@cygnus.com>
18329
18330 * gjavah.c (print_field_info): If value to print is the smallest
18331 value of its size, then print as hex to avoid later warnings from
18332 C++ compiler.
18333
183341998-12-14 Tom Tromey <tromey@cygnus.com>
18335
18336 * gjavah.c (decompile_method): Decompile `return null'.
18337 (process_file): Generate `#pragma interface'.
18338 (method_declared): New global.
18339 (print_method_info): Set it.
18340 (HANDLE_CODE_ATTRIBUTE): Only print it method_declared set.
18341 (print_method_info): Handle abstract methods.
18342
183431998-12-13 Per Bothner <bothner@cygnus.com>
18344
18345 * parse.y (patch_method_invocation): If class_decl is null
18346 (e.g. an array type), use original type.
18347
18348 * parse.y (check_thrown_exceptions): Temporary hack to suppress
18349 errors about uncaught exception from clone (of array, specifically).
18350
183511998-12-13 Tom Tromey <tromey@cygnus.com>
18352
18353 * gjavah.c (decompile_method): Handle all types of `return'
18354 opcode. Decompile `return this' and `return'.
18355 (method_access): New global.
18356 (print_method_info): Set it.
18357 (decompile_method): Don't decompile a synchronized method.
18358
183591998-12-13 Tom Tromey <tromey@cygnus.com>
18360
18361 * jcf-reader.c (jcf_parse_one_method): Recognize
18362 HANDLE_END_METHOD.
18363 * gjavah.c (HANDLE_END_METHOD): New macro.
18364 (HANDLE_CODE_ATTRIBUTE): New macro.
18365 (decompile_method): New function.
18366 (print_method_info): Don't print `;\n' at end of function decl.
18367 Include java-opcodes.h.
18368 (decompiled): New global.
18369
183701998-12-12 Per Bothner <bothner@cygnus.com>
18371
18372 * class.c (build_class_ref): Handle PRIMTYPE.class if
18373 flag_emit_class_files.
18374 * expr.c (expand_java_field_op): Don't optimize java.lang.XXX.TYPE
18375 if flag_emit_class_files.
18376 * parse.y (java_complete_tree): Pre-liminary support for
18377 COMPONENT_REF - only to handle PRIMCLASS.TYPE.
18378
18379 * parse.y (patch_synchronized_statement): Don't call monitorexit
18380 unless block CAN_COMPLETE_NORMALLY. Propagate that flag properly.
18381
18382 * java-tree.h (DECL_LOCAL_STATIC_VALUE): Removed - no longer used.
18383
18384 * zipfile.h (opendir_in_zip): New declaration.
18385 * jcf-io.c (saw_java_source): Moved to jcf-parse.c.
18386 (opendir_in_zip): New function, using code from open_in_zip.
18387 (open_in_zip): Call opendir_in_zip.
18388 (find_class): Remove no-longer-used do_class_file parameter,
18389 but add source_ok parameter. Change logic so if we find a .java file,
18390 we don't look for .class in later classpath emtries.
18391 * jcf-parse.c (load_class): Pass saw_java_source to find_class.
18392 (jcf_figure_file_type): Only call open_in_zip if correct magic number.
18393 * gjavah.c: Update call to find_class.
18394 * jcf-dump.c: Likewise.
18395
18396 * jcf-write.c (put_linenumber): Handle duplicate line numbers.
18397 (generate_bytecode_insns): For EXPR_WITH_FILE_LOCATION, do
18398 nothing if body is empty_stmt_node.
18399 Various little fixes so SP gets correctly adjusted.
18400 For NEW_ARRAY_INIT, handle IGNORE_TARGET.
18401 For CALL_EXPR, test if static first.
18402 (generate_classfile): Ignore fields that are DECL_ARTIFICIAL,
18403 such as the ones we create for Object and Class.
18404 Set and restore current_function_decl.
18405 * parse.y: Check/set IS_AN_IMPORT_ON_DEMAND_P in read_import_dir.
18406 (note_possible_classname): New function.
18407 (read_import_entry): Removed. Merged with read_import_dir.
18408 (read_import_dir): Don't call find_class - that only gives us
18409 the first classpath entry having the needed package.
18410 Use the struct buffer data structure from buffer.h.
18411 (read_import_dir, find_in_imports_on_demand): The remembered
18412 class names now use '.' (not '/') as package separator.
18413
18414 * parse.y (java_complete_expand_methods): Call write_classfile
18415 here, and not in java_expand_classes (which only gets first class).
18416
184171998-12-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
18418
18419 * parse.y (<type_declaration>): Do maybe_generate_clinit last.
18420 (register_fields): If a static fields has an initializer, just
18421 chain it on ctxp->static_initialized, and handle later.
18422 (java_complete_expand_methods): Force <clinit> first.
18423 (resolve_expression_name, resolve_field_access): Just get DECL_INITIAL
18424 - it's already been completed.
18425 (patch_initialized_static_field): New function.
18426 (java_complete_field): Call it.
18427
184281998-12-12 Per Bothner <bothner@cygnus.com>
18429
18430 * expr.c (encode_newarray_type, build_new_array): New functions.
18431 * java-tree.h: Declare build_new_array.
18432 * jcf-write.c (patch_newarray): Use build_new_array.
18433
18434 * expr.c (java_lang_expand_exp): Support NEW_ARRAY_INIT.
18435 * jcf-write.c (generate_bytecode_insns): Support NEW_ARRAY_INIT.
18436
18437 * parse.y (patch_new_array_init): Re-organize.
18438 Now is passed the actual array (pointer) type of the value.
18439 Set the type of the CONSTRUCTOR to be an ARRAY_TYPE.
18440 (patch_array_constructor): Removed - merged into patch_new_array_init.
18441 (java_complete_tree): Update patch_new_array_init.
18442
18443 * jcf-write.c (find_constant_index): New function.
18444 (generate_bytecode_insns): Use find_constant_index.
18445 (generate_classfile): Use find_constant_index for ConstantValue.
18446
184471998-12-11 Tom Tromey <tromey@cygnus.com>
18448
18449 * expr.c (invoke_build_dtable): Renamed dtable -> vtable.
18450 * decl.c (init_decl_processing): Renamed dtable -> vtable.
18451 * class.c (make_class_data): Renamed dtable -> vtable, and
18452 dtable_method_count -> vtable_method_count.
18453
184541998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
18455
18456 * decl.c (long_zero_node, float_zero_node, double_zero_node): New
18457 global variables, initialized.
18458 * java-tree.h (long_zero_node, float_zero_node, double_zero_node):
18459 Declared new global variables.
18460 * lex.c (java_lex): Return long_zero_node, float_zero_node,
18461 double_zero_node, integer_zero_node upon direct matching.
18462 * parse.y (purify_type_name): Added function prototype.
18463 (duplicate_declaration_error_p): Consider new_type as potentially
18464 being a incomplete type. Use purify_type_name on type string.
18465 (method_header): saved_type: unused variable removed. Don't figure
18466 return type if method name is invalid.
18467 (java_complete_tree): Set CAN_COMPLETE_NORMALLY after `node' was
18468 processed by patch_unaryop.
18469 (patch_unaryop): Fixed typo in comment. Re-convert pre/post
18470 increment/decrement node into its original type after binary
18471 numeric promotion on its operands.
18472
184731998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
18474
18475 * parse.y (array_initializer:): Array init operand is NULL_TREE
18476 instead of a TREE_LIST of NULL_TREEs when parsing `{}'. `{,}' is
18477 now an error. Fixed indentation problems.
18478 (patch_string): Handle error_mark_node as an argument.
18479 (patch_new_array_init): Fixed indentation problems.
18480 (array_constructor_check_entry): Removed check on null wfl_value.
18481 Return an error if wfl_value's walk returns an error.
18482
184831998-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
18484
18485 * java-tree.def (NEW_ARRAY_INIT): New Java tree code.
18486 * lex.c (java_lex): Remember column position before advancing one
18487 token. Retain location information on OCB_TK.
18488 * lex.h (typedef struct java_lc): Added new field.
18489 * parse.h (GET_SKIP_TYPE): New macro.
18490 (QUAL_DECL_TYPE): Redefined using GET_SKIP_TYPE.
18491 * parse.y (build_new_array_init, patch_new_array_init,
18492 patch_array_constructor, maybe_build_array_element_wfl,
18493 array_constructor_check_entry): New function prototypes.
18494 (switch_block:): Tagged <node>.
18495 (OCB_TK): Tagged <operator>.
18496 (array_initializer:): Installed actions.
18497 (variable_initializer): Build location information on element if
18498 necessary.
18499 (switch_statement:): Fixed indentation typo.
18500 (switch_block:): Redefined default action.
18501 (java_complete_tree): Handle NEW_ARRAY_INIT in MODIFY_EXPR:.
18502 (patch_assignment): Removed duplicate code.
18503 (maybe_build_array_element_wfl, build_new_array_init,
18504 patch_new_array_init, patch_array_constructor,
18505 array_constructor_check_entry): New functions.
18506
185071998-12-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
18508
18509 * parse.y (array_initializer): Tagged <node>.
18510 (variable_initializer:): Use default rule.
18511 (array_initializer:): Defined actions.
18512 (variable_initializers:): Likewise.
18513 (resolve_qualified_expression_name): Use DECL_CONTEXT to build
18514 non-static field accesses.
18515 (patch_invoke): Fixed indentation typo.
18516 (java_complete_tree): Likewise.
18517 (build_labeled_block): Changed leading comment. Generate an error
18518 in case of duplicate loop labels.
18519 (patch_conditional_expr): Patch results of string concatenation
18520 operations.
18521
185221998-12-06 Per Bothner <bothner@cygnus.com>
18523
18524 * constants.c (find_methodref_index): When the class is an interface,
18525 generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
18526
18527 * decl.c (finit_identifier_node): Use "$finit$", rather than
18528 "<finit>" (which Sun's verifier rejects).
18529 * parse.y (maybe_generate_finit): Leave out meaningless final flag.
18530 (generate_field_initialization_code): Removed.
18531 (fix_constructors) Don't add call to $finit$ here (wrong order).
18532 (patch_method_invocation): Add $finit$ call here.
18533
18534 * java-tree.h (CALL_USING_SUPER): New macro.
18535 * parse.y (patch_invoke): Remove im local variable.
18536 (patch_method_invocation, patch_invoke): Don't pass super parameter.
18537 (patch_invoke): Use CALL_USING_SUPER instead of from_super parameter.
18538 (resolve_qualified_expression_name): Maybe set CALL_USING_SUPER.
18539
18540 * jcf-write.c (get_access_flags): Fix typo ACC_PUBLIC -> ACC_FINAL.
18541
18542 * parse.y (java_complete_tree): Don't complain about unreachable
18543 statement if it is empty_stmt_node.
18544
18545 * jcf-write.c (find_constant_wide): New function.
18546 (push_long_const): Use find_constant_wide.
18547
18548 * jcf-write.c (generate_bytecode_insn): Fix bug in switch handling.
18549 (generate_bytecode_insn): Use correct dup variant for MODIFY_EXPR.
18550 Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
18551 Emit invokeinterface when calling an interface method.
18552 Emit invokespecial also when calling super or private methods.
18553
18554 * jcf-write.c (generate_classfile): Emit ConstantValue attributes.
18555
185561998-12-06 Per Bothner <bothner@cygnus.com>
18557
18558 * jcf-dump.c (INVOKE): If invokeinterface, print number of args.
18559
185601998-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
18561
18562 * java-tree.h (java_layout_seen_class_methods): New function
18563 prototype.
18564 (LAYOUT_SEEN_CLASS_METHODS): Macro removed.
18565 * jcf-parse.c (parse_class_file): Call java_layout_seen_class_methods.
18566 * parse.h (PROMOTE_RECORD_IF_COMPLETE): New macro.
18567 * parse.y (method_declarator:): Defined action.
18568 (issue_warning_error_from_context): input_filename saved, set to
18569 the appropriate value and restored after java_error is called.
18570 (build_unresolved_array_type): Fixed comment.
18571 (register_fields): Use PROMOTE_RECORD_IF_COMPLETE.
18572 (method_header): Deal with return type the same way type are
18573 handled for fields and method's parameters and local variables
18574 types are handled.
18575 (check_method_redefinition): Removed extra CR.
18576 (declare_local_variables): Use PROMOTE_RECORD_IF_COMPLETE.
18577 (java_layout_seen_class_methods): New function.
18578 (java_layout_classes): Call java_layout_seen_class_methods.
18579
185801998-12-03 Per Bothner <bothner@cygnus.com>
18581
18582 * parse,y (patch_synchronized_statement): Set CAN_COMPLETE_NORMALLY.
18583
185841998-12-03 Per Bothner <bothner@cygnus.com>
18585
18586 * jcf-dump.c (main): Fix error message.
18587 * jcf-path.c (add_entry): Style fix.
18588
185891998-12-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
18590
18591 * class.c (layout_class_method): Call build_java_argument_signature
18592 on constructors too.
18593 * parse.y (check_method_redefinition): Use TYPE_ARGUMENT_SIGNATURE.
18594 (patch_method_invocation): Define a primary when resolving an
18595 expression name. Augmented comment on code checking illegal `this'
18596 usage. Loosened it test by accepting NEW_CLASS_EXPR.
18597
185981998-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
18599
18600 * class.c (layout_class_method): Don't report error on non-static
18601 overriding static if the method is private.
18602 * java-tree.h (finish_class): Prototype added.
18603 * lex.c (java_get_line_col): Handle col argument -2 value.
18604 * parse.h: All static method declarations moved to parse.y.
18605 * parse.y: Now contains all static method declarations previously
18606 found in parse.h.
18607 (find_expr_with_wfl, missing_return_error,
18608 unreachable_stmt_error): New functions.
18609 (java_get_real_method_name): Identify constructors bearing class
18610 names in source code compiled classes only.
18611 (java_complete_expand_methods): Call missing_return_error.
18612 (invocation_mode): Private methods invoked as static methods.
18613 (java_complete_tree): Call unreachable_stmt_error.
18614
186151998-12-01 Tom Tromey <tromey@cygnus.com>
18616
18617 * Makefile.in (+target): Removed.
18618 (+xmake_file): Likewise.
18619 (+tmake_file): Likewise.
18620 (.NOEXPORT): Removed duplicate.
18621
186221998-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18623
18624 * Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK).
18625
18626 * jv-scan.c: Fix xmalloc prototype. Provide an xmalloc definition.
18627
18628 * jvgenmain.c: Remove the xmalloc prototype, we get it from
18629 libiberty.h. Provide an xmalloc definition.
18630
18631 * jvspec.c: Remove the xmalloc prototype.
18632
18633 * parse-scan.y: Include config.h and system.h. Don't include
18634 OS headers or gansidecl.h. Don't prototype xmalloc/xstrdup.
18635 Provide an xstrdup definition.
18636
186371998-11-26 Alexandre Oliva <oliva@dcc.unicamp.br>
18638
18639 * jcf-path.c (add_entry): Recognize ".jar" too.
18640 * lang-specs.h: Likewise.
18641
186421998-11-26 Per Bothner <bothner@cygnus.com>
18643
18644 * jcf-write.c (generate_bytecode_insns): In Call_EXPR, handle
18645 soft_monitorenter_node, soft_monitorexit_node, throw_node.
18646
18647 * jcf-write.c (generate_bytecode_insns):
18648 Handle pre/post-increment/decrement of long.
18649
18650 * jcf-write.c (generate_bytecode_insns):
18651 Handle missing exception handler (finally for synchronized).
18652
186531998-11-25 Per Bothner <bothner@cygnus.com>
18654
18655 * java-tree.h (end_params_node): Declare global.
18656 * decl.c (end_params_node): New global.
18657 (init_decl_processing, start_java_method): Use end_params_node for
18658 end of list of parameter types. Follows correct gcc conventions.
18659 * expr.c (pop_argument_types, pop_arguments): Likewise.
18660 * lang.c (put_decl_node): Likewise.
18661 * typeck.c (various places): Likewise.
18662 * class.y (various places): Likewise.
18663 * parse.y (various places): Likewise.
18664
18665 * parse.y (java_complete_tree): Move CAN_COMPLETE_NORMALLY.
18666 (build_jump_to_finally): Add missing CAN_COMPLETE_NORMALLY.
18667
18668 * class.c: Add #include flags.h, remove no-longer needed declaration.
18669
18670 * class.c (layout_class_method): Remove commented-out code, re-format.
18671 Don't add vtable entry (or index) for private methods.
18672 * expr.c (expand_invoke): A private method is implicitly final.
18673 * class.c (make_class_data): If inlining or optimizing,
18674 skip private methods.
18675
18676 * class.c (finish_class): New function. Calls existing methods,
18677 but alls emits deferred inline functions.
18678 * jcf-parse.c (parse_class_file): Call finish_class.
18679 * parse.y (java_complete_expand_methods): Likewise.
18680
18681 * expr.c (build_java_binop): Explicit default, to silence -Wall.
18682
18683 * expr.c (CHECK_PC_IN_RANGE): Add void cast to kill warnings.
18684
186851998-11-25 Marc Espie <espie@quatramaran.ens.fr>
18686
18687 * jcf-write.c (generate_bytecode_conditional): Fix typo.
18688
186891998-11-24 Per Bothner <bothner@cygnus.com>
18690
18691 * (generate_classfile): Always write class access flag with
18692 ACC_SUPER set.
18693
186941998-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
18695
18696 * class.c (maybe_layout_super_class): New function.
18697 (layout_class): Reorganized. Loop on class methods dispatched into
18698 a new function. Call maybe_layout_super_class.
18699 (layout_class_methods, layout_class_method): New functions.
18700 * expr.c (expand_java_NEW): Call layout_class_methods on loaded
18701 class.
18702 (expand_invoke): Likewise.
18703 * java-tree.h (all_class_list): New global variable declared.
18704 (layout_class_methods, layout_class_method): New function
18705 prototypes.
18706 (LAYOUT_SEEN_CLASS_METHODS): New macro.
18707 * jcf-parse.c (all_class_list): New global variable.
18708 (load_class): Extended what class_or_name can be. Use parser
18709 context mechanism to save globals before calling jcf_parse.
18710 (jcf_parse_source): Don't parse twice if HAS_BEEN_ALREADY_PARSED_P
18711 is set on the file name.
18712 (jcf_parse): Layout class methods when Object is loaded, otherwise
18713 record class in all_class_list for delayed method layout.
18714 (parse_class_file): Use LAYOUT_SEEN_CLASS_METHODS.
18715 * lang.c (put_decl_node): Decode <init> into the decl context
18716 class name.
18717 * lex.c (java_allocate_new_line): Use xmalloc.
18718 * parse.h (INCOMPLETE_TYPE_P): Redefined to work with incomplete
18719 pointers, not TREE_LIST elements.
18720 (struct parser_ctxt): Fixed comment indentations, added comments
18721 and reordered some fields.
18722 (java_check_methods): Function prototype removed.
18723 * parse.y (java_push_parser_context): Use xmalloc.
18724 (java_parser_context_restore_global): Pop extra pushed ctxp only
18725 when there's nothing next.
18726 (maybe_create_class_interface_decl): Fixed comment, add new
18727 created class decl to all_class_list.
18728 (method_header): Use GET_REAL_TYPE on argument's types.
18729 (method_declarator): Use GET_REAL_TYPE, change type to the real
18730 type in TREE_LIST dependency node. Build argument list with the
18731 real type.
18732 (create_jdep_list): Use xmalloc. Removed allocation error message.
18733 (obtain_incomplete_type): Fixed leading comment. Broadened
18734 incoming argument meaning.
18735 (register_incomplete_type): Use xmalloc. Removed allocation error
18736 message.
18737 (safe_layout_class): Fixed leading comment.
18738 (jdep_resolve_class): Reversed if statement condition and switch
18739 if and else bodies.
18740 (resolve_and_layout): Fixed leading comment. Broadened incoming
18741 argument meaning.
18742 (complete_class_report_errors): New local variable name, for
18743 clarity. purify_type_name used for all error cases.
18744 (java_get_real_method_name): Stricter check on constructors.
18745 (java_check_regular_methods): Reverse methods list only if not
18746 already laid out. Layout artificial constructor.
18747 (java_check_methods): Deleted.
18748 (source_start_java_method): Obtain incomplete type for patchable
18749 method arguments.
18750 (java_layout_classes): Fixed leading comment. Use
18751 LAYOUT_SEEN_CLASS_METHODS, use a loop to check methods. Added else
18752 statement to layout operation, reuse LAYOUT_SEEN_CLASS_METHODS
18753 before returning. Fixed comments.
18754 (java_expand_classes): Check for errors up front.
18755 (patch_method_invocation): Class to search is resolved and laid
18756 out.
18757
187581998-11-24 Per Bothner <bothner@cygnus.com>
18759
18760 * expr.c (java_lang_expand_expr): Add missing emit_queue.
18761
18762 * javaop.h (int8): Removed - not used.
18763 (jbyte): Redefine portably with correct signedness.
18764
18765 * jcf-write.c (generate_bytecode_insns): Don't free sw_state.cases.
18766
18767 * jcf-write.c (generate_bytecode_insns): Fix typo
18768 OPCODE_getstatic to OPCODE_getfield.
18769
18770 * java-tree.def (CASE_EXPR, DEFAULT_EXPR): Kind is 'x', not '1'.
18771 * parse.y (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR,
18772 set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).
18773
187741998-11-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
18775
18776 * jcf-parse.c (jcf_parse_source): Function returned type is
18777 void. Added prototype.
18778 (jcf_parse): Function returned type is void.
18779 (yyparse): Remove call to fclose on the last parsed file.
18780
18781 * java-tree.h (jcf_parse): Changed jcf_parse prototype.
18782
187831998-11-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
18784
18785 * class.c (unmangle_classname): Set QUALIFIED_P when appropriate.
18786 (layout_class): Cope with methods featuring WFL in decl names.
18787 * decl.c (unqualified_object_id_node): New global variable,
18788 initialized.
18789 (build_decl_no_layout): Removed.
18790 * expr.c (build_primtype_type_ref): Handle Double.
18791 (java_lang_expand_expr): Fixed indentations.
18792 * java-tree.h (CLASS_METHOD_CHECKED_P): Flag deleted.
18793 (flag_wall, flag_redundant, flag_not_overriding,
18794 flag_static_local_jdk1_1, unqualified_object_id_node): Global
18795 variable declarations.
18796 (build_decl_no_layout): Removed prototype.
18797 (java_get_real_method_name): Added prototype.
18798 (IS_UNCHECKED_EXPRESSION_P): Renamed IS_UNCHECKED_EXCEPTION_P.
18799 (java_parse_abort_on_error): Macro now just returns.
18800 * jcf-parse.c (jcf_parse_source): Check fclose returned
18801 value. Call emit_register_classes if java_report_errors returns
18802 zero.
18803 * lanc.c (flag_wall, flag_redundant, flag_not_overriding,
18804 flag_static_local_jdk1_1): New integer flags.
18805 (lang_decode_option): New flags set here.
18806 * parse.h (GET_REAL_TYPE, GET_METHOD_NAME): New macros.
18807 (OBSOLETE_MODIFIER_WARNING): Issue error message conditionally to
18808 the flag_redundant variable.
18809 (SET_TYPE_FOR_RESOLUTION): Consider Object being java.lang.Object
18810 when parsing java.lang.Object class.
18811 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Added terminal
18812 NULL_TREE to build.
18813 (resolve_qualified_expression_name): Fixed indentation.
18814 (patch_array_ref): Changed prototype.
18815 (not_initialized_as_it_should_p): Prototype removed.
18816 (java_report_errors): Added function prototype.
18817 * parse.y (formal_parameter:): Changed error message for not yet
18818 supported final parameters.
18819 (class_type_list:): Set both PURPOSE and VALUE of created
18820 TREE_LIST to be class_type.
18821 (primary_no_new_array:): Handle class literals on primitive types.
18822 (parse_warning_context): Reinstalled correct force_error and
18823 do_warning flags setups.
18824 (java_report_errors): Changed prototype. Return java_error_count
18825 value.
18826 (variable_redefinition_error): Consider treating variable type as
18827 a fake pointer.
18828 (create_interface): Warn about redundant abstract modifier if
18829 flag_redundant is set. Changed error message.
18830 (lookup_field_wrapper): Save/restore globals before/after looking
18831 up field.
18832 (duplicate_declaration_error_p): Consider treating declaration
18833 type as a fake pointer.
18834 (register_fields): Extract real type from dependency node. Check
18835 for duplicate field declaration after type adjustment. Use
18836 DECL_INITIAL to store static final initialized values.
18837 (method_header): Extract real function type from dependency node.
18838 (check_abstract_method_header): Use GET_METHOD_NAME.
18839 (obtain_incomplete_type): Layout fake pointer type.
18840 (safe_layout_class): Don't try to check for methods before layout.
18841 (java_complete_class): Don't check for correct throws clause
18842 elements inheritance here.
18843 (resolve_and_layout): Broadened name parameter meaning.
18844 (reset_method_name): Use GET_METHOD_NAME.
18845 (java_get_real_method_name): New function.
18846 (java_check_regular_methods): Don't check methods in
18847 java.lang.Object. Verify lineage of throws clause elements. Use
18848 flag_no_overriding in warning report.
18849 (check_throws_clauses): Don't check if class was from
18850 bytecode. Use IS_UNCHECKED_EXCEPTION_P macro.
18851 (java_check_methods): Don't set CLASS_METHOD_CHECKED_P flag.
18852 (declare_local_variables): Use flag_static_local_jdk1_1 to report
18853 warning on unsupported final local variables. Use build_decl
18854 instead of build_decl_no_layout. Get real local variable type from
18855 dependency node.
18856 (source_start_java_method): Get real parameter type from
18857 dependency node. Call build_decl instead of build_decl_no_layout.
18858 (java_layout_classes): Reverse tree and layout type and class as
18859 required. Mark class as loaded when done.
18860 (resolve_field_access): Fixed indentation. Restricted condition
18861 leading to static field access code generation. Set field_type
18862 decl's TREE_TYPE if QUAL_DECL_TYPE not available.
18863 (resolve_qualified_expression_name): Initialize type_found to
18864 null. Handle static field resolved during qualification. Fixed
18865 layout on non primitive field decl types.
18866 (not_accessible_p): Fixed typo in comment.
18867 (patch_method_invocation): Resolve and layout class to search from
18868 type.
18869 (lookup_method_invoke): Keep integer constant 0 as is. Resolve and
18870 layout non primitive type, if necessary. Make method node only to
18871 report errors.
18872 (find_applicable_accessible_methods_list): Consider WFL'ed method
18873 decl names. Fixed indentation.
18874 (argument_types_convertible): Resolve and layout target type if
18875 necessary.
18876 (java_complete_tree): Fixed indentation problems. Rewrote
18877 CALL_EXPR thrown exceptions check. Re-installed further processing
18878 of the assignment in certain cases.
18879 (patch_assignment): Call maybe_build_primttype_type_ref to perform
18880 inlining on class literals.
18881 (valid_builtin_assignconv_identity_widening_p): Cope with constant
18882 0 literal.
18883 (valid_method_invocation_conversion_p): Likewise.
18884 (patch_string): Temporary disable forbidden use of `this' in
18885 explicit constructor invocations when doing string concatenation
18886 within their scope.
18887 (patch_unaryop): Added comment. Reinstalled code to disable
18888 further check on assignment operation with cast expression RHS.
18889 (patch_switch_statement): Fixed indentation.
18890 (build_try_statement): Call build_decl instead of
18891 build_decl_no_layout.
18892 (patch_synchronized_statement): Likewise.
18893 (patch_throw_statement): Use IS_UNCHECKED_EXCEPTION_P instead of
18894 IS_UNCHECKED_EXPRESSION_P.
18895 (check_thrown_exceptions_do): Changed leading comment. Resolve and
18896 layout argument exception type.
18897 (purge_unchecked_exceptions): Use IS_UNCHECKED_EXCEPTION_P instead
18898 of IS_UNCHECKED_EXPRESSION_P.
18899
189001998-11-18 Anthony Green <green@cygnus.com>
18901
18902 * jcf-parse.c (yyparse): Open class file in binary mode.
18903
189041998-11-15 Per Bothner <bothner@cygnus.com>
18905
18906 * jvgenmain.c: Need to #include "gansidecl.h" (to get PROTO).
18907
18908 * jcf-write.c (perform_relocations): Move check out one loop.
18909
189101998-11-15 Anthony Green <green@hoser.cygnus.com>
18911
18912 * Make-lang.in: Fix reference to srcdir.
18913 * jv-scan.c: Add missing xmalloc prototype.
18914 * jvgenmain.c: Ditto.
18915
189161998-11-15 Per Bothner <bothner@cygnus.com>
18917
18918 * decl.c (error_mark_node), java-tree.h: New global.
18919 * parse.y: Use empty_stmt_node instead of size_zero_node.
18920 (build_if_else_statement): If missing else, use empty_stmt_node.
18921
18922 * parse.y (not_initialized_as_it_should_p): Removed, with its callers.
18923 (java_complete_expand_method): Complain if return is missing.
18924 (java_check_regular_methods): Comment out incorrect error check.
18925 (not_accessible_p): Fix incorrect handling of protected methods.
18926 (patch_method_invocation): Pass correct context to not_accessible_p.
18927 (find_applicable_accessible_methods_list): Likewise.
18928 (qualify_ambiguous_name): If ARRAY_REF, it's an expression name.
18929 (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR, set
18930 TREE_TYPE (to void_type_node); otherwise expand_expr crashes.
18931 (patch_if_else_statement): Fix setting of CAN_COMPLETE_NORMALLY.
18932
18933 * jcf-write.c (CHECK_OP, CHECK_PUT): Add some error checking.
18934 (push_int_const): Remove reundant NOTE_PUSH.
18935 (generate_bytecode_insns - case STRING_CST): Do NOTE_PUSH.
18936 (- case SWITCH_EXPR): Fix code generation bug.
18937 (- case PREDECREMENT_EXPR etc): Remove redundant NOTE_PUSH.
18938 (generate_classfile): More robust for abstract methods.
18939
189401998-11-15 Anthony Green <green@cygnus.com>
18941
18942 * Makefile.in: jv-scan and jvgenmain all require libiberty.
18943 * Make-lang.in: Ditto.
18944
18945 * jv-scan.c: Remove xmalloc and xstrdup definitions.
18946 * jvgenmain: Ditto.
18947
189481998-11-15 Per Bothner <bothner@cygnus.com>
18949
18950 * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): New macro.
18951
18952 * jcf-io.c (find_class): Simpler/cleaner structure fixes a bug.
18953
189541998-11-14 Per Bothner <bothner@cygnus.com>
18955
18956 Allow uses of interface types to verify. This is not really
18957 type-safe, but it matches what Sun does, and is OK as long as
18958 there are appropriate run-time checks.
18959 * verify.c (merge_types): If merging two interface types,
18960 just set the result to java.lang.Object.
18961 * expr.c (pop_type): Any interface is matches by java.lang.Object.
18962
189631998-11-13 Tom Tromey <tromey@cygnus.com>
18964
18965 * gjavah.c (main): Handle --output-class-directory argument.
18966 * jvspec.c (lang_specific_driver): Translate `-d' into
18967 -foutput-class-dir.
18968 * jcf.h (jcf_write_base_directory): Declare.
18969 * lang.c (lang_decode_option): Recognize -foutput-class-dir.
18970 * lang-options.h: Mention -foutput-class-dir.
18971 * jcf-write.c (jcf_write_base_directory): New global.
18972 (make_class_file_name): Put generated .class file into `-d'
18973 directory, or into source directory if -d not given. Function now
18974 static.
18975 (write_classfile): Free class file name. Handle case where class
18976 file name is NULL.
18977 (DIR_SEPARATOR): New macro.
18978 Include <sys/stat.h>
18979
18980 * Makefile.in (prefix): New macro.
18981
189821998-11-12 Per Bothner <bothner@cygnus.com>
18983
18984 * parse.y (patch_invoke): Do less if flag_emit_class_files.
18985 * expr.c (build_known_method_ref): Don't check flag_emit_class_files
18986 here (done in patch_invoke instead).
18987 (case_identity): Moved here from parse.y.
18988
18989 * java-tree.h (CAN_COMPLETE_NORMALLY): New macro.
18990 * parse.y (java_complete_tree etc): Maybe set CAN_COMPLETE_NORMALLY.
18991 * parse.y (java_complete_tree): Re-order COMPOUND_EXPR in BLOCK
18992 so they can be efficiently scanned without recursion.
18993 Error it ! CAN_COMPLETE_NORMALLY first part of COMPOUND_EXPR.
18994 * expr.c (java_lang_expand_expr): Expand statements of COMPOUND_EXPR
18995 in BLOCK iteratively, rather than recursively.
18996
18997 * parse.y (do_unary_numeric_promotion): New function.
18998 (patch_unaryop, patch_binop, patch_array_ref): Use it.
18999
19000 * parse.y (patch_newarray): Various fixes.
19001
19002 Re-do handling of switch statements (for proper block scoping).
19003 * parse.y: Add just a single block for the enture switch block,
19004 but don't create any "case blocks".
19005 (group_of_labels): Rmeoved unneeded non-terminal.
19006 CASE_EXPR and DEFAULT_EXPR are added to current block.
19007 * expr.c (java_lang_expand_expr): Inline SWITCH_EXPR here.
19008 Now also need to handle CASE_EXPR and DEFAULT_EXPR.
19009 * java-tree.h (SWITCH_HAS_DEFAULT): New macro.
19010 * parse.y (wfl_operator, print_int_node): Make non-static.
19011 (java_complete_tree): CASE_EXPR and DEFAULT_EXPR are now processed
19012 as part of recursive scan of block.
19013 (java_expand_switch ): Removed - inlined into java_lang_expand_expr.
19014 (patch_switch_statement): Most tests move dinto java_complete_tree.
19015
19016 * parse.y: Make various production be non-typed (void).
19017 * parse.y (parse_error): Merged into issue_warning_error_from_context.
19018 * parse.y (add_stmt_to_compound): Don't create/change extra node.
19019 (patch_method_invocation_stmt): Renamed to patch_method_invocation.
19020
19021 * jcf-write.c (struct jcf_handler): New type.
19022 (struct jcf_switch_state): New type.
19023 (SWITCH_ALIGN_RELOC, BLOCK_START_RELOC): New relocation kinds.
19024 (alloc_handler, emit_unop, emit_reloc): New functions.
19025 (adjust_typed_op): Add extra parameter ("max type" offset).
19026 (emit_switch_reloc, emit_case-reloc): New function.
19027 (generate_bytecode_conditional): Handle REAL_TYPE comparisons.
19028 (generate_bytecode_insns): Support REAL_CST, switch statements,
19029 exception handling, method calls, object/array creation, and more.
19030
19031 * class.c: Remove some unused variables.
19032 * constants.c (find_string_constant): New function.
19033 (count_constant_pool_bytes): Fix to correctly handle wide constants.
19034 * decl.c (complete_start_java_method): Don't _Jv_InitClass
19035 if flag_emit_class_files.
19036
190371998-11-12 Tom Tromey <tromey@cygnus.com>
19038
19039 * jcf-io.c (find_class): Added explanatory comment.
19040
19041 * jcf-path.c (add_entry): Look for `.zip' at end of filename. Add
19042 trailing slash to `.zip' entries.
19043
19044 * jvspec.c (lang_specific_driver): Correctly handle case where
19045 GC_NAME not defined.
19046
190471998-11-11 Tom Tromey <tromey@cygnus.com>
19048
19049 * jvspec.c (GC_NAME): New define.
19050 (lang_specific_driver): Use GC_NAME. Add GC_NAME to command line
19051 if required.
19052 * Make-lang.in (jvspec.o): Define WITH_GC_<name>.
19053
190541998-11-11 Per Bothner <bothner@cygnus.com>
19055
19056 * jcf-dump.c (TABLE_SWITCH): Fix typos.
19057
190581998-11-11 Tom Tromey <tromey@cygnus.com>
19059
19060 * jcf-dump.c (main): Correctly recognize `--'-style long options.
19061
190621998-11-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
19063
19064 * class.c (is_compiled_class): Call safe_layout_class for class
19065 compiled from source.
19066 * conver.h (convert_to_integer, convert_to_real,
19067 convert_to_pointer): Added prototypes.
19068 * decl.c (init_decl_processing): Non longer push the decls of
19069 `methodtable', `constants', `Class', `Field', `dispatchTable'
19070 `jexception' and `Method'.
19071 * expr.c (build_invokeinterface): New function.
19072 (expand_invoke): static variable CLASS_IDENT now in
19073 build_invokeinterface. Use build_invokeinterface.
19074 (expand_java_field_op): Moved code to inline
19075 java.lang.PRIMTYPE.TYPE into a function.
19076 (build_primtype_type_ref): New function.
19077 * java-tree.def (INSTANCEOF_EXPR): New tree code.
19078 * java-tree.h (CLASS_METHOD_CHECKED_P, METHOD_DEPRECATED,
19079 FIELD_DEPRECATED, CLASS_DEPRECATED): New flag macros.
19080 (DECL_CONSTRUCTOR_P): Fixed typo in comment.
19081 (DECL_LOCAL_STATIC_VALUE): New macro.
19082 (build_invokeinterface, build_primtype_type_ref): New function
19083 prototypes.
19084 (java_parse_abort_on_error): Macro rewritten.
19085 * jcf-parse.c (current_method): Add comment to declaration.
19086 (parse_zip_file_entries, process_zip_dir, void parse_source_file):
19087 Function prototypes fixed.
19088 (jcf_parse_source): push/pop parser context. save/restore global.
19089 (parse_source_file): Fixed leading comment. Now take a
19090 IDENTIFIER_NODE as an argument. Doesn't check methods, layout
19091 classes and pop the parser context anymore.
19092 (yyparse): Push parser context, save globals, parse the source
19093 file, restore globals and pop the parser context when processing a
19094 source file.
19095 * jcf.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG define.
19096 * lex.c (java_parse_doc_section): New function.
19097 (java_lex): Call java_parse_doc_section when appropriate. Build an
19098 operator around INSTANCEOF_TK.
19099 * lex.h (java_lineterminator, java_sprint_unicode,
19100 java_unicode_2_utf8, java_lex_error, java_store_unicode):
19101 Prototypes rewritten.
19102 (java_parse_escape_sequence, java_letter_or_digit_p,
19103 java_parse_doc_section, java_parse_end_comment, java_get_unicode,
19104 java_read_unicode, java_store_unicode, java_read_char,
19105 java_allocate_new_line, java_unget_unicode, java_sneak_unicode):
19106 Added function prototypes.
19107 * parse.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG
19108 define.
19109 (JNULLP_TYPE_P, CHECK_METHODS, CHECK_DEPRECATED, REGISTER_IMPORT):
19110 New macros
19111 (struct parser_ctxt): New fields: deprecated,
19112 current_parsed_class_un, gclass_list.
19113 (fix_method_argument_names, issue_warning_error_from_context,
19114 resolve_package, lookup_package_type): New function prototypes.
19115 (resolve_expression_name): Fixed function prototype.
19116 (find_applicable_accessible_methods_list): Fixed indentation, added
19117 extra argument in prototype.
19118 (check_final_assignment, build_null_of_type, check_deprecation,
19119 check_method_redefinition, reset_method_name,
19120 java_check_regular_methods, java_check_abstract_methods,
19121 maybe_build_primttype_type_ref): New function prototype.
19122 * parse.y (conver.h): Include.
19123 (INSTANCEOF_TK): Tagged <operator>.
19124 (single_type_import_declaration): Use REGISTER_IMPORT macro.
19125 (relational_expression:): Build binop for instanceof.
19126 (java_push_parser_context): Remember ctxp->gclass_list across
19127 contexts.
19128 (java_pop_parser_context): Simply return if no context
19129 exists. Remember gclass_list across contexts.
19130 (issue_warning_error_from_context): New function.
19131 (parse_error_context): Don't setup ctxp->elc here. Call
19132 issue_warning_error_from_context instead.
19133 (parse_warning_context): Likewise.
19134 (maybe_create_class_interface_decl): Removed DECL_ARTIFICIAL
19135 setup. Link new class/interface to ctxp->gclass_list.
19136 (add_superinterfaces): Register interface as incomplete if not
19137 loaded.
19138 (create_class): Remember class unqualified name in
19139 ctxp->current_parsed_class_un. Check class deprecation.
19140 (register_fields): Check field deprecation. Remember static final
19141 field value in DECL_LOCAL_STATIC_VALUE. Changed comment in part
19142 processing INIT.
19143 (method_header): New local variable ORIG_ARG. Use unqualified
19144 current class name for check on constructor errors. Promote return
19145 type if of record type. Argument list fix moved in
19146 fix_method_argument_names, called here. Check method deprecation.
19147 (fix_method_argument_names): New function.
19148 (method_declarator): Promote record typed arguments.
19149 (safe_layout_class): Check class methods before layout.
19150 (java_complete_class): Compute field layout when patched.
19151 (do_resolve_class): Try to load class after having it renamed
19152 after the package name.
19153 (get_printable_method_name): Use DECL_CONTEXT.
19154 (reset_method_name): New function.
19155 (check_method_redefinition): Use reset_method_name.
19156 (java_check_regular_methods): New local variable
19157 SAVED_FOUND_WFL. Temporarily reinstall overriding/hiding method
19158 names for error report. Check for compile-time error when method
19159 found has default (package) access.
19160 (java_check_abstract_methods): Now takes an interface DECL node as
19161 an argument. Also reinstall real name on unchecked
19162 overriding/hiding methods for error report.
19163 (java_check_methods): Fixed leading comment. Get classes to verify
19164 from ctxp->gclass_list. Use CHECK_METHODS macro and set
19165 CLASS_METHOD_CHECKED_P on class verification.
19166 (lookup_java_method2): Get real method name if necessary.
19167 (find_in_imports): Don't check package class access here.
19168 (resolve_package, lookup_package_type): New functions.
19169 (java_layout_classes): Fixed leading comment. Take classes to be
19170 laid out from ctxp->gclass_list.
19171 (java_complete_expand_methods): Don't expand native and abstract
19172 methods.
19173 (java_expand_classes): New function.
19174 (resolve_expression_name): Use additional argument ORIG. Retrieve
19175 values of static final field of primitive types.
19176 (resolve_field_access): Handles static final field of promotive
19177 type.
19178 (resolve_qualified_expression_name): Handle STRING_CST as
19179 primaries and package name resolution. Check deprecation on found
19180 decls. Set where_found and type_found on non static field resolved
19181 during qualification. Layout non primitive field decl types.
19182 (check_deprecation): New function.
19183 (maybe_access_field): Simplified.
19184 (patch_method_invocation_stmt): Local variable CLASS_TYPE
19185 removed. Reverse method's argument when primary is a type. Don't
19186 use CLASS_TYPE to report problems, use IDENTIFIER_WFL
19187 instead. Include abstract class in the list of class searchable
19188 for constructors. Use DECL_CONTEXT of found method for access
19189 checks. Check method deprecation.
19190 (patch_invoke): Pay extra care to NEW_CLASS_EXPR type call when
19191 converting arguments. Handle INVOKE_INTERFACE.
19192 (lookup_method_invoke): Search constructor using existing
19193 infrastructure (don't rely on lookup_java_constructor anymore).
19194 (find_applicable_accessible_methods_list): Extra argument flag
19195 LC. Now include constructor in the search.
19196 (qualify_ambiguous_name): Conditional expression are primaries.
19197 (not_initialized_as_it_should_p): static final are always
19198 initialized.
19199 (java_complete_tree): Pass extra NULL argument to
19200 resolve_expression_name. Stricter test to carry on patching
19201 assignments. New case for INSTANCEOF_EXPR.
19202 (complete_function_arguments): Inline PRIMTYPE.TYPE read access.
19203 (check_final_assignment, maybe_build_primttype_type_ref): New
19204 functions.
19205 (patch_assignment): Detect resolved static finals and carry normal
19206 assignment error check on them. Inline PRIMTYPE.TYPE read access.
19207 (try_builtin_assignconv): Access constant 0 on all primitive
19208 types.
19209 (valid_builtin_assignconv_identity_widening_p): Accept identical
19210 types. Accept all promoted type on int type.
19211 (valid_ref_assignconv_cast_p): Accept a null pointer to be
19212 assigned to a reference.
19213 (valid_method_invocation_conversion_p): Accept to check null
19214 pointers.
19215 (build_binop): Merge declaration and initialization of local
19216 variable BINOP.
19217 (patch_binop): New case for INSTANCEOF_EXPR. NE_EXPR to accept all
19218 numeric types. Improved validity test for qualify operators on
19219 references.
19220 (patch_unaryop): Broadened rejection test for PREDECREMENT_EXPR
19221 and PREINCREMENT_EXPR. Also detect resolved static finals of a
19222 primitive type and issue the appropriate error message.
19223 (resolve_type_during_patch): Mark class loaded when resolved.
19224 (patch_cast): Allow null to be cased to reference types.
19225 (build_null_of_type): New function.
19226 (patch_array_ref): Handle array on references correctly.
19227 (patch_return): Removed unused local variable MODIFY. Force
19228 boolean to be returned as integers. Allows null to be returned by
19229 a function returning a reference.
19230 * typeck.c (convert_to_integer, convert_to_real,
19231 convert_to_pointer): Prototypes moved to convert.h
19232 (lookup_argument_method): Use method real name, if necessary.
19233
192341998-10-30 Tom Tromey <tromey@cygnus.com>
19235
19236 * class.c (build_class_ref): Changed name of primitive classes to
19237 start with `_Jv_'.
19238
19239 * class.c (make_class_data): Renamed fields: nmethods to
19240 method_count, method_count to dtable_method_count. Always set
19241 `state' field to 0.
19242 * decl.c (init_decl_processing): Likewise.
19243
192441998-10-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
19245
19246 * class.c (layout_class): Don't mangle <finit>, produce
19247 __finit<class> instead. Don't verify artificial methods.
19248 * decl.c (finit_identifier_node): New declared global.
19249 (init_decl_processing): finit_identifier_node initialized.
19250 * java-tree.def (CONDITIONAL_EXPR): New Java tree code.
19251 * java-tree.h (finit_identifier_node): Declared as extern.
19252 (struct lang_decl): New field called_constructor.
19253 (DECL_CONSTRUCTOR_CALLS): Access macro to called_constructor.
19254 (CLASS_HAS_FINIT_P): New macro.
19255 (CALL_CONSTRUCTOR_P): Leading comment changed. Macro now checks
19256 explicit constructor invocation.
19257 (CALL_EXPLICIT_CONSTRUCTOR_P, CALL_THIS_CONSTRUCTOR_P,
19258 CALL_SUPER_CONSTRUCTOR_P): New macros.
19259 (write_classfile): Added prototype.
19260 * jcf-parse.c (jcf_parse_source): Parse and remember for
19261 generation if the file was seen on the command line.
19262 (parse_source_file): Don't write the class file here.
19263 (yyparse): Loop on files rewritten. Set current_jcf.
19264 (parse_zip_file_entries): Parse class file only if it was found.
19265 * lang.c (init_parse): Don't open command line provided filename
19266 here.
19267 (lang_parse): Don't set main_jcf anymore.
19268 * parse.h (ABSTRAC_CHECK): Capitalized arguments.
19269 (JCONSTRUCTOR_CHECK): New macro.
19270 (JBSC_TYPE_P): New macro.
19271 (IN_TRY_BLOCK_P, EXCEPTIONS_P): Fixed leading comment.
19272 (COMPLETE_CHECK_OP_2): New macro.
19273 (struct parse_ctxt): New field explicit_constructor_p.
19274 (check_class_interface_creation): Fixed prototype indentation.
19275 (patch_method_invocation_stmt): Prototype reflects added argument.
19276 (patch_invoke): Likewise.
19277 (complete_method_declaration, build_super_invocation,
19278 verify_constructor_circularity,
19279 build_this_super_qualified_invocation, get_printable_method_name,
19280 patch_conditional_expr, maybe_generate_finit, fix_constructors,
19281 verify_constructor_super, create_artificial_method,
19282 start_artificial_method_body, end_artificial_method_body,
19283 generate_field_initialization_code): New function prototypes.
19284 * parse.y: Fixed leading comment
19285 (constructor_header:, constructor_body:, block_end:): Rules tagged
19286 <node>.
19287 (type_declaration:): Call maybe_generate_finit.
19288 (method_declaration:): Action for method_body: placed in new
19289 function complete_method_declaration, called here.
19290 (constructor_declaration:): Defined actions. Removed leading
19291 FIXME.
19292 (constructor_header:): New rule with action.
19293 (constructor_body:): Rule rewritten using block_begin: and
19294 block_end:. Defined actions.
19295 (constructor_declarator:, explicit_constructor_invocation:):
19296 Defined actions.
19297 (block:): Use new rules block_begin: block_end:.
19298 (block_begin:, block_end:): New rules and actions.
19299 (block_statements:): Fixed error message for explicit
19300 constructors.
19301 (method_invocation:): Call build_this_super_qualified_invocation
19302 if primary is `this' or `super' was seen.
19303 (conditional_expression:): Action defined.
19304 (extra_ctxp_pushed_p): New static global flag.
19305 (java_parser_context_save_global): Create parser context if
19306 necessary. Use extra_ctxp_pushed_p to remember it.
19307 (java_parser_context_restore_global): Pop extra parser context if
19308 one exists.
19309 (build_array_from_name): Array on primitive types are marked
19310 loaded.
19311 (register_fields): Restore new name in field initializer
19312 expression if type was altered. Non static fields initialized upon
19313 declaration marked initialized.
19314 (maybe_generate_finit): New function.
19315 (maybe_generate_clinit): Use create_artificial_method,
19316 start_artificial_method_body, end_artificial_method_body. Generate
19317 debug info for enclosed initialization statements.
19318 (method_header): Fixed leading comment. Check constructor
19319 flags. Detect constructor declarations and set DECL_CONSTRUCTOR_P
19320 accordingly.
19321 (complete_method_declaration, constructor_circularity_msg,
19322 verify_constructor_circularity): New functions.
19323 (get_printable_method_name): New function.
19324 (check_method_redefinition): Don't rename <finit> methods. Fix
19325 declared constructor names. Error message for
19326 constructors modified.
19327 (java_check_regular_methods): Local variable seen_constructor
19328 renamed saw_constructor. Skip verification on constructors. Create
19329 default constructor with create_artificial_method.
19330 (java_check_methods): Removed unnecessary empty line.
19331 (create_artificial_method, start_artificial_method_body,
19332 end_artificial_method_body): New functions.
19333 (java_layout_classes): Changed leading comment. Reverse fields
19334 list if necessary. Always layout java.lang.Object if being
19335 defined.
19336 (java_complete_expand_methods): Verify constructor circularity.
19337 (java_complete_expand_method): Call fix_constructor on
19338 constructors. Local variable no_ac_found removed. Restore
19339 bindings if method body expansion failed.
19340 (fix_constructors, verify_constructor_super,
19341 generate_field_initialization_code): New function.
19342 (java_expand_classes): Fixed leading comment. Write class file
19343 here.
19344 (resolve_expression_name): Check for illegal instance variable
19345 usage within the argument scope of an explicit constructor
19346 invocation.
19347 (resolve_qualified_expression_name): Pass extra from_super flag
19348 when invoking patch_method_invocation_stmt. New case for
19349 conditional expression when used as a primary. Check for error
19350 when acquiring super.
19351 (patch_method_invocation_stmt): Added extra argument super. New
19352 local variable is_static_flag. Set class_to_search according to
19353 the nature of the constructor invocation. Don't add `this'
19354 argument when expanding NEW_CLASS_EXPR. Check for illegal method
19355 invocation within the argument scope of explicit constructor
19356 invocation. Set is_static according to is_static_flag. Provide
19357 extra `super' argument to patch_invoke invocation.
19358 (patch_invoke): New argument from_super. Loop on arguments
19359 indentation fixed. Pass from_super to invocation_mode. New switch
19360 case INVOKE_SUPER. Fixed error message in switch default case.
19361 Don't use CALL_CONSTRUCTOR_P but rather a test on the tree node
19362 value.
19363 (invocation_mode): Return INVOKE_SUPER mode when appropriate.
19364 (lookup_method_invoke): Fixed prototypes in candidates list. Error
19365 message takes constructors into account.
19366 (find_applicable_accessible_methods_list): Fixed indentation.
19367 (qualify_ambiguous_name): Take explicit constructor invocation
19368 into account. Deal with a conditional expression as a primary to
19369 a method call.
19370 (java_complete_tree): Added local wfl_op3. New CONDITIONAL_EXPR
19371 case. Added extra argument to patch_method_invocation_stmt.
19372 Register calls made to explicit constructor `this'. Don't call
19373 save_expr in ARRAY_REF case when emitting class files. Check for
19374 illegal use of this when expanding explicit constructor invocation
19375 arguments.
19376 (complete_function_arguments): Set and reset parser context
19377 explicit_constructor_p field value when appropriate.
19378 (build_super_invocation, build_this_super_qualified_invocation):
19379 New functions.
19380 (patch_assignment): Fixed typo.
19381 (patch_unaryop): Check on final fields occurs only when a decl
19382 exits.
19383 (patch_return): Take constructors into account.
19384 (patch_conditional_expr): New function.
19385 * typeck.c (build_java_signature): Removed unnecessary empty line.
19386
193871998-10-28 Jeffrey A Law (law@cygnus.com)
19388
19389 * Makefile.in (jcf-dump, gcjh): Link in $(LIBS) too.
19390
193911998-10-28 Tom Tromey <tromey@cygnus.com>
19392
19393 * decl.c (init_decl_processing): Renamed fields.
19394 * class.c (make_class_data): Renamed bfsize, nfields, nsfields,
19395 interface_len, msize fields.
19396
19397 * class.c (make_class_data): Removed subclass_head and
19398 subclass_next fields.
19399 * decl.c (init_decl_processing): Removed subclass_head and
19400 subclass_next fields.
19401
194021998-10-28 Jeffrey A Law (law@cygnus.com)
19403
19404 * jcf-write.c (emit_load_or_store): Avoid implicit int arguments.
19405 * mangle.c (emit_unicode_mangled_name): Similarly.
19406
194071998-10-26 Nick Clifton <nickc@cygnus.com>
19408
19409 * jcf-parse.c (get_constant): Place braces around code to compute
19410 'd' when REAL_ARITHMETIC is not defined.
19411
194121998-10-25 H.J. Lu (hjl@gnu.org)
19413
19414 * Make-lang.in (jv-scan$(exeext)): Add stamp-objlist to
19415 dependency.
19416
194171998-10-23 Tom Tromey <tromey@cygnus.com>
19418
19419 * lang-specs.h: `.zip' files are input to jc1.
19420
194211998-10-22 Per Bothner <bothner@cygnus.com>
19422
19423 * jvspecs.c: Add (but don't enable) support for combining multiple
19424 .class and .java input filenames to a single jc1 invocation.
19425 Add support for -C flag (copile to .class files).
19426 Translate -classpath and -CLASSPATH arguments.
19427 * lang-specs.h: Don't set %2 spec.
19428
194291998-10-22 Tom Tromey <tromey@cygnus.com>
19430
19431 * jcf-path.c (add_entry): Don't add trailing separator if entry is
19432 a .zip file.
19433 (add_path): Don't add trailing separator to non-empty path
19434 elements.
19435
19436 * lang.c (lang_decode_option): Check for -fclasspath and
19437 -fCLASSPATH before examining other `-f' options.
19438
19439 * java-tree.h (finalize_identifier_node): Don't declare.
19440 * class.c (make_class_data): Don't push "final" field.
19441 * decl.c (init_decl_processing): Don't push "final" field.
19442 (finalize_identifier_node): Removed.
19443 (init_decl_processing): Don't set finalize_identifier_node.
19444
19445 * config-lang.in (stagestuff): Added jcf-dump and jv-scan.
19446
194471998-10-11 Anthony Green <green@cygnus.com>
19448
19449 * Make-lang.in (java): Depend on jcf-dump and jv-scan.
19450 (JV_SCAN_SOURCES): New macro.
19451 (JCF_DUMP_SOURCES): Likewise.
19452 (jcf-dump$(exeext)): New target.
19453 (jv-scan$(exeext)): New target.
19454
194551998-10-22 Tom Tromey <tromey@cygnus.com>
19456
19457 * Makefile.in (LEX): Removed.
19458 (LEXFLAGS): Likewise.
19459 (SET_BISON): New macro.
19460 (BISON): Removed.
19461 ($(PARSE_C)): Use SET_BISON. Run bison from srcdir to avoid
19462 spurious diffs in parse.c.
19463 ($(PARSE_SCAN_C)): Likewise.
19464 (PARSE_DIR): New macro.
19465 (PARSE_C): Use it.
19466 (PARSE_SCAN_C): Likewise.
19467 (PARSE_RELDIR): New macro.
19468
19469 * jcf-io.c (saw_java_source): Define here, not in jcf-parse.c.
19470
19471 * jcf-io.c (find_class): Use saw_java_source to determine when to
19472 look for `.java' file.
19473 * jcf-parse.c (saw_java_source): New global.
19474 (yyparse): Set it if `.java' file seen.
19475
19476 * Make-lang.in (JAVA_SRCS): Added jcf-path.c.
19477 (GCJH_SOURCES): Likewise.
19478 * Makefile.in (datadir): New macro.
19479 (libjava_zip): Likewise.
19480 (JAVA_OBJS): Added jcf-path.o.
19481 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
19482 (../gcjh$(exeext)): Likewise.
19483 (jcf-path.o): New target.
19484 * java-tree.h (fix_classpath): Removed decl.
19485 * jcf-parse.c (fix_classpath): Removed.
19486 (load_class): Don't call fix_classpath.
19487 * parse.y (read_import_dir): Don't call fix_classpath.
19488 * lex.h: Don't mention classpath.
19489 * lex.c (java_init_lex): Don't initialize classpath.
19490 * jcf-io.c (classpath): Removed global.
19491 (find_class): Use jcf_path iteration functions. Correctly search
19492 class path for .java file.
19493 (open_in_zip): New argument `is_system'.
19494 * jcf-dump.c (main): Call jcf_path_init. Recognize all new
19495 classpath-related options.
19496 * lang.c (lang_decode_option): Handle -fclasspath, -fCLASSPATH,
19497 and -I.
19498 (lang_init): Call jcf_path_init.
19499 * lang-options.h: Mention -I, -fclasspath, and -fCLASSPATH.
19500 * lang-specs.h: Handle -I. Minor cleanup to -M options.
19501 Correctly put braces around second string in each entry.
19502 * gjavah.c (main): Call jcf_path_init. Recognize all the new
19503 classpath-related options.
19504 (help): Updated for new options.
19505 * jcf.h: Declare functions from jcf-path.c. Don't mention
19506 `classpath' global.
19507 * jcf-path.c: New file.
19508
19509 * jcf-depend.c: Include jcf.h.
19510
19511 * jcf-write.c (localvar_alloc): Returns `void'.
19512 (localvar_free): Removed unused variable.
19513
19514 * lang.c (OBJECT_SUFFIX): Define if not already defined.
19515 (init_parse): Use OBJECT_SUFFIX, not ".o".
19516
195171998-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
19518
19519 * class.c (emit_register_classes): Renamed from
19520 emit_register_class.
19521 * java-tree.h (emit_register_classes): Prototype renamed from
19522 emit_register_class.
19523 * jcf-parse.c (yyparse): Call emit_register_classes once before
19524 returning.
19525 * parse.y (java_expand_classes): No longer register classes.
19526
195271998-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
19528
19529 * class.c (is_compiled_class): New local variable
19530 seen_in_zip. Identify classes found in currently compiled source
19531 file(s).
19532 * decl.c (complete_start_java_method): Fixed typo.
19533 * java-tree.h (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P,
19534 HAS_BEEN_ALREADY_PARSED_P, IS_A_COMMAND_LINE_FILENAME_P): New macros.
19535 (CLASS_P): Moved around.
19536 (java_parse_abort_on_error): Macro moved from jcf-parse.c
19537 * jcf-parse.c (java_parse_abort_on_error): Macro moved to
19538 java-tree.h
19539 (jcf_parse_source): Changed leading comment. Removed unnecessary
19540 fclose and CLASS_FROM_SOURCE_P marking.
19541 (parse_source_file): New local variables remember_for_generation
19542 and filename. Mark parsed file name identifier node. Removed block
19543 executed when parse_only was null. Set remember_for_generation.
19544 Use it as an argument to java_pop_parser_context.
19545 (yyparse): New local variables several_files, list, next node and
19546 current_file_list. Split ampersand separated file names into
19547 current_file_list. Iterate through the list and parse accordingly.
19548 * parse.h (java_pop_parser_context): New function prototype.
19549 * parse.y (ctxp_for_generation): New static global variable.
19550 (java_pop_parser_context): New argument generate. Link popped ctxp
19551 to ctxp_for_generation list accordingly.
19552 (java_complete_expand_methods): Fixed indentation.
19553 (java_expand_classes): New function.
19554
195551998-10-17 Per Bothner <bothner@cygnus.com>
19556
19557 * Makefile.in: Link with libiberty.a instead of memmove.o.
19558
195591998-10-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
19560
19561 * lex.c (setjmp.h): No longer included.
19562 * lex.h (setjmp.h): Included.
19563 * parse.h (SET_TYPE_FOR_RESOLUTION): New macro.
19564 (duplicate_declaration_error_p): Renamed from
19565 duplicate_declaration_error.
19566 (build_array_from_name): New function prototype.
19567 * parse.y (setjmp.h): No longer included.
19568 (variable_declarator_id): Define action.
19569 (build_array_from_name): New function.
19570 (duplicate_declaration_error_p): Renamed from
19571 duplicate_declaration_error. Fixed leading comment.
19572 (register_fields): Main `for' loop reorganized. Uses
19573 SET_TYPE_FOR_RESOLUTION and build_array_from_name.
19574 (method_declarator): Uses SET_TYPE_FOR_RESOLUTION and call
19575 build_array_from_name.
19576 (resolve_class): Set CLASS_LOADED_P on newly build array dimension
19577 types.
19578 (read_import_dir): Don't try to skip `.' and `..'.
19579 (declare_local_variables): Uses SET_TYPE_FOR_RESOLUTION and
19580 build_array_from_name. Main `for' loop reorganized.
19581 (resolve_qualified_expression_name): When building access to a
19582 field, use the type where the field was found, not its own type.
19583 (maybe_access_field): Use field DECL_CONTEXT if the type where the
19584 field was found is null.
19585 (qualify_ambiguous_name): Sweep through all successive array
19586 dimensions.
19587
195881998-10-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
19589
19590 * java-tree.h (pop_labeled_block, lang_printable_name,
19591 maybe_add_interface, set_super_info, get_access_flags_from_decl,
19592 interface_of_p, inherits_from_p, fix_classpath,
19593 complete_start_java_method, emit_handlers, init_outgoing_cpool,
19594 make_class_data, register_class, alloc_name_constant): New
19595 function prototypes.
19596 * lang.c (lang_decode_option): Set argc argument unused. Fixed
19597 indentation. Added cast to remove warning.
19598 (lang_printable_name): Set v argument unused.
19599 (lang_print_error): Added argument to lang_printable_name call.
19600 (java_dummy_print, print_lang_decl, print_lang_type,
19601 print_lang_identifier, lang_print_xnode): All argument marked
19602 unused.
19603 * lex.c (java_unget_unicode): Removed unnecessary argument.
19604 (java_allocate_new_line): Unused local variable is gone.
19605 (java_read_char): Added parenthesis in expressions to remove
19606 warnings. Added final return statement.
19607 (java_read_unicode): Added parenthesis in expression to remove
19608 warning.
19609 (java_parse_end_comment): Fixed java_unget_unicode invocation.
19610 (java_parse_escape_sequence): Likewise.
19611 (java_lex): Unused local variables are gone. Fixed
19612 java_unget_unicode invocation.
19613 * lex.h (set_float_handler): Prototype added when JC1_LITE not
19614 defined.
19615 * parse.h (ERROR_CANT_CONVERT_TO_BOOLEAN): Fixed
19616 lang_printable_name invocation in macro.
19617 (ERROR_CANT_CONVERT_TO_NUMERIC, ERROR_CAST_NEEDED_TO_INTEGRAL):
19618 Likewise.
19619 (duplicate_declaration_error): Suppressed unused argument in
19620 prototype.
19621 (identical_subpath_p): Function declaration is gone.
19622 (patch_invoke): Suppressed unused argument in prototype.
19623 (patch_cast, build_labeled_block, check_thrown_exceptions):
19624 Likewise.
19625 * parse.y (setjmp.h): Included
19626 (toplev.h): Likewise.
19627 (field_declaration:): Suppressed unused local
19628 (label_decl:): Fixed build_labeled_block invocation.
19629 (java_pop_parser_context): Put extra parenthesis around assignment
19630 in if.
19631 (yyerror): Suppressed unused local variables.
19632 (variable_redefinition_error): Fixed lang_printable_name
19633 invocation.
19634 (create_interface): Suppressed unused local variables.
19635 (create_class): Likewise.
19636 (duplicate_declaration_error): Suppressed unused argument. Fixed
19637 lang_printable_name invocation.
19638 (register_fields): Suppressed unused local variable. Fixed
19639 duplicate_declaration_error invocation.
19640 (method_header): Suppressed unused local variable.
19641 (method_declarator, parser_check_super): Likewise.
19642 (java_complete_class): Suppressed unused local variable. Fixed
19643 fatal error message.
19644 (complete_class_report_errors): Added default: in switch.
19645 (java_check_regular_methods): Fixed lang_printable_name
19646 invocations.
19647 (check_throws_clauses): Likewise.
19648 (java_check_abstract_methods): Suppressed unused local
19649 variable. Fixed lang_printable_name invocation.
19650 (read_import_entry): Added supplemental return statement.
19651 (read_import_dir): Suppressed unused local variables.
19652 (check_pkg_class_access, declare_local_variables): Likewise.
19653 (source_start_java_method): Suppressed unused extern variable
19654 declarations
19655 (expand_start_java_method): Suppressed unused extern and local
19656 variable declarations.
19657 (java_complete_expand_methods): Likewise.
19658 (java_complete_expand_method): Suppressed unused local variables.
19659 (make_qualified_name): Likewise.
19660 (resolve_qualified_expression_name): Added default: in
19661 switch. Fixed lang_printable_name invocation.
19662 (class_instance_creation_expression): Added parenthesis around
19663 expressions.
19664 (patch_method_invocation_stmt): Fixed lang_printable_name and
19665 patch_invoke invocations.
19666 (check_for_static_method_reference): Fixed lang_printable_name
19667 invocation.
19668 (patch_invoke): Suppressed unused arguments and local variables.
19669 (lookup_method_invoke): Suppressed unused local variables.
19670 (qualify_ambiguous_name): Added default: in switch.
19671 (identical_subpath_p): Function removed.
19672 (patch_assignment): Suppressed unused local variables. Suppressed
19673 unnecessary if statement. Fixed lang_printable_name invocations.
19674 (try_builtin_assignconv): Fixed lang_printable_name invocations.
19675 (valid_ref_assignconv_cast_p): Parenthesis around
19676 expression. Suppressed unused local variables.
19677 (build_binop): Suppressed unused local variables. fixed
19678 lang_printable_name invocations.
19679 (string_constant_concatenation): Suppressed unused local
19680 variables.
19681 (patch_unaryop): Fixed lang_printable_name invocation.
19682 (patch_cast): Suppressed unnecessary argument. Fixed
19683 lang_printable_name invocation.
19684 (patch_array_ref): Fixed lang_printable_name invocation.
19685 (patch_newarray, patch_return, patch_if_else_statement): Likewise.
19686 (build_labeled_block): Suppressed unused argument.
19687 (generate_labeled_block): Fixed build_labeled_block invocation.
19688 (build_loop_body): Suppressed unused local variables.
19689 (patch_loop_statement): Likewise.
19690 (patch_exit): Fixed lang_printable_name invocation.
19691 (patch_switch_statement): Likewise.
19692 (case_identity): First argument marked unused.
19693 (patch_try_statement): Fixed lang_printable_name invocations.
19694 (patch_synchronized_statement, patch_throw_statement): Likewise.
19695 (check_thrown_exceptions): Fixed check_thrown_exceptions and
19696 lang_printable_name invocations.
19697 (check_thrown_exceptions_do): Suppressed unused argument.
19698
196991998-10-14 Tom Tromey <tromey@cygnus.com>
19700
19701 * jcf-write.c (write_classfile): Add output class file as target.
19702 * lang-options.h: Added -MD, -MMD, -M, and -MM.
19703 * jcf.h: Added declarations for dependency-tracking functions.
19704 * lang-specs.h: Handle -M, -MM, MD, and -MMD.
19705 * lang.c (lang_decode_option): Recognize -MD and -MMD.
19706 (finish_parse): Call jcf_dependency_write.
19707 (dependency_tracking): New global.
19708 (DEPEND_SET_FILE): New define.
19709 (DEPEND_ENABLE): New define.
19710 (init_parse): Enable dependency tracking if required.
19711 Include "flags.h".
19712 * Makefile.in (JAVA_OBJS): Added jcf-depend.o.
19713 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
19714 (../gcjh$(exeext)): Likewise.
19715 (jcf-depend.o): New target.
19716 * Make-lang.in (JAVA_SRCS): Added jcf-depend.c.
19717 (GCJH_SOURCES): Likewise.
19718 * jcf-io.c (open_class): Call jcf_dependency_add_file. Added
19719 dep_name argument.
19720 (find_classfile): Added dep_name argument.
19721 (find_class): Compute name of dependency.
19722 (open_in_zip): Call jcf_dependency_add_file.
19723 * gjavah.c (output_file): No longer global.
19724 (usage): Don't mention "gjavah".
19725 (help): Likewise.
19726 (java_no_argument): Likewise.
19727 (version): Likewise.
19728 (main): Recognize and handle -M family of options.
19729 (print_mangled_classname): Return is void.
19730 (process_file): Handle case where output is suppressed.
19731 (HANDLE_END_FIELD): Likewise.
19732 (HANDLE_METHOD): Likewise.
19733 * jcf-depend.c: New file.
19734
197351998-10-13 Jeffrey A Law (law@cygnus.com)
19736
19737 * java-tree.def: Add missing newline at EOF.
19738
197391998-10-13 Tom Tromey <tromey@cygnus.com>
19740
19741 * jcf-dump.c (process_class): Use FATAL_EXIT_CODE, not -1.
19742 (main): Likewise. Exit with SUCCESS_EXIT_CODE at end of
19743 function.
19744 Include <config.h> and "system.h".
19745 (disassemble_method): Undefine RET to avoid clash with
19746 config/i386/i386.h.
19747
197481998-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
19749
19750 * decl.c (runtime_exception_type_node, error_exception_type_node):
19751 New global variables.
19752 (init_decl_processing): Initialized.
19753 * expr.c (java_lang_expand_expr): Set caught exception type to
19754 null if catch handler argument doesn't exit.
19755 * java-tree.def (SYNCHRONIZED_EXPR, THROW_EXPR): New Java specific
19756 tree codes.
19757 * java-tree.h (runtime_exception_type_node,
19758 error_exception_type_node): Global variables declared.
19759 (DECL_FUNCTION_THROWS): New macro.
19760 (DECL_FUNCTION_BODY): Modified comment.
19761 (DECL_SPECIFIC_COUNT): Likewise.
19762 (struct lang_decl): New field throws_list.
19763 (IS_UNCHECKED_EXPRESSION_P): New macro.
19764 * lex.c (java_lex): Generate location information for THROW_TK.
19765 * parse.h (PUSH_EXCEPTIONS, POP_EXCEPTIONS, IN_TRY_BLOCK_P,
19766 EXCEPTIONS_P): New macros.
19767 (enum jdep_code): New value JDEP_EXCEPTION.
19768 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT,
19769 BUILD_ASSIGN_EXCEPTION_INFO, BUILD_THROW, SET_WFL_OPERATOR,
19770 PATCH_METHOD_RETURN_ERROR): New macros.
19771 (patch_method_invocation_stmt): Added new argument to prototype.
19772 (patch_synchronized_statement, patch_throw_statement,
19773 check_thrown_exceptions, check_thrown_exceptions_do,
19774 purge_unchecked_exceptions, check_throws_clauses): New function
19775 prototypes.
19776 * parse.y Fixed typo in keyword section.
19777 (throw:): Rule tagged <node>.
19778 (THROW_TK): Keyword tagged <operator>.
19779 (method_header:): Last argument to call to method_header passed
19780 from throws: rule.
19781 (throws:, class_type_list:, throw_statement:,
19782 synchronized_statement:, synchronized:): Defined actions.
19783 (method_header): New local variable current. Register exceptions
19784 from throws clause.
19785 (java_complete_tree): Complete and verify exceptions from throws
19786 clause.
19787 (complete_class_report_errors): Error message on exceptions not
19788 found
19789 (java_check_regular_methods): Fixed typo. Shortcut on private
19790 overriding methods. Changed error message on method
19791 redefinition. Check for throws clause compatibility.
19792 (check_throws_clauses): New function.
19793 (java_check_abstract_methods): Use DECL_NAME for wfl or current
19794 method. Changed error message on method redefinition.
19795 (currently_caught_type_list): New static variable.
19796 (java_complete_expand_methods): Purge unchecked exceptions from
19797 throws clause list. Call PUSH_EXCEPTIONS before walk and
19798 POP_EXCEPTIONS after.
19799 (resolve_qualified_expression_name): Pass new argument as NULL to
19800 patch_method_invocation_stmt.
19801 (patch_method_invocation_stmt): New argument ref_decl. Invoke
19802 PATCH_METHOD_RETURN_ERROR when returning with error. Reverse
19803 argument list when appropriate. Use new argument if non null to
19804 store selected method decl.
19805 (patch_invoke): Convert if necessary args of builtin types before
19806 forming CALL_EXPR. Argument list no longer reversed here.
19807 (invocation_mode): Treat final methods as static methods.
19808 (java_complete_tree): New cases for THROW_EXPR: and
19809 SYNCHRONIZED_EXPR:. Check thrown exceptions when completing
19810 function call.
19811 (complete_function_arguments): No more RECORD_TYPE
19812 conversion. Function parameter nodes no longer saved.
19813 (valid_ref_assignconv_cast_p): Avoid handling null type.
19814 (patch_binop): Fixed null constant reference handling.
19815 (build_try_statement): Use BUILD_ASSIGN_EXCEPTION_INFO and
19816 BUILD_THROW macros.
19817 (patch_try_statement): Fixed comments. Record caught types in
19818 list, push the list, expand try block and pop the list.
19819 (patch_synchronized_statement, patch_throw_statement,
19820 check_thrown_exceptions, check_thrown_exceptions_do,
19821 purge_unchecked_exceptions): New functions.
19822 * typeck.c (lookup_argument_method): Allow WFL in place of method
19823 DECL_NAME during method definition check
19824
198251998-10-09 Tom Tromey <tromey@cygnus.com>
19826
19827 * gjavah.c (decode_signature_piece): New function.
19828 (print_c_decl): Use it. Added `name_override' argument.
19829 (print_method_info): Use name_override argument to print_c_decl.
19830 (seen_fields): Removed.
19831 (print_field_info): Don't update seen_fields.
19832 (struct method_name): New structure.
19833 (method_name_list): New global.
19834 (print_method_info): Add new method to list of methods.
19835 (name_is_method_p): New function.
19836 (print_field_info): If field name has same name as method, then
19837 change field name.
19838 (process_file): Parse methods before fields.
19839 (field_pass): New global.
19840 (HANDLE_END_FIELD): Take field_pass into account.
19841
198421998-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19843
19844 * Makefile.in (keyword.h): Add -L KR-C -F ', 0' flags to gperf.
19845 (keyword.h): Regenerate using gperf 2.7.1 (19981006 egcs).
19846
198471998-10-03 Anthony Green <green@cygnus.com>
19848
19849 * jvspec.c: Fix bug in jvgenmain_spec patch.
19850
198511998-10-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
19852
19853 * Makefile.in (lang.o:): Install dependency on java-tree.def.
19854 * decl.c (soft_exceptioninfo_call_node): New global variable.
19855 (init_decl_processing): Fixed indentation. soft_badarrayindex_node
19856 takes extra integer argument. soft_exceptioninfo_call_node
19857 initialized.
19858 * except.c (java_set_exception_lang_code): New function
19859 (method_init_exceptions): Called here.
19860 (prepare_eh_table_type): New function.
19861 (expand_end_java_handler): Called here.
19862 * expr.c (build_java_throw_out_of_bounds_exception): Now features
19863 one argument. Modified generation of call to
19864 soft_badarrayindex_node to use new argument.
19865 (build_java_arrayaccess): Pass faulty index value to
19866 build_java_throw_out_of_bounds_exception.
19867 (generate_name): New function.
19868 (java_lang_expand_expr): New local variables node, current,
19869 has_finally_p. Expand TRY_EXPR node.
19870 (process_jvm_instruction): Replace top of the stack with thrown
19871 object reference when entering exception handler.
19872 * java-tree.def (TRY_EXPR, CATCH_EXPR, FINALLY_EXPR): New Java
19873 specific tree codes.
19874 * java-tree.h (soft_exceptioninfo_call_node): Declaration of new
19875 global.
19876 (DECL_SPECIFIC_COUNT): New macro.
19877 (prepare_eh_table_type, java_set_exception_lang_code,
19878 generate_name): New function declarations.
19879 (match_java_method): Declaration deleted.
19880 (FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, CATCH_EXPR_GET_EXPR): New
19881 macros.
19882 * lex.c (TRY_TK, CATCH_TK): Generate location information.
19883 * parse.h (redefinition_error, refine_accessible_methods_list,
19884 can_cast_to_p): Function declaration removed.
19885 (classitf_redefinition_error, variable_redefinition_error,
19886 parse_jdk1_1_error, find_applicable_accessible_methods_list,
19887 find_most_specific_methods_list, argument_types_convertible,
19888 enter_a_block, valid_builtin_assignconv_identity_widening_p,
19889 valid_cast_to_p, valid_method_invocation_conversion_p,
19890 try_reference_assignconv, add_stmt_to_compound,
19891 build_jump_to_finally, build_tree_list, patch_try_statement,
19892 java_get_catch_block): New function declarations.
19893 * parse.y (string_buffer_type): Global variable deleted.
19894 (group_of_labels, catches, catch_clause, catch_clause_parameter,
19895 finally): Rules tagged <node>.
19896 (TRY_TK, CATCH_TK): Token tagged <operator>.
19897 (class_body_declaration:, class_member_declaration:,
19898 formal_parameter:, explicit_constructor_invocation:,
19899 interface_member_declaration:, constant_declaration:,
19900 primary_no_new_array:, class_instance_creation_expression:,
19901 array_creation_expression:): Issue error on unsuported JDK1.1
19902 features.
19903 (try_statement:, catches:, finally:): Define actions.
19904 (catch_clause_parameter): New rule.
19905 (catch_clause:): Use new rule catch_clause_parameter.
19906 (parse_jdk1_1_error): New function.
19907 (redefinition_error): Renamed classitf_redefinition_error.
19908 (variable_redefinition_error): New function.
19909 (check_class_interface_creation): Call
19910 classitf_redefinition_error.
19911 (java_complete_tree): Added error message on JDEP_TYPE: case.
19912 (complete_class_report_errors): Fixed indentation.
19913 (declare_local_variables): Call variable_redefinition_error.
19914 (source_end_java_method): Call java_set_exception_lang_code and
19915 emit_handlers where appropriate.
19916 (java_method_add_stmt): Call add_stmt_to_block.
19917 (add_stmt_to_block): New function.
19918 (lookup_method_invoke): Fixed outside comment. new local variable
19919 candicates. Call find_applicable_accessible_methods_list and
19920 find_most_specific_methods_list when searching for a
19921 method. Modified error report to list possible candidates when
19922 applicable.
19923 (find_applicable_accessible_methods_list,
19924 find_most_specific_methods_list, argument_types_convertible): New
19925 function.
19926 (refine_accessible_methods_list): Function deleted.
19927 (java_complete_tree): Handle TRY_EXPR. ARRAY_REF handling: save
19928 expr (if applicable) before calling patch_array_ref.
19929 (build_expr_block): Fixed BLOCK_EXPR_BODY assignment.
19930 (enter_block): Fixed comment.
19931 (enter_a_block): New function.
19932 (patch_assignment): Reorganized. Call try_reference_assignconv for
19933 references. Call valid_cast_to_p instead of can_cast_to_p.
19934 (try_reference_assignconv,
19935 valid_builtin_assignconv_identity_widening_p): New functions.
19936 (valid_ref_assignconv_cast_p): Fixed inverted test on CLASS_FINAL.
19937 (valid_cast_to_p, valid_method_invocation_conversion_p): New
19938 functions.
19939 (build_string_concatenation): Don't resolve StringBuffer.
19940 (patch_cast): Fixed inverted arguments.
19941 (patch_array_ref): Code to save array expr deleted. Call
19942 valid_cast_to_p instead of can_cast_to_p.
19943 (generate_labeled_block): Call generate_name.
19944 (build_jump_to_finally, build_try_statement, java_get_catch_block,
19945 patch_try_statement): New functions.
19946 * typeck.c (match_java_method): Function deleted.
19947
199481998-10-02 Anthony Green <green@cygnus.com>
19949
19950 * jvspec.c: jvgenmain_spec uses different temporary file names.
19951
199521998-10-02 Anthony Green <green@cygnus.com>
19953
19954 * jvspec.c (lang_specific_driver): Fail if user specifies
19955 --main= when not linking.
19956
199571998-09-28 Tom Tromey <tromey@cygnus.com>
19958
19959 * class.c (make_class_data): Push value for `thread' field.
19960 * decl.c (init_decl_processing): Added `thread' field to class.
19961
19962 * class.c (add_field): Always make static fields externally
19963 visible.
19964
199651998-09-26 Anthony Green <green@cygnus.com>
19966
19967 * expr.c (build_java_athrow,
19968 build_java_throw_out_of_bounds_exception, expand_invoke,
19969 build_newarray, expand_java_multianewarray, build_java_monitor):
19970 Update comments to reflect _Jv_* function names.
19971
199721998-09-25 Per Bothner <bothner@cygnus.com>
19973
19974 * decl.c (complete_start_java_method): DECL_RESULT is always promoted.
19975 * decl.c (start_java_method): Handle PROMOTE_PROTOTYPES target macro.
19976 * parse.y (expand_start_java_method): Likewise.
19977
199781998-09-24 Per Bothner <bothner@cygnus.com>
19979
19980 * expr.c (pop_arguments): Handle PROMOTE_PROTOTYPES target macro.
19981
19982 * class.c (push_class): IDENTIFIER_SIGNATURE_TYPE is now POINTER_TYPE.
19983 (add_field): No longer need to convert from RECORD_TYPE to pointer,
19984 * expr.c: Remove no-longer-needed calls to promote_type.
19985 * decl.c (give_name_to_locals): Liekwise.
19986 * jcf-parse.c (get_class_constant): Compensate for new signatures.
19987 * parse.y: Add/remove promote_type calls as appropriate.
19988 * typeck.c (parse_signature_type): Returns POINTER_TYPE for objects.
19989 (parse_signature_string): Likewise.
19990 (build_java_array_type): Fix for now signature convenions.
19991
19992 * lex.c (java_lex): Fix (from Alex) for JC1_LITE problem.
19993
199941998-09-23 Tom Tromey <tromey@cygnus.com>
19995
19996 * class.c (init_class_processing): libjava function renamed to
19997 _Jv_RegisterClass.
19998
199991998-09-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
20000
20001 * expr.c (java_lang_expand_expr): New case for SWITCH_EXPR.
20002 * java-tree.def: Fixed DEFTREECODE third argument.
20003 (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
20004 CASE_EXPR, DEFAULT_EXPR): New tree codes for Java.
20005 * java-tree.h: (IS_CRAFTED_STRING_BUFFER_P): New macro.
20006 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
20007 JAVA_THIS_EXPR): Now replaced by tree code definitions.
20008 (CALL_CONSTRUCTOR_P): Now uses NEW_CLASS_EXPR.
20009 * lang.c (java_tree_code_type, java_tree_code_length,
20010 java_tree_code_name): New arrays.
20011 (lang_init): Append Java tree node definitions to Gcc ones.
20012 * lex.c (expression_obstack): Declared as extern when JC1_LITE
20013 defined.
20014 (java_init_lex): Initialize wfl_append, wfl_string_buffer,
20015 wfl_to_string.
20016 (java_lex): Allow declaration of empty string constants. Retain
20017 location information on CASE_TK and DEFAULT_TK.
20018 * parse.h (JFLOAT_TYPE_P, JINTEGRAL_TYPE_P, JNUMERIC_TYPE_P,
20019 JPRIMITIVE_TYPE_P, JSTRING_TYPE_P, JSTRING_P, JREFERENCE_TYPE_P):
20020 Modified to be more robust.
20021 (BUILD_APPEND, BUILD_STRING_BUFFER): New macros.
20022 (build_new_invocation, try_builtin_assignconv,
20023 patch_switch_statement, string_constant_concatenation,
20024 build_string_concatenation, patch_string_cst, patch_string,
20025 java_expand_switch): New function declarations.
20026 * parse.y: Rules related to switch and EH tagged <node>.
20027 (label_id): Set to NULL_TREE
20028 (wfl_string_buffer, wfl_append, wfl_to_string): New static global
20029 tree nodes.
20030 (this_or_super:): Fixed indentation.
20031 (statement:, statement_nsi:, statement_without_trailing_substatement:,
20032 statement_expression:): Removed call to RULE on all sub-rules.
20033 (switch_expression:, switch_labels:): New rules.
20034 (switch_statement:, switch_block:, switch_block_statement_groups:,
20035 switch_block_statement_group:, switch_labels:, switch_label:):
20036 Defined actions.
20037 (throw_statement:, synchronized_statement:, try_statement:):
20038 Defined temporary actions.
20039 (class_instance_creation_expression:): Call
20040 build_new_invocation. Fixed indentation.
20041 (field_access): Fixed indentation.
20042 (method_invocation): Likewise.
20043 (make_qualified_primary): Use THIS_EXPR.
20044 (resolve_qualified_expression_name): Use NEW_CLASS_EXPR. When
20045 resolving from SUPER, set *type_found.
20046 (qualify_ambiguous_name): Use NEW_CLASS_EXPR.
20047 (java_complete_tree): Removed unused local variable `location'. Case
20048 for SWITCH_EXPR, sharing code with LOOP_EXPR. Use NEW_ARRAY_EXPR,
20049 NEW_CLASS_EXPR, UNARY_PLUS_EXPR and THIS_EXPR. New string handling
20050 on MODIFY_EXPR: and all binary operator tree code cases. Removed
20051 STRING_CST: case. default: checks for patchable strings.
20052 (complete_function_arguments): Transform string constant or
20053 crafted StringBuffer if necessary.
20054 (build_method_invocation): Fixed comments.
20055 (build_new_invocation): New function.
20056 (patch_assignment): Call try_builtin_assignconv to figure a valid
20057 assignment conversion between builtin types.
20058 (try_builtin_assignconv): New function.
20059 (build_binop): Use URSHIFT_EXPR directly to call build.
20060 (operator_string): Use UNARY_PLUS_EXPR.
20061 (patch_binop): Use UNARY_PLUS_EXPR. Handle string concatenation
20062 operator.
20063 (do_merge_string_cste, merge_string_cste,
20064 string_constant_concatenation, build_string_concatenation,
20065 patch_string, patch_string_cst): New function.
20066 (build_unary_op): Use UNARY_PLUS_EXPR and CONVERT_EXPR.
20067 (patch_unaryop): Likewise. New test of valid ++/-- operands.
20068 (build_newarray_node): Use NEW_ARRAY_EXPR.
20069 (build_this): Use THIS_EXPR.
20070 (build_return): Enable debug information on return statement.
20071 (build_if_else_statement): Likewise.
20072 (complete_labeled_statement): Fixed related comment.
20073 (build_loop_body): Fixed comment.
20074 (build_bc_statement): Enable debug information on break/continue
20075 statements.
20076 (patch_bc_statement): Fixed typos. Handle SWITCH statement
20077 context.
20078 (patch_switch_statement, case_identity, java_expand_switch): New
20079 functions.
20080
200811998-09-21 Per Bothner <bothner@cygnus.com>
20082
20083 * buffer.h (BUFFER_INIT): New macro.
20084 * jcf-write.c (struct jcf_partial): New type. Put global stuff here.
20085 Pass (struct jcf_partial *state) to most functions.
20086 (jcf_block, jcf_relocation): New types.
20087 Support labels, branches, conditionals, loops.
20088
200891998-09-21 Tom Tromey <tromey@cygnus.com>
20090
20091 * decl.c (INT_TYPE_SIZE): Define as BITS_PER_WORD if not defined.
20092
200931998-09-21 Per Bothner <bothner@cygnus.com>
20094
20095 * decl.c (integer_type_node): Make it have INT_TYPE_SIZE.
20096 * verify.c (verify_jvm_instructions): Use int_type_not (32 bits),
20097 not integer_type_node (INT_TYPE_SIZ bits).
20098
20099 * parse.y (patch_if_else_statement): Accept promoted_boolean_type_node.
20100
20101 * jcf-reader.c (get_attribute): New HANDLE_EXCEPTION_TABLE hook.
20102 * jcf-dump.c (print_exception_table): New function.
20103 (disassemble_method): Better handling of wide instructions.
20104 Make more robust for bad input.
20105
201061998-09-30 Jeffrey A Law (law@cygnus.com)
20107
20108 * jcf-write.c (OP2, OP4): Use "_i", not "_I" to avoid problems on
20109 FreeBSD.
20110
201111998-09-17 Jeffrey A Law (law@cygnus.com)
20112
20113 * Makefile.in (jcf-dump, jvgenmain): Link in memmove.o too.
20114
201151998-09-17 Tom Tromey <tromey@cygnus.com>
20116
20117 * Makefile.in ($(PARSE_H)): Removed target.
20118
201191998-09-17 Jeffrey A Law (law@cygnus.com)
20120
20121 * Makefile.in (JAVA_OBJS): Add memmove.o
20122 (memmove.o): New target & rules.
20123
201241998-09-15 Tom Tromey <tromey@cygnus.com>
20125
20126 * expr.c (expand_invoke): Don't generate a call to the class init
20127 code.
20128
201291998-09-14 Jeffrey A Law (law@cygnus.com)
20130
20131 * Makefile.in: Add many missing dependencies.
20132 * buffer.c, class.c, constants.c, decl.c: Use system.h and toplev.h
20133 as appropriate.
20134 * except.c, expr.c, jcf-io.c jcf-parse.c, jcf-write.c: Likewise.
20135 * jvgenmain.c lang.c mangle.c typeck.c verify.c: Likewise.
20136
201371998-09-11 Per Bothner <bothner@cygnus.com>
20138
20139 * decl.c (complete_start_java_method): If method is static (and
20140 not private) call _Jv_InitClass.
20141 * expr.c (expand_invoke): Don't call build_class_init.
20142
20143 * jvspec.c (jvgenmain_spec): Fix spec for generated .o file.
20144
201451998-09-10 Jeffrey A Law (law@cygnus.com)
20146
20147 * Make-lang.in (GCJ): Define before using.
20148
201491998-09-09 Jeffrey A Law (law@cygnus.com)
20150
20151 * gjavah.c (java_no_argument): Renamed from no_argument to avoid
20152 losing due to namespace pollution in GNU getopt.h
20153
201541998-09-09 Tom Tromey <tromey@cygnus.com>
20155
20156 * Make-lang.in (java.all.build): Don't mention jvgenmain or gcjh.
20157 (java.all.cross): Likewise.
20158 (java.rest.encap): Likewise.
20159
201601998-09-08 Jeffrey A Law (law@cygnus.com)
20161
20162 * gjavah.c (print_class_decls): Fix thinko in arglist
20163 * jcv-io.c (find_classfile): Similarly.
20164
201651998-09-07 Jeffrey A Law (law@cygnus.com)
20166
20167 * Makefile.in (INCLUDES): Update for recent toplevel gcc changes.
20168
201691998-09-05 Tom Tromey <tromey@cygnus.com>
20170
20171 * Make-lang.in (java.maintainer-clean): Don't remove parse.h.
20172 (java.mostlyclean): Remove parse.c and parse-scan.c, not parse.h.
20173 * Makefile.in (PARSE_C): New macro.
20174 (PARSE_H): Likewise.
20175 (PARSE_SCAN_C): Likewise.
20176 ($(PARSE_C)): Target renamed from parse.c.
20177 ($(PARSE_SCAN_C)): Target renamed from parse-scan.c.
20178 (clean): Remove parse-scan.c as well.
20179 (parse.o): Depend on $(PARSE_C).
20180
201811998-09-05 Anthony Green <green@cygnus.com>
20182
20183 * README, license.terms: Removed.
20184
20185 * Make-lang.in, Makefile.in, class.c, config-lang.in, constants.c,
20186 decl.c, except.c, expr.c, gjavah.c, java-except.h, java-tree.h,
20187 javaop.def, javaop.h, jcf-dump.c, jcf-io.c, jcf-parse.c,
20188 jcf-reader.c, jcf-write.c, jcf.h, jvgenmain.c, jvspec.c,
20189 keyword.gperf, keyword.h, lang-options.h, lang-specs.h, lang.c,
20190 lex.c, lex.h, mangle.c, parse-scan.y, parse.h, parse.y, typeck.c,
20191 verify.c, zextract.c, zipfile.h: Fixed copyright assignment,
20192 and Java trademark attribution.
20193
201941998-09-04 Tom Tromey <tromey@cygnus.com>
20195
20196 * Makefile.in: Use gcjh, not gjavah.
20197 * config-lang.in (stagestuff): Use gcjh, not gjavah.
20198 * Make-lang.in: Changed gjavah to gcjh everywhere.
20199
202001998-09-03 Per Bothner <bothner@cygnus.com>
20201
20202 * gjavah.c: Support new -prepend -add -append flags.
20203 (print_method_info): Method is not virtual if class is final.
20204
202051998-09-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
20206
20207 * jv-scan.c: Fixed copyright assignment.
20208 * keyword.gperf: Likewise.
20209 * keyword.h: Likewise.
20210 * lex.c: Fixed copyright assignment.
20211 (java_lex): Push unicode back when parsing '<'.
20212 * lex.h: Fixed copyright assignment.
20213 * parse-scan.y: Likewise.
20214 * parse.h: Fixed copyright assignment.
20215 (build_debugable_stmt, complete_for_loop): New function prototypes.
20216 * parse.y: Fixed copyright assignment.
20217 (for_statement:): Call complete_for_loop. Set EXIT_EXPR to be
20218 size_zero_node when completing a loop with no exit condition.
20219 (for_statement_nsi:): Define action.
20220 (for_init:, for_update:): Return size_zero_node when empty.
20221 (declare_local_variables): Call build_debugable_stmt.
20222 (build_debugable_stmt): New function.
20223 (build_loop_body): Build debugable statement around loop
20224 condition part.
20225 (complete_loop_body): Take into account the debugable statement
20226 around the EXIT_EXPR.
20227 (complete_loop_body): New function.
20228 (patch_exit_expr): Fixed condition inversion.
20229
202301998-09-02 Tom Tromey <tromey@cygnus.com>
20231
20232 * Make-lang.in (jvspec.o): Use GCC_THREAD_FILE to compute correct
20233 name of thread define.
20234 * jvspec.c (THREAD_NAME): New macro.
20235 (GCLIB): Likewise.
20236 (THREADLIB): Likewise.
20237 (lang_specific_driver): Recognize attempt to link with thread
20238 library or gc library. Recognize -ljava on command line so it
20239 isn't linked against more than once.
20240
202411998-09-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
20242
20243 * parse-scan.y (report_main_declaration): Name of the class
20244 containing `main' can be a qualified name.
20245
202461998-08-31 Tom Tromey <tromey@cygnus.com>
20247
20248 * config-lang.in: Changed gjavac to gjc everywhere.
20249 * Make-lang.in: Changed gjavac to gjc everywhere.
20250
202511998-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
20252
20253 * Make-lang.in (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): New variable.
20254 (java.install-common:): Loop over JAVA_TARGET_INDEPENDENT_BIN_TOOLS
20255 and install the files.
20256 * Makefile.in (JAVA_OBJS_LITE): New variable.
20257 (compiler:): Now include jv-scan as a dependency.
20258 (../jv-scan$(exeext), parse-scan.c): New targets.
20259 (../jcf-dump$(exeext)): Was jcf-dump$(exeext) before.
20260 * config-lang.in (compilers): Removed gcj, gjavah from the list.
20261 * jcf-parse.c (parse_source_file): Call java_layout_classes and
20262 check for errors even if parse_only.
20263 * lex.c (java_init_lex): Reorganized and skip parts if JC1_LITE is
20264 defined.
20265 (yylex): New function. Uses java_lex body.
20266 (java_lex): Removed commented out statement. Remove local variable
20267 literal. Use SET_LVAL_NODE_TYPE and SET_LVAL_NODE where
20268 appropriate. Use macros FLOAT_TYPE_NODE, DOUBLE_TYPE_NODE,
20269 DCONST0, SET_FLOAT_HANDLER, SET_REAL_VALUE_ATOF,
20270 SET_LVAL_NODE_TYPE and GET_TYPE_PRECISION. Don't create STRING_CST
20271 if JC1_LITE is defined. Use BUILD_ID_WFL to build identifiers. Use
20272 SET_MODIFIER_CTX, SET_LVAL_NODE, BUILD_ID_WFL and GET_IDENTIFIER
20273 where appropriate.
20274 (java_lex_error): Empty if JC1_LITE is defined.
20275 (java_get_line_col): Return 0 if JC1_LITE is defined.
20276 * lex.h (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR,
20277 SET_MODIFIER_CTX): Moved into the section containing the macros
20278 conditionally defined by JC1_LITE.
20279 (BUILD_OPERATOR,BUILD_OPERATOR2): Just return the TOKEN
20280 argument if JC1_LITE is defined.
20281 (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, REAL_VALUE_ATOF,
20282 REAL_VALUE_ISINF, REAL_VALUE_ISNAN): Preset to values if JC1_LITE
20283 is defined.
20284 (DCONST0, SET_FLOAT_HANDLER, GET_IDENTIFIER, SET_REAL_VALUE_ATOF,
20285 FLOAT_TYPE, DOUBLE_TYPE, SET_MODIFIER_CTX, GET_TYPE_PRECISION,
20286 SET_LVAL_NODE, SET_LVAL_NODE_TYPE, BUILD_ID_WFL): New macros, set
20287 to different values according to JC1_LITE.
20288 * parse.h (int_fits_type_p, stabilize_reference): Prototype not
20289 declared if JC1_LITE set.
20290 (jdep_code, typedef struct _jdep, typedef struct _jdeplist): Not
20291 defined if JC1_LITE not set.
20292 (struct parser_ctx): Reorganized and skip the jc1 front end part
20293 if JC1_LITE set.
20294 (java_layout_classes): New function definition.
20295 (java_push_parser_context, java_init_lex, yyparse, yylex,
20296 yyerror): Prototype always declared. All other static function
20297 prototypes declared only if JC1_LITE is not set.
20298 * parse.y (yyparse, yylex, yyerror): No longer declared here. Now
20299 declared in parse.h.
20300 (java_layout_classes): New function.
20301 (java_complete_expand_methods): No longer layout the class here.
20302 * parse-scan.y: New file.
20303 * jv-scan.c: New file.
20304
203051998-08-25 Tom Tromey <tromey@cygnus.com>
20306
20307 * gjavah.c (main): Handle -friend option.
20308 (friend_specs): New global.
20309 (generate_access): Handle friend_specs.
20310 (process_file): Likewise.
20311 (MAX_FRIENDS): New macro.
20312 (friend_count): New global.
20313 (print_cxx_classname): Added `prefix' argument. Ignore arrays.
20314 Changed all callers.
20315
203161998-08-24 Per Bothner <bothner@cygnus.com>
20317
20318 * jcf-dump.c (process_class): Move JCF_FINISH use to main,
20319 (main): Handle processing all the entries of a named .zip archive.
20320 * jcf-io.c (jcf_trim_old_input): New function.
20321 * jcf.h (GET_u2_le,GET_u4_le,JCF_readu2_le,JCF_readu4_le): New macros.
20322
203231998-08-24 Per Bothner <bothner@cygnus.com>
20324
20325 * lang.c (flag_assume_compiled): Make default be on.
20326
203271998-08-21 Per Bothner <bothner@cygnus.com>
20328
20329 * jcf-dump.c: Add bunches of flags to control output more.
20330 (process_class): New function; support printing more than one class.
20331 (main): Support new --print-main and --javap flags.
20332 * jcf-reader.c (IGNORE_ATTRIBUTE): New hook.
20333 * jcf.h (CPOOL_INDEX_IN_RANGE): New macro.
20334
203351998-08-20 Per Bothner <bothner@cygnus.com>
20336
20337 Change mangling of dispatch table to match C++ vtable (w/thunks).
20338 * class.c (build_dtable_decl), java-tree.h: New function.
20339 (make_class_data): Call it.
20340 * decl.c (init_decl_processing): Likewise.
20341
203421998-08-19 Warren Levy <warrenl@cygnus.com>
20343
20344 * decl.c (init_decl_processing): Use _Jv_NewObjectArray, not
20345 soft_anewarray; adjust args passed.
20346 * expr.c (build_anewarray): Adjust args for soft_anewarray_node to
20347 match _Jv_NewObjectArray.
20348
203491998-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
20350
20351 * decl.c (push_labeled_block, pop_labeled_block): New functions.
20352 * expr.c (loopup_label): Call create_label_decl.
20353 (create_label_decl): New function.
20354 (java_lang_expand_expr): Call expand_start_bindings with argument
20355 set to zero.
20356 * java-tree.h Added space after PROTO in function declarations
20357 when necessary.
20358 (IS_FOR_LOOP_P, IS_BREAK_STMT_P): New macros.
20359 (create_label_decl, push_labeled_block): New function
20360 declarations.
20361 * lex.c (label_id): Initialize.
20362 (SUPER_TK, THIS_TK, RETURN_TK): Merged common actions in final
20363 switch.
20364 * parse.h Added space after PROTO in function declarations when
20365 necessary.
20366 (LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
20367 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
20368 LOOP_EXPR_BODY_BODY_EXPR, LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P,
20369 PUSH_LABELED_BLOCK, POP_LABELED_BLOCK, PUSH_LOOP, POP_LOOP): New
20370 macros.
20371 (struct parser_ctxt): New fields current_loop,
20372 current_labeled_block.
20373 (build_if_else_statement, patch_if_else_statement,
20374 add_stmt_to_compound, patch_exit_expr, build_labeled_block,
20375 generate_labeled_block, complete_labeled_statement,
20376 build_bc_statement, patch_bc_statement, patch_loop_statement,
20377 build_new_loop, build_loop_body, complete_loop_body): New function
20378 declarations.
20379 * parse.y (java_warning_count): New global variable.
20380 (label_id): New static variable.
20381 (BREAK_TK, CONTINUE_TK): Token tagged <operator>.
20382 (block:): Return size_zero_node when block is empty.
20383 (empty_statement:): Return size_zero_node.
20384 (statement:): Implement supplemental action when for_statement: is
20385 reduced.
20386 (label_decl:): New rule.
20387 (labeled_statement:): Rewritten using label_decl. Actions
20388 implemented.
20389 (labeled_statement_nsi:): Likewise.
20390 (if_then_statement): Actions implemented.
20391 (while_expression): New rule.
20392 (while_statement:): Rewritten using while_expression. Actions
20393 implemented.
20394 (while_statement_nsi:): Likewise.
20395 (do_statement_begin:): New rule.
20396 (do_statement:): Rewritten using do_statement_begin. Actions
20397 implemented.
20398 (for_statement:): Rewritten using for_begin. Actions implemented.
20399 (for_statement_nsi:): Likewise.
20400 (for_header:, for_begin:): New rules.
20401 (for_init:): Actions implemented.
20402 (statement_expression_list:, break_statement:,
20403 continue_statement:): Likewise.
20404 (yyerror): Count number of issued warning(s).
20405 (java_report_errors): Report error(s) and/or warning(s).
20406 (java_complete_class): Use build_java_argument_signature to
20407 recompute completed method signature.
20408 (java_check_regular_methods): New locals method_wfl and aflags.
20409 Use method_wfl instead of lookup_cl during error reports. Fixed
20410 indentation and modified some error messages. Use
20411 lang_printable_name in method instead of the DECL_NAME. New code
20412 to issue warnings on methods not overriding corresponding methods
20413 private to a different package.
20414 (java_method_add_stmt): Call add_stmt_to_compound.
20415 (add_stmt_to_compound): New function.
20416 (java_complete_tree): Handle LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR,
20417 LOOP_EXPR, EXIT_EXPR and COND_EXPR.
20418 (build_if_else_statement, patch_if_else_statement,
20419 build_labeled_block, generate_labeled_block,
20420 complete_labeled_statement, build_new_loop, build_loop_body,
20421 complete_loop_body, patch_loop_statement, build_bc_statement,
20422 patch_bc_statement, patch_exit_expr): New functions.
20423 * typeck.c (build_java_signature): Build argument signature before
20424 enclosing it in between parenthesis.
20425
204261998-08-17 Warren Levy <warrenl@cygnus.com>
20427
20428 * Make-lang.in (JAVA_SRCS): Created for dependencies * Makefile.in
20429 (JAVA_OBJS): Added reminder comment
20430
204311998-08-13 Nick Clifton <nickc@cygnus.com>
20432
20433 * gjavah.c (D_NAN_MASK): Append LL to the constant to force it to
20434 be interpreted as a long long.
20435
204361998-08-13 Warren Levy <warrenl@cygnus.com>
20437
20438 * decl.c (init_decl_processing): Use _Jv_InitClass, not
20439 soft_initialise_class. Use _Jv_NewMultiArray, not
20440 soft_multianewarray. Use _Jv_ThrowBadArrayIndex, not
20441 soft_badarrayindex. Use _Jv_CheckCast, not soft_checkcast. Use
20442 _Jv_CheckArrayStore, not soft_checkarraystore. Use
20443 _Jv_LookupInterfaceMethod, not soft_lookupinterfacemethod.
20444
204451998-08-12 Per Bothner <bothner@cygnus.com>
20446
20447 * decl.c, java-tree.h (this_identifier_node, super_identifier_node,
20448 length_identifier_node): New global tree node constants.
20449 * parse.y (kw_super, kw_this, kw_length): Removed globals.
20450 Replace uses by super_identifier_node etc.
20451 * lex.c (kw_super, kw_this, kw_length): Don't initialize.
20452
20453 * parse.y (resolve_field_access): Don't special-case ".length" if
20454 flag_emit_class_files.
20455 (patch_array_ref): Leave as ARRAY_REF if flag_emit_class_files.
20456 * jcf-write.c (generate_bytecode_insns): Handle ARRAY_REF opcode
20457 and ARRAY.length.
20458
204591998-08-11 Per Bothner <bothner@cygnus.com>
20460
20461 * decl.c (init_decl_processing): Remove unused method_type_node fields.
20462 * class.c (make_method_value): Remove init for removed fields.
20463
20464 * class.c (layout_class): Use build_java_argument_signature.
20465 * java-tree.h (TYPE_ARGUMENT_SIGNATURE): New macro.
20466
20467 * typeck.c (push_java_argument_signature): Removed. Merged into ...
20468 (build_java_argument_signature): Use TYPE_ARGUMENT_SIGNATURE cache.
20469 (build_java_signature): Don't use push_java_argument_signature.
20470
20471 * typeck.c (lookup_argument_method): New function.
20472 * parse.y (java_check_regular_methods): Use lookup_argument_method
20473 instead of lookup_java_method2 followed by lookup_java_method.
20474
20475 * parse.y (check_method_redefinition): Minor optimization.
20476
20477 * jcf-write.c (generate_bytecode_insns): Handle RETURN_EXPR,
20478 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, and RDIV_EXPR.
20479
204801998-08-10 Tom Tromey <tromey@cygnus.com>
20481
20482 * Make-lang.in (jc1$(exeext)): Don't depend on c-common.o or
20483 c-pragma.o.
20484
20485 * gjavah.c (java_float_finite): Use K&R-style definition.
20486 (java_double_finite): Likewise.
20487 (generate_access): Now returns void. Changed all callers.
20488 (last_access_generated): Removed.
20489 (process_file): Only make a single pass over the .class file.
20490
204911998-07-29 Per Bothner <bothner@cygnus.com>
20492
20493 * class.c (get_dispatch_table): Add extra dummy vtable entry,
20494 for compatibility for G++ (with -fvtable-thunks).
20495 * expr.c (build_invokevirtual): Add one for extra dummy vtable entry.
20496
20497 * gjavah.c (process_file): Use public inheritance for super-class.
20498
204991998-07-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
20500
20501 * lex.c (java_init_lex): Initialize ctxp->package.
20502 * parse.h (struct parser_ctxt): package and package_len replaced
20503 by tree package, an identifier node. Field method_decl_list is
20504 gone. Fixed comments.
20505 (lookup_field_wrapper, merge_qualified_name, not_accessible,
20506 class_in_current_package): New function prototypes.
20507 * parse.y (array_type:): Set class loaded flag on primitive type
20508 arrays.
20509 (package_declaration:): Assign ctxp->package to the
20510 identifier node.
20511 (method_invocation:): Handle invocation of method qualified by
20512 `super'.
20513 (single_type_import_declaration:): Removed ambiguity check.
20514 (java_pop_parser_context): New local variable `next'. Reset and
20515 set IMPORT_CLASSFILE_NAME flags on current and previous import
20516 list.
20517 (java_accstring_lookup): Use new local macro COPY_RETURN.
20518 (lookup_field_wrapper): New function.
20519 (parser_qualified_classname): Use merge_qualified_name.
20520 (parser_check_super_interface): Broaden error message.
20521 (do_resolve_class): Check for qualified class name in the current
20522 compilation unit if appropriate.
20523 (process_imports): Check for already defined classes.
20524 (check_pkg_class_access): Got rid of call to
20525 get_access_flags_from_decl.
20526 (java_complete_expand_methods): Call safe_layout_class based on
20527 the current class size.
20528 (make_qualified_primary): Build a WFL qualification on primary if
20529 none exists.
20530 (merge_qualified_name): New function.
20531 (make_qualified_name): Use merge_qualified_name.
20532 (resolve_expression_name): Use safe_lookup_field.
20533 (resolve_field_access): Got rid of call to get_access_flags_from_decl.
20534 (resolve_qualified_expression_name): Likewise. Check on resolved
20535 element accessibility.
20536 (not_accessible_p, class_in_current_package): New functions.
20537 (maybe_access_field): Got rid of call to get_access_flags_from_decl.
20538 (patch_method_invocation_stmt): Merged common pieces. Check
20539 accessibility of invoked method.
20540 (check_for_static_method_reference): Add returned type in error
20541 message.
20542 (invocation_mode): Get rid of bogus check on PRIVATE methods.
20543 (refine_accessible_methods_list): Merged two conditions in test.
20544 (java_complete_class): Sanity check on stabilize_ref gone.
20545 * zextract.c (read_zip_archive): Cast lseek second argument to long.
20546
205471998-07-28 Per Bothner <bothner@cygnus.com>
20548
20549 * class.c (hashUtf8String): Fix - use new JavaSoft specification.
20550
205511998-07-24 Tom Tromey <tromey@cygnus.com>
20552
20553 * gjavah.c (F_NAN): Removed.
20554 (F_NAN_MASK): New macro.
20555 (F_POSITIVE_INFINITY): Removed.
20556 (F_NEGATIVE_INFINITY): Likewise.
20557 (java_float_finite): Rewrote.
20558 (D_NAN_MASK): Renamed.
20559 (java_double_finite): Rewrote.
20560 (D_POSITIVE_INFINITY): Removed.
20561 (D_NEGATIVE_INFINITY): Likewise.
20562
20563 * jcf-dump.c (print_constant): [CONSTANT_Double, CONSTANT_Float]
20564 If verbose, print underlying representation of value in hex.
20565
205661998-07-24 Per Bothner <bothner@cygnus.com>
20567
20568 * buffer.h, buffer.c: New files.
20569 * Makefile.in (JAVA_OBJS): Add buffer.o.
20570
20571 Support locals variables and writing their debug entries to .class.
20572 * jcf-write.c: Simplify some by user new buffer type.
20573 (vode_buffer_grow): Removed.
20574 (struct localvar_info): New type.
20575 (localsvars, localvartable): New buffers.
20576 (localvar_alloc, localvar_free): New functions.
20577 (generate_bytecode_insns): Handle local variables.
20578 (generate_classfile): Write LocalVariableTable attribute.
20579
205801998-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
20581
20582 * jcf-io.c (open_in_zip): Check the zipfile magic number.
20583 * zipfile.h (ZIPMAGIC): New macro.
20584
205851998-07-24 Tom Tromey <tromey@cygnus.com>
20586
20587 * Makefile.in (gjavah.o): Updated dependencies.
20588 (jcf-dump.o): Likewise.
20589 (all.indirect): Use ../gjavah.
20590 (../gjavah$(exeext)): Likewise.
20591 (clean): Don't remove gjavah.
20592 (clean): Remove parse.c, not java/parse.c.
20593 * Make-lang.in (java): Added gjavah.
20594 (gjavah$(exeext)): New target.
20595 (GJAVAH_SOURCES): New macro.
20596 (java.all.build): Added gjavah.
20597 (java.all.cross): Likewise.
20598 (java.rest.encap): Likewise.
20599 * config-lang.in (compilers, stagestuff): Added gjavah.
20600
206011998-07-23 Tom Tromey <tromey@cygnus.com>
20602
20603 * gjavah.c (java_float_finite): New function.
20604 (java_double_finite): Likewise.
20605 (F_POSITIVE_INFINITY): New macro.
20606 (F_NEGATIVE_INFINITY): Likewise.
20607 (F_NAN): Likewise.
20608 (D_POSITIVE_INFINITY): Likewise.
20609 (D_NEGATIVE_INFINITY): Likewise.
20610 (D_NAN): Likewise.
20611 (print_field_info): Use java_float_finite and java_double_finite.
20612
206131998-07-23 Per Bothner <bothner@cygnus.com>
20614
20615 * parse.y (method_header): Name "this" implicit argument.
20616
206171998-07-22 Per Bothner <bothner@cygnus.com>
20618
20619 * jcf-write.c: Write out LineNumberTable attribute in .class file.
20620 (linenumber_buffer, linenumber_ptr, linenumber_limit): New statics.
20621 (put_linenumber): New function.
20622 (generate_bytecode_insns, generate_classfile): Write line numbers.
20623
206241998-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
20625
20626 * java-tree.h (CALL_EXPR_FROM_PRIMARY_P): Changed in PRIMARY_P.
20627 (lookup_name, build_known_method_ref, build_class_init,
20628 build_invokevirtual, invoke_build_dtable, match_java_method,
20629 build_field_ref, pushdecl_force_head, build_java_binop,
20630 binary_numeric_promotion, build_decl_no_layout,
20631 build_java_arrayaccess, build_newarray, build_anewarray,
20632 build_java_array_length_access, build_java_arraynull_check): New
20633 extern function prototypes.
20634 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
20635 JAVA_THIS_EXPR, CALL_CONSTRUCTOR_P): Macro definition moved in
20636 java-tree.h.
20637 * jcf-parse.c (init_outgoing_cpool): Set current_constant_pool_data_ref
20638 to NULL
20639 * jcf.h (jcf_out_of_synch): New extern function prototype.
20640 * parse.h: Static/global function implemented in parse.y
20641 prototyped and declarations moved at the end of the file.
20642 (DECL_P): Check that the argument isn't null.
20643 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
20644 JAVA_THIS_EXPR): No longer defined here. See java-tree.h
20645 (QUAL_DECL_TYPE): New macro.
20646 (PARAMS): Macro definition removed.
20647 * parse.y: (yyparse, yyerror): Use PROTO instead of PARAMS.
20648 (return_statement:): Call build_return.
20649 (field_access:): Call make_qualified_primary in sub rule.
20650 (method_invocation:): Build method invocation and call
20651 make_qualified_primary when processing primaries.
20652 (java_complete_class): Set IDENTIFIER_SIGNATURE_TYPE by calling
20653 get_type_from_signature.
20654 (java_check_regular_method): Extra integer 0 argument when calling
20655 lookup_java_method2.
20656 (lookup_java_interface_method2): Extra method DECL argument when
20657 calling lookup_java_interface_method2.
20658 (java_method_add_stmt): Set TREE_SIDE_EFFECTS on newly created
20659 COMPOUND_EXPR node.
20660 (java_complete_expand_method): Layout current class iff not
20661 already done. Don't process interface's methods.
20662 (java_complete_expand_method): Use super class only if it
20663 exists. Use current class otherwise.
20664 (make_qualified_primary): New function.
20665 (resolve_expression_name): Process qualified expression or
20666 expression from primary the same way.
20667 (resolve_expression_name): Two last arguments to
20668 resolve_field_access are now NULL_TREEs.
20669 (resolve_field_access): New variable is_static. Local field must
20670 be DECLs. is_static computed on field DECLs only. Append code in
20671 where_found to the field access if necessary. Use QUAL_DECL_TYPE
20672 to initialize field_type.
20673 (resolve_qualified_expression_name): New local variable,
20674 previous_call_static and is_static. Handle primaries with function
20675 calls, casts, array references and `this'. `super' now handled as
20676 `(super_class)this'. Use is_static to clarify boolean expressions.
20677 Added code to handle case where a proper handle is required to
20678 access a field. Use QUAL_DECL_TYPE where applicable.
20679 (maybe_access_field): New function.
20680 (patch_method_invocation_stmt): New arguments primary, where,
20681 is_static. Branch of the test on CALL_EXPR_FROM_PRIMARY_P
20682 deleted. Use `where' as a type to search from if specified. Check
20683 for static method reference where forbidden. Append primary or
20684 current_this to the argument list if not calling constructor nor
20685 static methods.
20686 (check_for_static_method_reference): New function.
20687 (patch_invoke): Layout the class on which new is done if
20688 necessary.
20689 (lookup_method_invoke): Changed format to report errors on
20690 methods.
20691 (qualify_ambiguous_name): New local variable this_found. Now
20692 handle things from primaries. Method call are considered
20693 expression names.
20694 (identical_subpath_p): NULL_TREE arguments to breakdown_qualified
20695 changed into NULLs.
20696 (not_initialized_as_it_should_p): Comply with the new DECL_P.
20697 (java_complete_tree): New case fo RETURN_EXPR. Process function
20698 call arguments in separate function.
20699 (complete_function_arguments): New function.
20700 (build_method_invocation): Don't use CALL_EXPR_FROM_PRIMARY_P
20701 anymore.
20702 (patch_assignment): Take the return function slot into account as
20703 a RHS. Distinguish assignment from a return.
20704 (valid_ref_assignconv_cast_p): Use build_java_argument_signature
20705 when checking methods in interfaces.
20706 (resolve_type_during_patch): NULL argument to unresolve_type_p
20707 instead of NULL_TREE.
20708 (patch_newarray): Fixed typo in comment.
20709 (buid_this): Build a WFL with `kw_this' instead of a FIELD_DECL.
20710 (build_return, patch_return): New functions.
20711 * typeck.c (lookup_java_constructor): Fixed typo in comment.
20712
207131998-07-21 Per Bothner <bothner@cygnus.com>
20714
20715 * constants.c (find_name_and_type_constant, find_fieldref_index,
20716 find_methodref_index): New methods.
20717 * expr.c (build_invoke_non_interface): If flag_emit_class_files,
20718 just return given method. Also, rename to build_known_method_ref.
20719 (expand_invoke): Rename call to build_invoke_non_interface.
20720 * java-tree.h, parse.h: Update prototype.
20721 * parse.y, decl.c, jcf-parse.c: Suppress calls to back-end functions
20722 (such as expand_expr_stmt) if flag_emit_class_files.
20723 * jcf-write.c (RESERVE, OP1, OP2, OP4, NOTE_PUSH, NOTE_POP,
20724 STACK_TARGET, IGNORE_TARGET): New macros.
20725 (code_buffer, code_ptr, code_limit, code_S, code_SP_max): New globals.
20726 (generate_bytecode_insn): New function to generate method's bytecode.
20727 (generate_classfile): Node generate Code attribute for a method.
20728 (code_buffer_grow, push_constant1, push_constant2, push_int_const,
20729 push_long_const, field_op, adjust_typed_op, maybe_wide):
20730 New functions used by generate_bytecode_insn.
20731
20732 * typeck.c (signature_include_return): Remove variable.
20733 (push_java_argument_signature, build_java_argument_signature): New.
20734 (build_java_signature): Use push_java_argument_signature.
20735 * parse.y: Use build_java_argument_signature instead of fiddling
20736 with signature_include_return.
20737
207381998-07-17 Tom Tromey <tromey@cygnus.com>
20739
20740 * gjavah.c (print_c_decl): Always generate JArray<>* for array
20741 types.
20742
20743 * Makefile.in (all.indirect): Added gjavah$(exeext).
20744 (gjavah$(exeext)): Added $(exeext).
20745 (clean): Likewise.
20746
207471998-07-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
20748
20749 * class.c (layout_class): Call to java_layout_parsed_class replace
20750 by safe_layout_class.
20751 * expr.c (build_java_array_length_access): Removed static storage
20752 class in the function definition.
20753 (build_java_arraynull_check): Likewise.
20754 Also fixed typos in two comments.
20755 * lex.c (java_init_lex): Initialize static global kw_length.
20756 (java_lex): Use BUILD_OPERATOR on RETURN_TK.
20757 * lex.h (JAVA_FLOAT_RANGE_ERROR): Add extra argument to
20758 java_lex_error.
20759 (JAVA_INTEGRAL_RANGE_ERROR): Likewise.
20760 * parse.h (resolve_no_layout): New static function declaration.
20761 (get_identifier_in_static): Declaration removed.
20762 (java_layout_parsed_class): Function name declaration changed to
20763 safe_layout_class.
20764 (build_newarray_node, patch_newarray, resolve_type_during_patch,
20765 not_initialized_as_it_should_p, build_this): New static function
20766 declarations.
20767 (pushdecl_force_head, build_java_binop, int_fits_type_p,
20768 binary_numeric_promotion, stabilize_reference,
20769 build_decl_no_layout, build_java_arrayaccess): Extern function
20770 declarations moved into their own section.
20771 (build_newarray, build_anewarray, build_java_array_length_access,
20772 build_java_arraynull_check): New extern function declarations.
20773 (UNARY_PLUS_EXPR): Macro renamed into JAVA_UNARY_PLUS_EXPR.
20774 (JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, JAVA_THIS_EXPR): New
20775 fake tree codes.
20776 (CALL_CONSTRUCTOR_P): New macro.
20777 * parse.y (kw_length): New static global tree node.
20778 (return_statement): Tagged <node>.
20779 (RETURN_TK): Tagged <operator>.
20780 (variable_declarator_id:): Build variable declaration with an
20781 empty initialization value if a syntax error was found in the
20782 initialization part of the variable declaration.
20783 (statement_without_trailing_substatement:): return_statement: now
20784 uses the default rule.
20785 (return_statement:): Temporarily fixed to return NULL_TREE.
20786 (primary_no_new_array:): Call build_this when THIS_TK was parsed.
20787 (class_instance_creation_expression:): Class creation rules now
20788 call build_method_invocation upon reduction.
20789 (array_creation_expression:): Rules call build_newarray_node upon
20790 reduction.
20791 (dim_exprs:): Build a list of dimension expressions.
20792 (dim_expr:): Store location of the OSB_TK in the dimension
20793 expression node.
20794 (method_invocation:): Added a new error rule.
20795 (build_unresolved_array_type): WFL argument may also be an array
20796 on a primitive type. Name of the argument changed to reflect this.
20797 (method_declarator): Insert argument type at the beginning of the
20798 argument type list and later reverse the list.
20799 (unresolved_type_p): Argument 'returned' may be optionally
20800 NULL_TREE.
20801 (java_layout_class_from_source): Function renamed
20802 safe_layout_class.
20803 (resolve_and_layout): Now call resolve_no_layout and
20804 safe_layout_class.
20805 (resolve_no_layout): New function.
20806 (purify_type_name): New function.
20807 (complete_class_report_errors): Call purify_type_name during error
20808 report on a type not found.
20809 (process_imports): error_found local variable doesn't need to be
20810 initialized to zero.
20811 (declare_local_variables): New local type_wfl. Fixed typo in error
20812 message. type_wfl assigned to unresolved type and used to register
20813 incomplete type. Build a WFL around the variable initialization
20814 statement so that debug info can be generated on it.
20815 (source_start_java_method): Reverse argument list after they've
20816 been processed.
20817 (current_this): New static global variable.
20818 (java_complete_expand_methods): Set current_this when appropriate.
20819 (resolve_expression_name): Build correct static and non static
20820 field access bearing a simple name.
20821 (resolve_field_access): Resolve the length field of arrays. Handle
20822 f.m() cases.
20823 (patch_method_invocation_stmt): Set the type of the method
20824 invocation to error_mark_node. This value is later overridden by a
20825 valid type, if any. Don't handle qualified constructor invocation
20826 as qualified method invocation. Call lookup_method_invoke with its
20827 new flag. It's no longer necessary to access the selected method
20828 as the value of a tree list. Handle constructor invocation.
20829 (patch_invoke): Reverse argument list when invoking non interface
20830 methods. Insert call to new as the first argument of the
20831 constructor.
20832 (invocation_mode): Return a INVOKE_STATIC is the invoked method is
20833 defined within a final class. Return INVOKE_STATIC if the invoked
20834 method is a constructor.
20835 (lookup_method_invoke): New lc argument is a flag to indicate a
20836 constructor lookup. Now handle constructor lookup. Choose the most
20837 specific method in case several were matching the invocation
20838 requirements. Return a method decl instead of a tree list featuring
20839 one single method decl element.
20840 (refine_accessible_methods_list): New lc flag argument to
20841 indicate that a constructor is being looked up.
20842 (not_initialized_as_it_should_p): New function.
20843 (java_complete_tree): Now process fake tree codes
20844 JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR and JAVA_THIS_EXPR. Call
20845 save_expr on resolved function call arguments. Case on
20846 UNARY_PLUS_EXPR changed into a case on JAVA_UNARY_PLUS_EXPR.
20847 (patch_assignment): LHS can be a field access expression. When
20848 dealing with reference, lhs_type is the promoted type of the
20849 rhs_type, not the RHS. Use not_initialized_as_it_should_p where
20850 applicable.
20851 (operator_string): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
20852 (patch_binop): Use not_initialized_as_it_should_p where
20853 applicable.
20854 (build_unaryop): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
20855 (patch_unaryop): Likewise. And use not_initialized_as_it_should_p
20856 where applicable.
20857 (resolve_type_during_patch): New function.
20858 (patch_cast): Call resolve_type_during_patch to resolve type and
20859 report error accordingly.
20860 (patch_array_ref): Use not_initialized_as_it_should_p where
20861 applicable. Array base expression is saved before being
20862 used. Promote the type of an array elements if it contains non
20863 builtin types.
20864 (build_newarray_node, patch_newarray, build_this): New functions.
20865
208661998-07-16 Tom Tromey <tromey@cygnus.com>
20867
20868 * gjavah.c (print_c_decl): UTF8_GET increments pointer; don't
20869 increment it in `for' statement.
20870 (print_field_info): If number is inf or nan, don't print it.
20871 (print_method_info): If method name is `delete', just ignore it.
20872 (print_c_decl): Special-case jstringArray.
20873
20874 * gjavah.c (help): New function.
20875 (no_argument): New function.
20876 (usage): Changed text.
20877 (main): Rewrote argument handling. Now handles -v, --help,
20878 --version.
20879 (version): New function.
20880 (found_error): New global.
20881 (main): Return found_error.
20882 (generate_access): Set found_error.
20883 (print_c_decl): Likewise.
20884
208851998-07-15 Tom Tromey <tromey@cygnus.com>
20886
20887 * gjavah.c (print_c_decl): Don't print "," when examining field.
20888 Skip type name when looking at "[L" types.
20889 (process_file): Now static.
20890 (generate_access): Now returns int.
20891 (last_access_generated): New global.
20892 (process_file): Clear last_access_generated; make multiple passes
20893 over the class.
20894 (print_field_info): Just return if generate_access returns true.
20895 (print_method_info): Likewise. Also, allow <init> functions to
20896 pass through.
20897 (print_c_decl): Added is_init argument. Print constructors
20898 properly.
20899 (print_cxx_classname): Use UTF8_GET to extract characters from
20900 string.
20901 (print_base_classname): New function.
20902 (print_class_decls): New function.
20903 (process_file): Use it.
20904 (utf8_cmp): New function.
20905
209061998-07-13 Nick Clifton <nickc@cygnus.com>
20907
20908 * lang-options.h: Format changed to match changes in gcc/toplev.c
20909 to implement a --help option.
20910
209111998-07-10 Brendan Kehoe <brendan@cygnus.com>
20912
20913 * decl.c (init_decl_processing): Revert change to dtable_type.
20914
209151998-07-09 Per Bothner <bothner@cygnus.com>
20916
20917 * java-tree.h (CLASS_P): Changed DECL_LANG_FLAG_7 -> TYPE_LANG_FLAG_4.
20918
209191998-07-08 Brendan Kehoe <brendan@cygnus.com>
20920
20921 * decl.c (init_decl_processing): Set CLASS_LOADED_P on dtable_type.
20922
20923 * lang.c (lang_init): Default flag_exceptions to 1, without
20924 checking to see if it's 2 first.
20925
209261998-07-08 Jeffrey A Law (law@cygnus.com)
20927
20928 * constants.c: Include "system.h".
20929 * decl.c: Likewise.
20930 * lang.c (flag_new_exceptions): Get via extern now.
20931 (lang_init_options): New functions. Turn on flag_new_exceptions.
20932
209331998-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
20934
20935 * lex.c (java_lex): Return 0 when we see an invalid character in
20936 the input.
20937
20938 * lex.c (java_read_char): Specify extra argument when calling
20939 java_lex_error.
20940 (java_read_unicode, java_parse_end_comment,
20941 java_parse_escape_sequence): Likewise,
20942 (java_lex): Specify extra argument when calling
20943 java_lex_error. Test that IDs are beginning with a legal character
20944 for IDs. Handle invalid characters with an error message and a
20945 call to java_lex_error.
20946 (java_lex_error): Adjust column position by new argument
20947 `forward'. Issue an error even if in the middle of reporting an
20948 other error.
20949
209501998-07-07 Brendan Kehoe <brendan@cygnus.com>
20951
20952 * jcf-io.c (find_class): Zero out BUFFER before we use it, since
20953 we don't explicitly put a null pointer when we're copying it.
20954
209551998-07-07 Tom Tromey <tromey@cygnus.com>
20956
20957 * gjavah.c (print_cxx_classname): New function.
20958 (super_class_name): Likewise.
20959 (print_super_fields): Removed.
20960 (in_super): Removed.
20961 (print_field_info): Never generate #defines.
20962 (print_c_decl): Changed generated types to match JNI. No longer
20963 print class name before method name.
20964 (print_method_info): Print "static" before static methods.
20965 Print "virtual" before non-final methods.
20966 (usage): Use exit(1), not exit(-1).
20967 (main): Likewise.
20968 (print_field_info): Use %.17g to print a double.
20969 (last_access): New globals.
20970 (process_file): Initialize last_access.
20971 (usage): Now static.
20972 (ACC_VISIBILITY): New define.
20973 (generate_access): New function.
20974 (print_field_info): Call it.
20975 (print_method_info): Likewise. Also, generate information for all
20976 methods, not just native methods. Return void.
20977 (print_c_decl): Return void.
20978 (print_field_info): Return void.
20979
209801998-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
20981
20982 * Makefile.in (JAVABISONFLAGS): Specific flag for bison when
20983 processing the jc1 grammar file. Prefix bison functions and
20984 variables with java_.
20985 (parse.c): Dependencies on parse.h and lex.h
20986 * expr.c (build_java_arrayaccess): Function now global.
20987 * java-tree.h: Comment reorganized to carry on previous
20988 classification effort.
20989 (RESOLVE_EXPRESSION_NAME_P, RESOLVE_PACKAGE_NAME_P,
20990 RESOLVE_TYPE_NAME_P): New flags on WFLs.
20991 * jcf-parse.c (parse_source_file): java_parse_source_file renamed
20992 java_parse (new prefix java_ generated by bison).
20993 (java_layout_parsed_class, java_register_parsed_class): Function
20994 call removed.
20995 (yyparse): Removed unnecessary call to init_outgoing_cpool.
20996 * lex.c (static tree wfl_op): Variable deleted.
20997 (java_init_lex): Initialize kw_super and kw_this. Initialize more
20998 ctxp fields to NULL_TREE.
20999 (java_lex): No longer create WFL for operators. Filename caching
21000 mechanism deleted. Call BUILD_OPERATOR for `.', '(', '['. Strings
21001 created as STRING_CST and later expanded. Removed extra argument
21002 to BUILD_OPERATOR and BUILD_OPERATOR2. Build operators for THIS
21003 and SUPER.
21004 (build_wfl_node): Removed code in comments.
21005 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): No longer build a WFL but
21006 store token and location data in the current bison token.
21007 * parse.h: Removed pre-processor based symbol prefixes hack. Moved
21008 static/extern function declaration at the beginning of the file.
21009 (struct qualification): Data structure definition deleted.
21010 (RESOLVE_CHAIN_REMAINDER): Macro definition deleted.
21011 (qualify_ambiguous_name): Function declaration modified. Function
21012 now returns nothing.
21013 (build_array_ref, patch_array_ref, make_qualified_name,
21014 resolve_qualified_expression_name, maybe_generate_clinit,
21015 resolve_field_access): New static function declarations.
21016 (build_java_arrayaccess): New extern function declaration.
21017 (enum { RESOLVE_EXPRESION_NAME...}): Enum deleted.
21018 (CALL_EXPR_PRIMARY): Macro deleted.
21019 (EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION): New macros.
21020 (struct parser_ctxt): Field initialized_final
21021 removed. non_static_initialized, static_initialized: New fields.
21022 * parse.y (static tree kw_super, static tree kw_this): New global
21023 static.
21024 (%union): tree wfl field of operator member replaced by int
21025 location. WFLs are non longer created for operators.
21026 (OSB_TK, DOT_TK, THIS_TK, SUPER_TK): Tagged <operator>.
21027 (qualified_name:): Now calls make_qualified_name to build the
21028 identifier.
21029 (type_declaration:): Consider generating <clinit> when class
21030 parsing completed.
21031 (variable_declarator:): Directly build an assignment node when the
21032 variable is initialized when declared.
21033 (this_or_super:): Build a WFL and set current location when THIS
21034 or SUPER are parsed.
21035 (expression_statement:): Wrap statement around a WFL.
21036 (primary_no_new_array:): Fixed typo. Changed value returned by
21037 THIS_TK because of its new type (temporary).
21038 (dim_exprs:): Temporary fix because of OSB_TK's new type.
21039 (field_access:): Build qualified name with SUPER.
21040 (method_invocation:): Fixed returned value because of SUPER's new
21041 type.
21042 (array_access:): Use OSB_TK location information.
21043 (post_increment_expression:, post_decrement_expression:,
21044 unary_expression:, pre_increment_expression:,
21045 pre_decrement_expression:, unary_expression_not_plus_minus:,
21046 cast_expression:, multiplicative_expression:,
21047 additive_expression:, shift_expression:, relational_expression:,
21048 equality_expression:, and_expression:, exclusive_or_expression:,
21049 inclusive_or_expression:, conditional_and_expression:,
21050 conditional_or_expression:, assignment:): Use new location/token
21051 information available on operators.
21052 (create_class): Set super_decl_type to NULL_TREE when processing
21053 java.lang.Object.
21054 (register_fields): Field initialization is now a MODIFY_EXPR
21055 node. Chain initialization code to the matching lists (according
21056 to the field declaration modifiers).
21057 (maybe_generate_clinit): New function.
21058 (method_header): Don't set method's DECL_NAME to a WFL when adding
21059 methods to java.lang.Object.
21060 (resolve_and_layout): Now can return NULL_TREE if the type
21061 resolution fails. Otherwise, return the class DECL instead of its
21062 TYPE.
21063 (check_method_redefinition): Don't patch method DECL_NAME if it
21064 belongs to java.lang.Object.
21065 (process_imports): Simply assign error_found to the value returned
21066 by check_pkg_class_access.
21067 (declare_local_variables): Don't use their init statements (if
21068 any) when parsing error were previously found. Reuse MODIFY_EXPR
21069 build during parsing as an init statement.
21070 (java_method_add_stmt): Now return the current method body.
21071 (java_layout_parsed_class, java_register_parsed_class): Functions
21072 removed.
21073 (java_complete_expand_methods): Initialize the constant pool on a
21074 per class basis. Layout the classes before expanding their method
21075 bodies. Don't try expand artificial constructor code if error were
21076 found. Make the classes data and register them if no error were
21077 found.
21078 (java_complete_expand_method): Retrieve an artificial constructor
21079 argument list before entering its body. Assign the top block to
21080 the artificial constructor function body and set types of declared
21081 blocks and compound statements to void. Walk method body if not an
21082 artificial constructor.
21083 (make_qualified_name, cut_identifier_in_qualified): New functions.
21084 (resolve_expression_name): Fixed comments. Save/restore the
21085 current class CLASS_LOADED_P flag value. Build non qualified
21086 static field access and handle qualified expression names.
21087 (resolve_field_access, resolve_qualified_expression_name): New
21088 functions.
21089 (patch_method_invocation_stmt): Use the new expression resolution
21090 scheme, calling resolve_field_access when the function call is
21091 resolved as an expression.
21092 (qualify_ambiguous_name): Function rewritten to work on qualified
21093 expression produced by make_qualified_name.
21094 (java_complete_tree): Promote type when function's argument are
21095 RECORD_TYPEs. While processing the MODIFY_EXPR case: don't patch
21096 the assignment to discover further errors if RHS is a expression
21097 name that fails to evaluate. Declare LHS initialized even though
21098 the assignment failed. Don't use the location variable and removed
21099 extra argument in patch function calls. Now handle the ARRAY_REF
21100 case and build internal string representation when STRING_CSTs are
21101 walked.
21102 (build_method_invocation): Don't wrap function call around a WFL.
21103 (build_assignment): Likewise. Use the operator location
21104 information.
21105 (patch_assignment): Handle array access LHSs. Handle error
21106 provenance, resulting in a better error report.
21107 (build_binop): Use op_location from operator as binop location
21108 information.
21109 (build_unaryop, build_incdec, build_cast): Likewise.
21110 (patch_binop): Extract location information from the node. Fixed
21111 typo in error message.
21112 (patch_unary_op): Extract location information from the node.
21113 (build_array_ref, patch_array_ref): New functions.
21114
211151998-07-01 Tom Tromey <tromey@cygnus.com>
21116
21117 * expr.c (expand_java_INSTANCEOF): Changed calling convention to
21118 match _Jv_IsInstanceOf.
21119 * decl.c (init_decl_processing): Use _Jv_NewArray, not
21120 soft_newarray. Use _Jv_IsInstanceOf, not soft_instanceof.
21121
211221998-06-30 Tom Tromey <tromey@cygnus.com>
21123
21124 * decl.c (init_decl_processing): Functions are now named
21125 _Jv_MonitorEnter and _Jv_MonitorExit, and return jint.
21126
211271998-06-29 Per Bothner <bothner@cygnus.com>
21128
21129 * java-tree.h (load_class): Add prototype.
21130 * class.c (is_compiled_class): Add missing arg to load_class.
21131 * expr.c (expand_java_NEW): Call load_class.
21132 * parse.y (process_import): Removed bogus use of void return value.
21133
211341998-06-25 Per Bothner <bothner@cygnus.com>
21135
21136 * decl.c, java-tree.h (soft_athrow_node): Renamed to soft_node.
21137 Function name is "_Jv_Throw" instead of "soft_athrow".
21138 * decl.c, java-tree.h (soft_new_node): Renamed to alloc_object_node.
21139 Function name is "_Jv_AllocObject" instead of "soft_new".
21140 Takes an extra parameter (object size).
21141 * expr.c: Update calls.
21142
211431998-06-24 Per Bothner <bothner@cygnus.com>
21144
21145 * lex.c (java_get_line_col): Handle end-of-file.
21146 * except.c (expand_end_java_handler): Handle null type (i.e. finally).
21147
211481998-06-24 Andrew MacLeod <amacleod@cygnus.com>
21149
21150 * lang.c (lang_init): Make -fexceptions the default.
21151 * except.c (maybe_start_try, maybe_end_try): Don't do anything if
21152 exception handling is not turned on.
21153
211541998-06-23 Andrew MacLeod <amacleod@cygnus.com>
21155
21156 * lang.c (flag_new_exceptions): Make this this default.
21157 * decl.c (end_java_method): Call emit_handlers.
21158 * except.c (method_init_exceptions): Set language code and version.
21159 (expand_start_java_handler): Enable exception, and call
21160 expand_eh_region_start.
21161 (expand_end_java_handler): Enable exception, and set up catch blocks.
21162 (emit_handlers): New routine to generate the saved handlers.
21163 * java-except.h (emit_handlers): Add prototype.
21164
211651998-06-12 Per Bothner <bothner@cygnus.com>
21166
21167 We used to have three different representations of the constant pool:
21168 the CPool structure, the tree_constant_pool, and the constructures
21169 used to build the Class object (which may need class and string
21170 constants) in compiled code. None were appropriate for compiling
21171 to .class files, so I did a major overhaul.
21172
21173 First, the tree_constant_pool array was removed. Things were
21174 modified to the CPool structure in the JCF could be used.
21175 Second, a "capacity" field was added to the CPool, and functions
21176 written to search for a matching constant, adding one if not found.
21177 The code that generated the Class object was changed to use a CPool.
21178 The actual TREE_LISTs used to build the CONSTRUCTORs used for
21179 the static Class object are now only in build_constants_constructor.
21180 Finally, I wrote code which can generate a .class file (including its
21181 constant pool) from the RECORD_TYPE of a class. This is a big step
21182 on the way to compiling Java source into .class files.
21183
21184 * jcf-write.c: New file. Writes out a RECORD_TYPE as a .class file.
21185 * Makefile.in (JAVA_OBJS): Added jcf-write.o.
21186
21187 * java-tree.h (CPOOL_UTF, CONSTANT_ResolvedFlag,
21188 CONSTANT_ResolvedString, CONSTANT_ResolvedClass): New macros.
21189 (NAME_AND_TYPE_NAME, NAME_AND_TYPE_SIGNATURE, COMPONENT_REF_NAME,
21190 COMPONENT_REF_NAME_AND_TYPE, COMPONENT_REF_SIGNATURE): Redefined.
21191 (COMPONENT_REF_CLASS): Replaced by COMPONENT_REF_CLASS_INDEX.
21192 (lang_type): Removed constant_pool field.
21193 * jcf.h (CPool): Renamed size to count. Added field capacity.
21194 (CPOO_COUNT, CPOOL_UINT, CPOOL_USHORT1, CPOOL_USHORT2,
21195 CPOOL_FINISH, CPOOL_INIT, CPOOL_REINIT): New macros.
21196 Rewrite some of the old JCF_XXX in terms of CPOOL_XXX macros.
21197
21198 * constants.c (current_constant_pool_tags, current_constant_pool_data,
21199 current_constant_pool_length), java-tree.h: Replaced by outgoing_cpool.
21200 * constants.c (build_constants_constructor): Use new outgoing_cpool.
21201 (set_constant_entry, find_constant1, find_constant2,
21202 find_class_constant, count_constant_pool_bytes, write_constant_pool,
21203 find_utf8_constant, find_class_or_string_constant): New functions.
21204
21205 * jcf-parse.c (load_class): Don't save/restore tree-constant_pool.
21206 (get_constant): Use current_jcf.cpool instead of tree_constant_pool.
21207 (give_name_to_class, get_class_constant): Likewise.
21208 * jcf-parse.c, java-tree.h (tree_constant_pool): Removed.
21209 (get_name_and_type_constant, get_ref_constant): Removed.
21210 * parse.h (parser_ctxt): Remove field tree_constant_pool.
21211 * parse.y: Don't save/restore tree_constant_pool.
21212 * verify.c (verify_jvm_instructions): Update for new approach.
21213 * expr.c (expand_invoke, expand_java_field_op): Likewise.
21214
21215 * lang-options.h: Added -femit-class-file, -femit-class-files.
21216 * lang.c (flag_emit_class_files), java-tree.h: New flag.
21217 (lang_f_options): Added "emit-class-file(s)".
21218
21219 * expr.c (build_java_arrayaccess): Generate more efficient array
21220 bounds checking, by using unsigned compare.
21221
21222 * expr.c (expand_invoke): Re-arrange error checks to make more robust.
21223
212241998-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
21225
21226 * parse.h: New comment on the handling of unresolved type
21227 identifiers. JDEPs are now part of the jdep_code enum.
21228 (typedef struct jdep): Now use enum jdep_code or int, depending on
21229 availability. Both are narrowed down to an 8 bits bitfield.
21230 (CALL_EXPR_PRIMARY): Fixed comment.
21231
212321998-06-10 Tom Tromey <tromey@cygnus.com>
21233
21234 * Make-lang.in (java): Added gjavac and jvgenmain.
21235 (java.start.encap): Depend on gjavac.
21236 (java.rest.encap): Depend on jvgenmain.
21237
21238 * Make-lang.in (JAVA_INSTALL_NAME): Name is gjavac, not c++.
21239 (JAVA_CROSS_NAME): Likewise.
21240 (java.all.build): Depend on jvgenmain and gjavac.
21241 (java.all.cross): Depend on jvgenmain and gjavac-cross.
21242 (jvgenmain$(exeext)): New target.
21243 (java.install-common): Wrote.
21244 * config-lang.in (compilers, stagestuff): Added gjavac and
21245 jvgenmain.
21246
212471998-06-10 Dave Brolley <brolley@cygnus.com>
21248
21249 * lang.c (lang_decode_option): New argc/argv interface.
21250
212511998-06-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
21252
21253 * ChangeLog: Fixed entries not compliant with the Gnu Coding Standard.
21254 * decl.c (build_decl_no_layout): New function.
21255 * expr.c (java_lang_expand_expr): Layout declarations found in
21256 blocks before they're pushed.
21257 * jcf-parse.c (load_class): Save current line when parsing class
21258 file.
21259 (parse_source_file): Register class before expanding their
21260 methods.
21261 * lang.c (put_decl_node): Produce `null' when `void *' is
21262 processed.
21263 * lex.c (static tree wfl_op): New static global, for error report
21264 on casts.
21265 (java_init_lex): wfl_operator and wfl_op initialized
21266 here. Filename caching added for wfl_op. Return wfl_op when `(' is
21267 parsed.
21268 * parse.h (build_unaryop, build_incdec, patch_unaryop, build_cast,
21269 patch_cast, valid_ref_assignconv_cast_p, can_cast_to_p,
21270 build_unresolved_array_type): New static function definitions.
21271 (build_decl_no_layout): New extern function declared.
21272 (OBSOLETE_MODIFIER_WARNING): Report error only if the WFL of the
21273 faulty modifier exists.
21274 (TYPE_INTERFACE_P, TYPE_CLASS_P): New macros.
21275 (ERROR_CAST_NEEDED_TO_INTEGRAL): Error message tuned.
21276 (UNARY_PLUS_EXPR): New fake operator.
21277 (struct parser_ctxt): New field osb_number.
21278 * parse.y (static tree wfl_operator): New static WFL for operator
21279 bound error messages.
21280 (DECR_TK, INCR_TK): Moved.
21281 (OP_TK): Tagged <operator>.
21282 (array_type:): Now call build_unresolved_array_type.
21283 (dim_expr:): Count the number of '[' seen.
21284 (post_increment_expression, post_decrement_expression,
21285 pre_increment_expression, pre_decrement_expression,
21286 unary_expression_not_plus_minus, unary_expression:): Actions are
21287 now building the corresponding unary expressions.
21288 (cast_expression:): Actions are now building cast expressions.
21289 (build_unresolved_array_type): New function.
21290 (create_interface): Reset the number of declared interfaces.
21291 (create_class): Likewise.
21292 (method_header): Methods declared within the scope of an interface
21293 are now implicitly set public and abstract.
21294 (java_complete_class): Variable's and parameter's type are patched
21295 with a promoted type.
21296 (declare_local_variables): Resolved non builtin types are promoted
21297 before being used to build a variable decl. Removed type patch
21298 posted on variable initialization statement.
21299 (source_start_java_method): Use build_decl_no_layout to build the
21300 decl of a parameter of incomplete type.
21301 (java_register_parsed_class): Process interfaces too. Call
21302 rest_of_decl_compilation on each processed class declarations.
21303 (java_complete_expand_methods): Don't attempt to expand things in
21304 interfaces.
21305 (java_complete_tree): Process CONVERT_EXPR, even though it always
21306 has a type. Propagate error_mark_node to node's type too. Promote
21307 method's call argument type and return error_mark_node if
21308 argument's completion didn't work. MODIFY_EXPR can have a WFL as a
21309 RHS. Fixed bug in the handling of bogus RHS of a fixed type. Now
21310 handle unary operator nodes.
21311 (build_assignment): Added comment.
21312 (print_int_node): New function.
21313 (patch_assignment): New second argument. New error handling. Use
21314 print_int_node. Handle references. Use can_cast_to_p to issue
21315 different error message according to the context and check upon
21316 the initialization of the RHS.
21317 (can_cast_to_p, valid_ref_assignconv_cast_p): New functions.
21318 (operator_string): Handle more operators.
21319 (patch_binop): No longer use a function static
21320 wfl_operator. Improved error message on shift distance.
21321 (build_unaryop, build_incdec, build_cast, patch_unaryop,
21322 patch_cast): New functions.
21323
213241998-06-05 Per Bothner <bothner@cygnus.com>
21325
21326 * jvspec.c: New file.
21327 * Make-lang.in: New rules to build gjavac from jvspec.c and ../gcc.c.
21328
21329 * java-tree.h (identifier_subst): Add declaration.
21330
213311998-06-04 Tom Tromey <tromey@cygnus.com>
21332
21333 * jvgenmain.c (main): Generate call to JvRunMain.
21334
21335 * class.c (make_class_data): Push value for "sync_info" field.
21336 * decl.c (init_decl_processing): Push "sync_info" field.
21337
213381998-06-03 Per Bothner <bothner@cygnus.com>
21339
21340 * typeck.c (build_java_array_type): Set TYPE_NAME to actual
21341 Java (source) name, not signature.
21342 Set TYPE_ALIGN to (at least) that of element_type.
21343
213441998-06-02 Per Bothner <bothner@cygnus.com>
21345
21346 * class.c: Moved classname-mangling-rekated code to ...
21347 * mangle.c: ... this new file.
21348 * jvgenmain.c: New program (needs mangle.c) to generate main program.
21349 * Makefile.in: Update for above changes.
21350
213511998-06-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
21352
21353 * expr.c (truthvalue_conversion): Convert integer and floating
21354 point value to their truth value.
21355 * lex.c (java_lex): Handle the `null' literal.
21356 * parse.h (JREFERENCE_TYPE_P, DECL_P): New macros.
21357 (ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
21358 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED):
21359 New macros.
21360
21361 * parse.y: Reorganization/documentation on token declaration.
21362 (binop_lookup[]): New added new tree codes.
21363 (relational_expression): Build corresponding binary operators.
21364 (equality_expression, conditional_and_expression,
21365 conditional_or_expression): Likewise.
21366 (java_complete_class): Fix crash in debug message.
21367 (java_complete_tree): Check initialization of method call
21368 arguments. Further bogus node evaluation to detect more error
21369 during assignments. Handles more binary operators.
21370 (patch_assignment): Use DECL_P.
21371 (build_binop): Fix crash when using URSHIFT_EXPR, a Java only tree
21372 code.
21373 (operator_string): Handle more case. Compacted source.
21374 (patch_binop): Changed function comment. Checking for
21375 uninitialized first operand takes the compound assignment into
21376 account and uses DECL_P. Checking for uninitialized second operand
21377 delayed to routine's end. Use macros to issue type bound error
21378 messages and issue messages on both operands if their types are
21379 different. Force fixed type into node. Handle all binary
21380 operators.
21381
213821998-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
21383
21384 * java-tree.h (COMPOUND_ASSIGN_P, INITIALIZED_P): New macros.
21385 * lex.c (java_lex): Use BUILD_OPERATOR and BUILD_OPERATOR2 to
21386 build operator node and return tokens.
21387 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): New macros.
21388 * parse.h (java_complete_tree): Changed returned type in prototype.
21389 (build_method_invocation, build_assignment, patch_assignment,
21390 patch_binop): New static function declarations.
21391 (JFLOAT_TYPE_P, JNUMERIC_TYPE_P, JPRIMITIVE_TYPE_P, JSTRING_P,
21392 BUILD_EXPR_WFL): New macros.
21393 * parse.y (enum tree_code binop_lookup[]): New static for token to
21394 TREE_CODE lookup.
21395 (%union): Parser union has new sub-structure `operator'.
21396 (ASSIGN_TK, MULT_ASSIGN_TK, DIV_ASSIGN_TK, REM_ASSIGN_TK,
21397 PLUS_ASSIGN_TK, MINUS_ASSIGN_TK, LS_ASSIGN_TK, SRS_ASSIGN_TK,
21398 ZRS_ASSIGN_TK, AND_ASSIGN_TK, XOR_ASSIGN_TK, OR_ASSIGN_TK,
21399 ASSIGN_ANY_TK): Tokens tagged `operator'.
21400 (EQ_TK, GTE_TK, ZRS_TK, SRS_TK, GT_TK, LTE_TK, LS_TK, BOOL_AND_TK,
21401 AND_TK, BOOL_OR_TK, OR_TK, INCR_TK, PLUS_TK, DECR_TK, MINUS_TK,
21402 MULT_TK, DIV_TK, XOR_TK, REM_TK, NEQ_TK, NEG_TK, REL_QM_TK,
21403 REL_CL_TK, NOT_TK, LT_TK): Tokens tagged `operator'.
21404 (assignment_operator:): Rule tagged `operator'.
21405 (expression_statement:): Re-installed default rule.
21406 (method_invocation:): Sub rules call build_method_invocation.
21407 (postfix_expression:): Don't attempt to resolve name here. Just
21408 return an ID.
21409 (multiplicative_expression:): Sub-rules build corresponding binop
21410 expression node.
21411 (additive_expression:, shift_expression:, and_expression:,
21412 exclusive_or_expression:, inclusive_or_expression:): Likewise.
21413 (assignment:): Sub rule invoke build_assignment.
21414 (assignment_operator:): Default rules on sub rules.
21415 (force_error): Added documentation on this variable.
21416 (declare_local_variables): Build initialization calling
21417 build_assignment.
21418 (expand_start_java_method): Removed unused rtx declaration. Mark
21419 arguments as already initialized.
21420 (java_method_add_stmt): Type of built COMPOUND_EXPR set to NULL.
21421 (java_complete_expand_methods): Don't process next method if
21422 completion of the previous one triggered errors.
21423 (java_complete_expand_method): Call source_end_java_method if no
21424 error were found during completion.
21425 (resolve_expression_name): Use IDENTIFIER_LOCAL_VALUE to retrieve
21426 locals declaratilon. Handle names found within a class. Return
21427 error_mark_node when things aren't found.
21428 (patch_method_invocation_stmt): Return error_mark_node on failures.
21429 (patch_invoke): Removed unused local. Return the correct node.
21430 (java_complete_tree): Now returns a value. The BLOCK section binds
21431 local identifiers and the type of a BLOCK is now void. Assign the
21432 result of operand completion on COMPOUND_EXPR. Assign the
21433 encapsulated node of a WFL to the result of its completion, except
21434 when the node is an identifier. Now handle MODIFY_EXPR and several
21435 binary operators. Return error_mark_node on errors.
21436 (build_method_invocation, build_assignment, patch_assignment,
21437 build_binop, operator_string, patch_binop): New functions.
21438 * typeck.c (binary_numeric_promotion): New function.
21439
214401998-05-21 Per Bothner <bothner@cygnus.com>
21441
21442 * class.c (identifier_subst): New convenience wrapper for ident_subst.
21443 Replace most uses of ident_subst by identifier_subst.
21444
21445 * class.c (push_class_static_dummy_field): Removed function.
21446 (build_class_ref): Find Class object decl by looking up "CNAME.class",
21447 instead of looking got "class" static field. Create that decl here.
21448 (class_identifier_node): Removed; no longer needed.
21449 (init_class_processing): Don't init class_identifier_node.
21450 * jcf-parse.c (jcf_parse): Don't call push_class_static_dummy_field.
21451 Do nreverse 0 times (instead of twice) for Object and Class.
21452 * parse.y (java_layout_parsed_class): No push_class_static_dummy_field.
21453
214541998-05-20 Per Bothner <bothner@cygnus.com>
21455
21456 * jcf-parse.c (parse_class-file): Set lino to smallest line number,
21457 while initializing linenumber_count and linenumber_table.
21458 Do it before init_function_start (which calls emit_line_note).
21459 * expr.c (expand_byte_code): Don't need to clear lineno here.
21460
214611998-05-18 Tom Tromey <tromey@cygnus.com>
21462
21463 * class.c (append_gpp_mangled_type): If `qualifications' is >=9,
21464 then mangle number as _N_.
21465
21466 * class.c (mangle_class_field): New function.
21467 (build_class_ref): Set assembler name of class reference using
21468 mangle_class_field.
21469 (push_class_static_dummy_field): Likewise.
21470
214711998-05-17 Michael Tiemann <tiemann@cygnus.com>
21472
21473 * parse.y (source_start_java_method): Use TREE_SET_CODE instead
21474 of assigning to TREE_CODE. The latter method exploits a feature
21475 of GCC that is not ANSI compliant.
21476
214771998-05-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
21478
21479 * decl.c (pushdecl_force_head): New function.
21480 (pushlevel): Removed conditional printf.
21481 (complete_start_java_method): Don't enter local variable scope if
21482 function is compiled from source code.
21483 * expr.c: parse.h now included
21484 (java_lang_expand_expr): New function.
21485 * jcf-io.c (find_class): Use SOURCE_FRONTEND_DEBUG instead of
21486 printf. Terminate buffer when doing directories.
21487 * jcf-parse.c (parse_source_file): Call lang_init_source before
21488 parsing and before code generation.
21489 * jcf.h (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally
21490 use printf if the macro is defined.
21491 * lang.c (lang_init): Install lang_expand_expr hook on
21492 java_lang_expand_expr.
21493 (java_dummy_print): New function.
21494 (lang_init_source): New function.
21495 * lex.c (java_lex): Remember location of an opening brace at the
21496 second nesting level.
21497 (java_is_eol): Unget character seen after a CR if it is EOF.
21498 * parse.h: Now includes lex.h
21499 (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally use
21500 printf if the macro is defined.
21501 (expand_start_java_method, build_expr_block, enter_block,
21502 exit_block, lookup_name_in_blocks, maybe_absorb_scoping_blocks):
21503 New static function declarations.
21504 (pushdecl_force_head): New extern function declaration.
21505 (INCOMPLETE_TYPE_P): New macro.
21506 (JDEP_PARM, JDEP_TYPE): New entries in JDEPs enum.
21507 (BLOCK_CHAIN_DECL, BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY,
21508 BLOCK_EXPR_ORIGIN): New macros.
21509 (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
21510 DECL_SOURCE_LINE_LAST): New macros.
21511 (struct parser_ctxt): Removed field current_method_decl, redundant
21512 with the field current_function_decl. Added fields
21513 first_ccb_indent1 and pending_block.
21514 * parse.y (method_body, literal, INT_LIT_TK, FP_LIT_TK,
21515 BOOL_LIT_TK, CHAR_LIT_TK, STRING_LIT_TK, NULL_TK, VOID_TK): Rules
21516 tagged <node>
21517 (SOURCE_FRONTEND_DEBUG): Used as macro accepting varargs.
21518 (compilation_unit:): Cosmetic on sub rule.
21519 (type_declaration:): Cosmetic on sub rules. Added an error rule.
21520 (variable_initializer:): Installed default rule on expression:.
21521 (method_declaration:): method_header: starts a new
21522 method. method_body: installs the function body, absorbs blocks
21523 emitted for temporary variable scopings, pops function's body block
21524 and merges function's last statement lineno in DECL_SOURCE_LINE.
21525 (method_body:): Installed default rules.
21526 (block:): Call enter_block when an opening brace is seen. Absorb
21527 scoping blocks and call exit_block when a closing brace is seen.
21528 (block_statement:): Cosmetic changes.
21529 (method_invocation:): Create WFL around CALL_EXPR node.
21530 (patch_stage): Added comment around definition.
21531 (method_header): Try to use first_ccb_indent1 as the first line of
21532 the method, so BP debug info are emitted at the first opening
21533 brace of the function. If the function has no body, use the
21534 location of the function's name. Override currently defined method
21535 name with the matching WFL so we can point redefinition errors
21536 using the location where the function's name was declared.
21537 (check_abstract_method_header): Interprets DECL_NAME as an
21538 identifier or as a WFL, accordingly.
21539 (java_complete_class): New cases for JDEP_TYPE and JDEP_PARM.
21540 (check_method_redefinition): Use DECL_NAME as a WFL. Extract
21541 location and name information out of it and reinstall DECL_NAME to
21542 its original identifier node value.
21543 (lookup_cl): Use DECL_SOURCE_LINE_FIRST (first line of the
21544 function's source code).
21545 (read_import_dir): Test the value returned by find_class and issue
21546 a fatal accordingly.
21547 (declare_local_variables): Push a new block for the scope of the
21548 new variable(s) if code has been already generated at that nesting
21549 level. Pinpoint redefinition errors using the variable id
21550 WFLs. Generate initialization code if necessary. If the variable
21551 type is incomplete, register a patch on its decl.
21552 (source_start_java_method): Rewritten. Define a new block for the
21553 function's parameters. Build parameter decl out of function's
21554 arguments and register them for a patch if their types are
21555 incomplete.
21556 (expand_start_java_method): Includes the part of
21557 source_start_java_method that was pushing the parameter decls and
21558 completing the method start code.
21559 (source_end_java_method): Removed call the expand_end_bindings and
21560 poplevel (already taken care of). Reinstall function's arguments
21561 and get function's last line of code before calling
21562 expand_function_end.
21563 (java_method_add_stmt): New comment before the function's
21564 code. Complement the second operand of the current COMPOUND_EXPR
21565 if necessary.
21566 (java_complete_expand_methods): Don't generate debug info on line
21567 zero when expanding a generated constructor.
21568 (java_complete_expand_method): Set start and end line numbers for
21569 a artificially generated constructor to one and manually call
21570 enter_block and exit_block when defining it. For all methods:
21571 expand function's start calling the new expand_start_java_method
21572 and invoke java_complete_tree on the effective method's body, if
21573 any.
21574 (resolve_expression_name): Now use lookup_name_in_blocks to search
21575 local variable decls and print out an error when variables are
21576 undefined.
21577 (patch_method_invocation_stmt): Inserted comment before the
21578 function's code.
21579 (lookup_method_invoke): Chain method's arguments using chainon
21580 with the current arg list as a second argument. Inserted missing
21581 IDENTIFIER_POINTER when reporting an error on methods not found.
21582 (refine_accessible_methods_list): Don't retain constructors.
21583 (patch_arguments): Function removed.
21584 (java_complete_tree): Inserted comment before the function's
21585 code. New case for BLOCKs. Moved the WFL case a bit
21586 further. Complete function's arguments.
21587 (build_expr_block, enter_block, exit_block, lookup_name_in_blocks,
21588 maybe_absorb_scoping_blocks): New functions.
21589
215901998-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
21591
21592 * jcf-io.c (find_class): Reset jcf->java_source after JCF_ZERO, if
21593 previously set.
21594 * jcf-parse.c (parse_source_file, java_error_count): New forward
21595 and extern declarations.
21596 (java_parse_abort_on_error): Macro moved.
21597 (jcf_parse_source): fatal called if fopen fails. Now calls
21598 parse_source_file.
21599 (parse_source_file): New parse_only parameter. Reflects the
21600 elimination of the second pass.
21601 (yyparse): parse_source_file called with argument set to 0.
21602 * jcf.h (JCF_ZERO): Sets java_source to zero.
21603 * lex.c (java_init_lex): pass argument is gone. Function modified
21604 to be called once during the analysis of a file.
21605 (java_unget_unicode): Fixed typo in fatal message.
21606 (java_get_line_col): Likewise.
21607 (java_lval): Likewise. String literals no longer built during
21608 second pass.
21609 * lex.h (JAVA_COLUMN_DELTA): Take the tabulation character into
21610 account.
21611 * parse.h (MODIFIER_WFL): New macro.
21612 (parse_check_super, parser_check_super_interface): Now return int.
21613 (parser_chain_incomplete_item, not_builtin_p,
21614 complete_method_decl): Declarations removed.
21615 (build_method_invocation_stmt, build_invoke): Renamed using the
21616 `patch' instead of `build'
21617 (register-incomplete_type, obtain_incomplete_type,
21618 java_complete_tree, java_complete_expand_method,
21619 unresolved_type_p, create_jdep_list): New function declarations.
21620 (IC_TYPE, IC_DEPEND, DEPEND_DECL, DEPEND_WFL, BEGIN_ONLY_PASS,
21621 END_ONLY_PASS, ELSE_ONLY_PASS): Macro deleted.
21622 (jdep): New typedef on new struct _jdep.
21623 (JDEP_DECL, JDEP_DECL_WFL, JDEP_KIND, JDEP_SOLV, JDEP_WFL,
21624 JDEP_MISC, JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN,
21625 JDEP_TO_REVOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
21626 JDEP_RESOLVED_P): New macros.
21627 (JDEP_NO_PATCH, JDEP_SUPER, JDEP_FIELD, JDEP_METHOD,
21628 JDEP_METHOD_RETURN, JDEP_METHOD_END, JDEP_INTERFACE,
21629 JDEP_VARIABLE): New enum values and jdep kinds.
21630 (jdeplist): New typedef on struct _jdeplist.
21631 (CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN, JDEP_INSERT): New
21632 macros.
21633 (CALL_EXPR_PRIMARY): New macro.
21634 (struct parser_ctxt): Fields java_pass, current_method_decl,
21635 method_decl_list deleted. New field jdeplist.
21636 (INCOMPLETE_P): Macro deleted.
21637 * parse.y (single_type_import_declaration:): Removed pass switch.
21638 (type_import_on_demand_declaration): Likewise.
21639 (field_declaration:): Removed pass switch on all sub rules.
21640 (class_declaration:): Call the complete_class_decl removed on
21641 class_body rules.
21642 (method_declaration:): Removed second pass switch. No longer chain
21643 methods decl when method_header reduced.
21644 (method_header:): Sub rules no longer depend on pass switch.
21645 (method_declarator:): Likewise.
21646 (method_body:): Likewise.
21647 (abstract_method_declaration:): Likewise.
21648 (block_statement:): Likewise.
21649 (local_variable_declaration:): Likewise.
21650 (argument_list:): Likewise.
21651 (method_invocation:): Likewise. Call to build_method_invocation_stmt
21652 removed. Partial CLASS_EXPR tree node built instead.
21653 (postfix_expression:): Removed pass switch on all sub rules.
21654 (java_pop_parser_context): Free classd_list content.
21655 (yyerror): Call obstrack_grow0 to finalize error message.
21656 (check_class_interface_creation): Comment modified to reflect new
21657 returned value meaning. Removed second pass switch. Return 1 if an
21658 error was found, 0 otherwise. Adjust pointer on filename if a
21659 leading path separator was found.
21660 (maybe_create_class_interface_decl): Removed first pass switch
21661 when linking the class decl to the class_list. Install a new
21662 jdep_list for the class.
21663 (add_superinterfaces): List of unresolved interfaces is
21664 gone. Unresolved interfaces are directly added to the current
21665 dependencies list.
21666 (create_interface): Second pass shortcut removed.
21667 ctpx->modifier_ctx access through MODIFIER_WFL.
21668 (create_class): Second pass shortcut removed. Call to
21669 register_incomplete_type replaces the call to
21670 parser_chain_incomplete_item.
21671 (complete_class_decl): Function removed.
21672 (duplicate_declaration_error): New way of retrieving redeclared
21673 item type.
21674 (register_fields): Call to lookup_modifier_cl replaced by
21675 MODIFIER_WFL. New way of handling unresolved type, using
21676 unresolved_type_p and obtain_incomplete_type.
21677 register_incomplete_type replaces call to parser_chain_incomplete_item.
21678 (patch_stage): New static global variable.
21679 (method_header): New way of handling unresolved type, using
21680 unresolved_type_p and obtain_incomplete_type. patch_stage used to
21681 indicates that the method decl needs to be patched.
21682 (check_abstract_method_header): Call to lookup_modifier_cl
21683 replaced by MODIFIER_WFL.
21684 (method_declarator): Incomplete argument type are registered
21685 calling register_incomplete_type. Patch on the declared method is
21686 issued in that case.
21687 (unresolved_type_p): New function.
21688 (parser_check_super_interface): New comment to reflect function's
21689 modified returned type (int). Function and has a new argument
21690 this_wfl. Call to parse_error_context uses this_wfl instead of
21691 relying on lookup_cl.
21692 (parser_check_super): Comment reflects function's new returned
21693 type (int). Function returns nonzero value on error.
21694 (create_jdep_list, reverse_jdep_list, obtain_incomplete_type,
21695 register_incomplete_type, jdep_resolve_class): New functions to
21696 handle incomplete types in declarations.
21697 (java_complete_class): Rewritten to work with the new incomplete
21698 type handling scheme.
21699 (complete_class_report_errors): Likewise.
21700 (complete_method_decl): Removed: it jobs is now handled by
21701 java_complete_class.
21702 (do_resolve_class): Class loaded in not already loaded and not
21703 found in Java source code.
21704 (java_check_regular_methods, java_check_abstract_methods): Don't
21705 call complete_method_decl anymore.
21706 (lookup_modifier_cl, not_builtin_p): Functions deleted.
21707 (read_import_dir): Got rid of the pass number dependency.
21708 (declare_local_variables): New handling of unresolved types (patch
21709 issued).
21710 (source_start_java_method): New parameter level. Function called
21711 with level set to 1 when argument types are potentially
21712 unresolved. Called to complete the job with level set to 2 once
21713 types are complete.
21714 (source_end_java_method): Call to permanent_allocation
21715 removed. Waiting to be replaced by a more suitable obstack
21716 management.
21717 (java_complete_expand_methods, java_complete_expand_method,
21718 java_expand_finals): New functions.
21719 (build_method_invocation_stmt): Renamed
21720 patch_method_invocation_stmt. Extracts function call expression
21721 (wfl) and arguments (args) from CALL_EXPR tree operands.
21722 (build_invoke): Renamed patch_invoke. Fixed typo in fatal
21723 call. Patch the function and argument operand of the CALL_EXPR
21724 tree argument.
21725 (patch_argument, java_complete_tree): New functions.
21726
217271998-04-20 Per Bothner <bothner@cygnus.com>
21728
21729 Recover from missing fields and methods (i.e. error instead of fatal).
21730 * decl.c, java-tree.h (TYPE_identifier_node): New global constant.
21731 * expr.c (expand_invoke): Recover from missing method.
21732 (expand_java_field_op): Recover from missing field.
21733 Inline references to java.lang.{Integer,Char,...}.TYPE.
21734 * typeck.c (get_type_from_signature), java-tree.h: New function.
21735 * class.c (add_method): Use get_type_from_signature.
21736 (build_class_ref): Handle a class that was not found.
21737 * typeck.c (convert): Handle conversion to pointers (for convenience).
21738 * verify.c (verify_jvm_instructions): Use get_type_from_signature
21739 instead of lookup_field to handle missing fields.
21740
21741 * jcf-parse.c (process_zip_dir): Set java_source.
21742
217431998-04-20 Brendan Kehoe <brendan@cygnus.com>
21744
21745 * jcf-parse.c (set_source_filename): Use TYPE_NAME, not DECL_NAME.
21746
217471998-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
21748
21749 * jcf-parse.c (load_class): Don't change input_filename before
21750 calling jcf_parse_source (but still do it before calling
21751 jcf_parse).
21752 (jcf_parse_source): Assign input_filename after having saved the
21753 parser context.
21754 * lex.c (java_init_lex): Chain a WFL node to the import on demand
21755 list. ctxp->modifier_ctx zeroed according to its new
21756 definition. ctxp->filename initialized. Removed
21757 JAVA_MODIFIER_CTX_UNMARK.
21758 (java_unget_unicode): Update the character based column position.
21759 (java_allocate_new_line): ref_count not used anymore. Always free
21760 ctxp->p_line. Initialize c_line->char_col to 0.
21761 (java_get_unicode): Update the character based column position.
21762 (java_lex): Use ctxp->elc to store current position in source
21763 file, at the beginning of the parsed token. Set modifier_ctx entry
21764 corresponding to the parse modifier to a WFL node. Return a WFL
21765 node when an identifier is parsed.
21766 (java_lex_error): Now uses ctxp->elc to store current position in
21767 source.
21768 (build_wfl_node, java_is_eol, java_get_line_col): New functions.
21769 * lex.h (build_wfl_node): New function definitions.
21770 (struct java_line): ref_count and next fields are gone. New field
21771 char_col.
21772 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
21773 JAVA_LINE_UNMARK, ID_NAME, ID_CL): Macro definitions deleted.
21774 (JAVA_COLUMN_DELTA): New macro.
21775 (java_lc): New typedef on new struct _java_lc.
21776 * parse.h (lookup_cl, lookup_modifier_cl): Changed returned types.
21777 (parse_error_context, parse_warning_context): Changed prototypes.
21778 (java_get_line_col): Added as an available global function.
21779 (JAVA_MODIFIER_CTX_UNMARK): Macro removed.
21780 (IC_DECL): Replaced by macro IC_TYPE
21781 (DEPEND_WFL): New macro.
21782 (THIS_MODIFIER_ONLY): Now works with WFL and only remembers the first
21783 wrong modifier.
21784 (exit_java_complete_class): Removed a commented out statement.
21785 (struct parser_ctxt): Added comments on fields. modifier_ctx is
21786 now an array of tree nodes. Deleted fields line_list and
21787 e_line. New field elc, to replace e_line.
21788 * parse.y (array_type:): Build WFL node.
21789 (qualified_name:): Build a single WFL node out of two. Retain
21790 the location information of the first node in the resulting node.
21791 (package_declaration:): Use package name as a WFL node
21792 (single_type_import_declaration:): Use imported name as a WFL node.
21793 (type_import_on_demand_declaration:): Use root of the imported
21794 packages as a WFL node.
21795 (field_declaration:): Removed unused local variable cl.
21796 (method_declaration:): Don't call JAVA_MODIFIER_CTX_UNMARK.
21797 (yyerror): New static elc. Removed static error_line, error_pos.
21798 New local code_from_source. Save ctxp->elc into elc at the first
21799 pass. Call java_get_line_col to get a string of the line where
21800 the error occurred.
21801 (debug_line): Removed static function.
21802 (parse_error_context, parse_warning_context): Parameter cl is now
21803 a WFL node. Use its value to initialize ctxp->elc.
21804 (redefinition_error): Parameter cl is now a WFL node.
21805 (parse_add_interface): New parameter wfl. No longer call
21806 lookup_cl, use wfl instead.
21807 (check_class_interface_creation): Parameter cl is now a WFL node.
21808 (maybe_create_class_interface_decl): Likewise.
21809 (add_superinterfaces): New function.
21810 (create_interface): Removed local cl, node, super_decl,
21811 super_decl_type. Function now uses id as a WFL node. Better
21812 warning/error report on obsolete or forbidden mix of
21813 modifiers. Now calls add_superinterfaces to register interfaces.
21814 (create_class): Removed local cl, node. Local variable id is used
21815 as a WFL node. Better error report on forbidden modifier
21816 mix. Uses add_superinterfaces to register interfaces.
21817 (find_field): Argument cl is now a WFL node. Now store the WFL
21818 node of a fields that needs to be checked for their
21819 initialization.
21820 (method_header): Local variable node non longer used. Local
21821 variable id replaces cl.
21822 (check_modifiers_consistency): Local variable cl is now a WFL
21823 node.
21824 (method_declarator): Local variable cl replaced by parameter id.
21825 (parser_qualified_name): Now uses parameter name as a WFL node.
21826 (parser_check_super_interface): New parameter wfl, for achieve
21827 greater accuracy during error reports.
21828 (parser_chain_incomplete_item): New parameter named location. Used,
21829 along the decl, to construct the incomplete item node.
21830 (java_complete_class): resolve_class now uses WFL node extracted
21831 from the incomplete item node. Macro IC_TYPE replaces TREE_PURPOSE
21832 where appropriate.
21833 (complete_method_decl): Unresolved function's argument types are WFL.
21834 (resolve_class): Parameter cl is now a WFL node.
21835 (resolve_and_layout): Likewise.
21836 (do_resolve_class): Likewise. Try first to use cl and then do the
21837 lookup on the decl when calling check_pkg_class_access.
21838 (complete_class_report_errors): Use IC_TYPE in place of
21839 TREE_PURPOSE where appropriate. Use DEPEND_WFL on dependency
21840 instead of doing a lookup over the decl.
21841 (java_check_final): Use WFL info from field tree list.
21842 (lookup_cl): Rewritten and returns a statically defined WFL node.
21843 (lookup_modifier_cl): Now uses information from WFL nodes.
21844 (process_imports): Likewise.
21845 (read_import_dir): name and cl arguments replaced by a single WFL
21846 node. Function modified accordingly.
21847 (find_in_imports_on_demand): Now uses WFL node.
21848 (check_pkg_class_access): cl argument is now a WFL node.
21849 (declare_local_variables): Fixed to use WFL nodes.
21850 (resolve_expression_name): Likewise.
21851 (build_method_invocation_stmt): name_combo argument renamed
21852 wfl. Function modified to use WFL nodes.
21853 (build_invoke): cl used as a WFL node when calling build_expr_wfl.
21854 (lookup_method_invoke): cl is now a WFL node. Added missing
21855 IDENTIFIER_POINTER to class type decl name.
21856
218571998-04-14 Dave Brolley <brolley@cygnus.com>
21858
21859 * lang.c (init_parse): Now returns char* containing the filename.
21860
218611998-04-10 Per Bothner <bothner@cygnus.com>
21862
21863 * class.c (layout_class): Mangle repeated arg types to match cc1plus.
21864
21865 * decl.c, java-tree.h (integer_four_node): New INTEGER_CST node.
21866 * class.c (make_class_data): If flag_assume_compiled, initial class
21867 state is CSTATE_PREPARED; make superclass and interfaces direct
21868 references, rather than constant pool indexes.
21869
218701998-04-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
21871
21872 * parser.y: Include flags.h. Removed debug variable pl.
21873 (method_declaration:): Uses ctxp->parser_ccb_indent instead of pl.
21874 (block:): Likewise.
21875 (labeled_statement_nsi:): Generate debug info when reducing
21876 expression_statement:.
21877 (check_pkg_class_access): get_access_flags_from_decl invocation
21878 fixed for new CLASS_* flags location.
21879 (source_end_java_method): Save/restore parser context when
21880 entering/leaving this routine. Restore lineno to its right value
21881 before calling expand_end_bindings.
21882 (build_method_invocation_stmt): build_invoke called with the
21883 current line information.
21884 (build_invoke): New argument cl. Wrap the function call around a
21885 wfl node.
21886 (refine_accessible_methods_list): Changed comment, removed
21887 unnecessary code.
21888 * parse.h: Fixed typo in comments.
21889 (CLASS_OR_INTERFACE): Handle the new CLASS_* flags location.
21890 (JAVA_MAYBE_GENERATE_DEBUG_INFO): New macro.
21891 (struct parser_ctxt): New fields ccb_indent, last_ccb_indent1,
21892 parser_ccb_indent.
21893 * lex.c (java_lex): Record the last closing curly bracket of a
21894 function.
21895 * jcf-parse.c (jcf_parse_source): Now calls
21896 java_check_methods. Clarified comment, fixed typo.
21897
218981998-04-09 Dave Brolley <brolley@cygnus.com>
21899
21900 * lang.c (init_parse): Expose for non USE_CPPLIB builds.
21901 (finish_parse): Expose for non USE_CPPLIB builds.
21902
219031998-04-08 Jeffrey A Law (law@cygnus.com)
21904
21905 * lang.c (lang_print_xnode): New function.
21906
219071998-04-03 Per Bothner <bothner@cygnus.com>
21908
21909 * decl.c (class_dtable_decl), java-tree.h: New tree node.
21910 * class.c (get_dispatch_vector, get_dispatch_table): New functions
21911 used to build a class's dispatch table.
21912 (make_class_data): Generate dispatch table if flag_assume_compiled.
21913 Set dtable of class object to address of class_dtable_decl.
21914
21915 * decl.c (int_decl_processing): Make soft_badarrayindex_node
21916 be volatile and have side effects - generates better code.
21917
21918 * class.c, expr.c, parse.y: CLASS_INTERFACE, CLASS_FINAL, etc:
21919 These flags were defined for TYPE_DECLs, but used on RECORD_TYPEs.
21920
21921 * expr.c (expand_invoke): If class is final, method is
21922 effectively final, so can call it directly.
21923
21924 * java-tree.h (TYPE_NVIRTUALS, TYPE_VTABLE): New macros.
21925
21926 * Makefile.in, Make-lang.in: Add missing $(exeext)s.
21927
219281998-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
21929
21930 * parse.y (build_method_invocation_stmt): Removed extra argument
21931 to build_invoke.
21932
219331998-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
21934
21935 * expr.c (dtable_indent): Now static global.
21936 (expand_invoke): Now call invoke_build_dtable and
21937 build_invokevirtual.
21938 (invoke_build_dtable, build_invokevirtual): New functions.
21939 * jcf-io.c (find_class): Defer issuing a warning by setting
21940 jcf->outofsynch to 1.
21941 * jcf-parse.c (jcf_out_of_synch): New function.
21942 (load_class): Test this_jcf.outofsynch flag and call
21943 jcf_out_of_synch accordingly.
21944 * jcf.h: (typedef struct JCF): New flag outofsynch. Fixed typo in
21945 comment indentation.
21946 * lex.c (java_get_unicode): Fixed code indentation.
21947 (java_lex): Create string literal. Fixed typo. Removed several
21948 premature obstack_free.
21949 * parse.h: New enums for name resolution and invocation mode.
21950 (struct qualification): New data structure.
21951 (RESOLVE_CHAIN_REMAINDER, BUILD_PTR_FROM_NAME): New macros.
21952 (do_resolve_class, build_method_invocation_stmt,
21953 breakdown_qualified, qualify_ambiguous_name, resolve_and_layout,
21954 debug_line, identical_subpath_p, invocation_mode,
21955 refine_accessible_methods_list, build_invoke,
21956 lookup_method_invoke): New functions declared.
21957 (build_invokevirtual, invoke_build_dtable, match_java_method,
21958 build_field_ref, jcf_out_of_synch): New references to external
21959 functions.
21960 (struct parse_ctxt): Removed artificial_constructor field.
21961 * parse.y: (array_type:): Type defined for this rule.
21962 (class_type:): Installed default rule for interface_type:.
21963 (array_type:): Now build Java array type.
21964 (qualified_name:): Now use obstack_grow0.
21965 (method_declaration:): Skip the artificial constructor added to
21966 the list, if any.
21967 (abstract_method_declaration:): Execute the code only during pass 1.
21968 (block:): Installed default rule in block_statements:.
21969 (block_statement:): Add the statement to the method during pass 2.
21970 (statement_expression): Installed default rule for
21971 method_invocation:.
21972 (argument_list:): Added code to build the argument list.
21973 (method_invocation:): Added call to create the method invocation
21974 node.
21975 (yyerror): Now use obstack_grow0. Removed bogus obstack_free.
21976 (debug_line): New function for debug.
21977 (complete_class_decl): No longer do something during pass 1.
21978 (method_header): Use BUILD_PTR_FROM_NAME.
21979 (parser_qualified_classname): Use obstack_grow0. Removed bogus
21980 obstack_free.
21981 (parser_chain_incomplete_item): Use BUILD_PTR_FROM_NAME. Modified
21982 function's main comment.
21983 (java_complete_class): Set CLASS_LOADED_P on all fixed incomplete
21984 classes.
21985 (complete_method_decl): Use BUILD_PTR_FROM_NAME and promote types.
21986 (resolve_class): Now works with arrays.
21987 (do_resolve_class, resolve_and_layout): New functions.
21988 (java_check_regular_methods): Reverse method list before and after
21989 having processed it. No longer set ctxp->artificial_constructor.
21990 (read_import_dir): Test jcf->outofsynch and call jcf_out_of_synch
21991 accordingly. Fixed typo in issued error message. Now use
21992 obstack_grow0.
21993 (find_in_imports_on_demand): Now use obstack_grow0.
21994 (declare_local_variables): Use BUILD_PTR_FROM_NAME.
21995 (source_end_java_method): Call expand_expr_stmt instead of
21996 expand_expr. Calls it before calling expand_function_end.
21997 (java_method_add_stmt): Do nothing if errors were found during
21998 parsing.
21999 (java_layout_parsed_class): Set CLASS_LOADED_P and fixed typo.
22000 (build_method_invocation_stmt, build_invoke, invocation_mode,
22001 lookup_method_invoke, refine_accessible_methods_list,
22002 qualify_ambiguous_name, breakdown_qualified, identical_subpath_p):
22003 New functions.
22004 * typeck.c (build_java_signature): Properly end method signature
22005 if return type skipped.
22006 (match_java_method): New function.
22007
220081998-03-16 Per Bothner <bothner@cygnus.com>
22009
22010 * jcf-io.c (find_classfile): If USE_JCF_STDIO, fopen in binary mode.
22011
220121998-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
22013
22014 * expr.c (build_invoke_non_interface): New function.
22015 (methods_ident, ncode_ident): Now static globals.
22016 (expand_invoke): Use build_invoke_non_interface.
22017 * java-tree.h (struct lang_decl): New field function_decl_body.
22018 (DECL_FUNCTION_BODY): New macro.
22019 * jcf-parse.c (jcf_parse_source): Deeper check before setting
22020 CLASS_FROM_SOURCE_P.
22021 (parse_source_file): Fixed typos. Call java_layout_parsed_class
22022 before starting pass 2. Call to java_generate_parsed_class replaced
22023 by java_register_parsed_class.
22024 * lex.c: Fixed typo in header. Some line width related formating.
22025 * lex.h: Some line width related formating.
22026 * parse.h (source_end_java_method, resolve_expression_name,
22027 complete_class_decl, maybe_create_class_interface_decl,
22028 check_class_interface_creation): New static function declarations.
22029 (java_layout_parsed_class, java_method_add_stmt): New function
22030 declarations.
22031 (struct parser_ctxt): Field mark_class_generate removed. New
22032 fields class_list and artificial_constructor.
22033 * parse.y: Fixed typo in header.
22034 (class_declaration:): Call complete_class_decl when class body
22035 parsed.
22036 (method_declaration:): Call source_end_java_method in pass 2 when
22037 the method body is defined.
22038 (postfix_expression:): Do expression name resolution on sub-rule
22039 name during pass 2.
22040 (create_class, create_interface): Merged common pieces.
22041 (check_class_interface_creation, maybe_create_class_interface_decl):
22042 New functions.
22043 (complete_class_decl): New function.
22044 (register_fields): Fixed line width related typo.
22045 (method_header): Correctly skip first argument when fixing
22046 argument line. Changed the loop.
22047 (java_check_circular_reference): Now use ctxp->class_list.
22048 (java_complete_class): Removed start/stop marking.
22049 (java_check_regular_methods): Now takes a class decl as an
22050 argument. Add default constructor if none were encountered.
22051 (java_check_methods): Now use ctxp->class_list. Changed call to
22052 java_check_regular_methods.
22053 (source_start_java_method): Set DECL_ARG_TYPE for each function
22054 arguments.
22055 (source_end_java_method, java_method_add_stmt): New functions.
22056 (java_generate_parsed_class): No longer exists.
22057 (java_layout_parsed_class, java_register_parsed_class): New functions.
22058 (resolve_expression_name): New function.
22059
220601998-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
22061
22062 * jcf-parse.c: (parse_source_file): Check on errors after init lex.
22063 * lex.c: (java_init_lex): Defer ctxp->java_pass initialization
22064 until pass initializations are done. Call read_import_dir with
22065 pass set to 0.
22066 * parse.h: (lookup_modifier_cl): New function declared.
22067 (INTERFACE_FIELD_MODIFIERS): New macro.
22068 (OBSOLETE_MODIFIER_WARNING): New macro.
22069 * parse.y: (register_fields): Class type and current field name in
22070 local variables. Check modifier(s) if adding field(s) to an interface.
22071 (check_abstract_method_header): Now use OBSOLETE_MODIFIER_WARNING
22072 and report errors using the faulty modifier line context.
22073 (lookup_modifier_cl): New function.
22074 (read_import_dir): Detect and report default import processing
22075 failure.
22076
220771998-02-11 Brendan Kehoe <brendan@cygnus.com>
22078
22079 Add a pair of -fassume-compiled/-fno-assume-compiled options.
22080 * class.c (is_compiled_class): Return 1 after making sure it
22081 qualifies as loaded, if FLAG_ASSUME_COMPILED is set.
22082 * lang-options.h: Add -fassume-compiled/-fno-assume-compiled.
22083 * java-tree.h (flag_assume_compiled): Add decl.
22084 * lang.c (lang_f_options): Add the flag.
22085 (flag_assume_compiled): Add decl, default to 0.
22086
220871998-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
22088
22089 * class.c (class_depth): Call to load_class uses extra VERBOSE arg.
22090 (is_compiled_class): Likewise.
22091 (layout_class): Likewise.
22092 (layout_class): Detect and lay out classes defined in source code.
22093 (interface_of_p, add_interface_do, may_add_interface): New
22094 function.
22095 (add_interface): Now use add_interface_do.
22096 (add_method_1): New function.
22097 (add_method): Now use add_method_1.
22098 (pushlevel): Debug message conditional to SOURCE_FRONTEND_DEBUG.
22099 (complete_start_java_method): New function.
22100 (start_java_mehod): Now call complete_start_java_method.
22101 * expr.c (lookup_field): Call to load_class uses extra VERBOSE arg.
22102 (expand_invoke): Likewise and fixed typo.
22103 *gjava.c: (print_super_field): Use new argument to find_class
22104 DO_CLASS_FILE.
22105 (main): Likewise.
22106 *java-tree.h: (CLASS_FROM_SOURCE_P): New flag on RECORD_TYPE.
22107 (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
22108 QUALIFIED_P, IS_AN_IMPORT_ON_DEMAND_P): New flags on
22109 IDENTIFIER_NODE.
22110 (CLASS_COMPLETE_P): New flag on TYPE_DECL.
22111 (add_method_1, push_class): New prototypes.
22112 *jcf-dump.c: find_class now uses new DO_CLASS_FILE argument.
22113 *jcf-io.c: (open_in_zip): jcf now stores a pointer to the Zip
22114 directory where the class was found.
22115 (find_class): New argument DO_CLASS_FILE. Function find_class
22116 modified accordingly.
22117 *jcf-parse.c: (fix_class_path): New function.
22118 (load_class): Use new VERBOSE argument. load_class now finds and
22119 loads/parses .class/.java files. Save read_state of current_jcf
22120 if necessary.
22121 (java_parser_abort_on_error): New macro.
22122 (jcf_parse_source, parse_source_file): New function.
22123 (jcf_parse): Fixed typo.
22124 (yyparse): Call parse_source_file () only.
22125 (process_zip_dir): Fixed typo, fix zdir->filename_length when
22126 writing the real class name back in the zip directory entry.
22127 (find_in_current_zip): IDENTIFIER_CLASS_VALUE may be null.
22128 (jcf_figure_file_type): Fixed bogus alloc and bcopy.
22129 *jcf.h: (typedef struct JCF): New fields java_source and zipd.
22130 (find_class): Prototype fixed.
22131 *lex.c: Added 1998 time stamp.
22132 Removed all static global variables, moved into the parser
22133 context data structure.. Now include unistd.h if SEEK_SET not
22134 defined.
22135 (java_init_lex): Rewritten.
22136 (java_sneak_unicode): Modified current unicode access in current line.
22137 (java_unget_unicode): Likewise.
22138 (java_allocate_new_line): New allocation management.
22139 (java_read_char): Modified access and storage of unget_utf8_value.
22140 New way of processing current unicode.
22141 (java_store_unicode, java_read_unicode): Fixed typo in declaration.
22142 (java_get_unicode): Now use the parser context.
22143 (java_lineterminator): Likewise.
22144 (java_lex): Now used java_lval argument (pointer to YYSTYPE), part
22145 of the reentrant parser implementation. Function now use the
22146 parser context data structure and java_lval. Fixed production of
22147 the float and double constant "out of range" error message. Fixed
22148 obstack use. Return integer value when hitting a modifier. Now
22149 return type for TRUE, FALSE and other predefined types. Return
22150 identifier as a TREE_LIST list containing the current line context
22151 as the TREE_VALUE sub-node.
22152 (java_unicode_2_utf8): Fixed typo in declaration.
22153 (java_lex_error): Now use the parser context data structure.
22154 *lex.h: Added 1998 time stamp.
22155 (struct java_line): New fields ref_count and next.
22156 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
22157 JAVA_LINE_UNMARK, ID_NAME, ID_CL): New macros.
22158 (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR, UNGETC): Fixed.
22159 *parse.h: Added 1998 time stamp.
22160 (java_parse_source_file): Renamed from parse_source_file.
22161 (YYERROR_NOW, YYNOT_TWICE): Fixed.
22162 (CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
22163 INTERFACE_MODIFIER, INTERFACE_METHOD_MODIFIERS,
22164 JAVA_MODIFIER_CTX_UNMARK, IC_DECL, IC_DEPEND, DEPEND_DECL,
22165 THIS_MODIFIER_ONLY, ABSTRACT_CHECK, BEGIN_ONLY_PASS,
22166 END_ONLY_PASS, ELSE_ONLY_PASS, exit_java_complete_class,
22167 CLASS_OR_INTERFACE, INCOMPLETE_P): New macros.
22168 (struct parser_ctxt): New data structure to keep the parser context.
22169 *parse.y: Added 1998 time stamp, got rid of static global variables.
22170 (java_error_count, ctxp): New global variables.
22171 (%union): New value field.
22172 (numeric_type, integral_type): Rules removed.
22173 (primitive_type): Rule defined to handle integral, float, double and
22174 boolean types.
22175 (qualified_name, package_declaration,
22176 single_type_import_declaration, type_import_on_demand_declaration,
22177 modifiers, class_declaration, super, interfaces,
22178 interface_type_list, class_body, field_declaration,
22179 field_declaration, variable_declarators, variable_declarator,
22180 variable_declarator_id, method_declaration, method_header,
22181 formal_parameter_list, formal_parameter, method_body, block,
22182 static, interface_declaration, extends_interfaces,
22183 abstract_method_declaration, local_variable_declarators): Rules now
22184 define actions.
22185 (force_error, do_warning): New global statics.
22186 (push_parser_context, parser_context_save_global,
22187 parser_context_restore_global, pop_parser_context): New functions.
22188 (yyerror): Now uses the global parser context. Fixed use of obstack.
22189 (parse_error, parse_error_context, parse_warning_context,
22190 java_accstring_lookup, redefinition_error, check_modifiers,
22191 parser_add_interface, create_interface, create_class, find_field,
22192 duplicate_declaration_error, register_fields, method_header,
22193 check_modifiers_consistency, check_abstract_method_header,
22194 method_declarator, parser_qualified_classname,
22195 parser_check_super_interface, parser_check_super,
22196 parser_chain_incomplete_item, java_check_circular_reference,
22197 layout_class_from_source, java_complete_class,
22198 complete_method_decl, resolve_class, complete_class_report_errors,
22199 java_check_final, check_method_redefinition,
22200 java_check_regular_methods, java_check_abstract_methods,
22201 java_check_methods, lookup_java_interface_method2,
22202 lookup_java_method2, lookup_cl, find_name_in_single_imports,
22203 process_imports, find_in_imports, read_import_entry,
22204 read_import_dir, find_in_imports_on_demand,
22205 check_pkg_class_access, not_builtin_p, declare_local_variables,
22206 source_start_java_method, java_generate_parsed_class): New
22207 functions.
22208 *typeck.c: (signature_include_return): New global variable.
22209 (build_java_signature): Use SIGNATURE_INCLUDE_RETURN figure whether
22210 to add the function returned type in the signature.
22211
222121998-02-09 Brendan Kehoe <brendan@cygnus.com>
22213
22214 * jcf-io.c (open_in_zip): Use strncmp and LEN.
22215
222161998-01-29 Dave Brolley <brolley@cygnus.com>
22217
22218 * Make-lang.in (java.info): Added.
22219 (java.install-info): Added
22220
222211998-01-27 Brendan Kehoe <brendan@cygnus.com>
22222
22223 * Makefile.in (clean): Also remove java/parse.c.
22224
222251998-01-26 Brendan Kehoe <brendan@cygnus.com>
22226
22227 Add a pair of -fbounds-check/-fno-bounds-check options.
22228 * lang.c (lang_decode_option): Add code to grok arguments.
22229 (flag_bounds_check): Add decl.
22230 (lang_f_options): New array w/ the option in it.
22231 * java-tree.h (flag_bounds_check): Add decl.
22232 * lang-options.h: New file.
22233 * expr.c (build_java_arrayaccess): Use flag_bounds_check instead
22234 of a static macro value.
22235 (JAVA_ARRAY_EXCEPTION): Delete macro.
22236
222371998-01-23 Per Bothner <bothner@cygnus.com>
22238
22239 * typeck.c (build_java_array_type): Fix two bugs in previous change.
22240 * expr.c (build_anewarray): Add missing promote_type.
22241
222421998-01-22 Per Bothner <bothner@cygnus.com>
22243
22244 Add array types with known length to optimize bounds checking.
22245 * typeck.c (build_java_array_type): Take length parameter.
22246 (java_array_type_length, build_prim_array_type): New functions.
22247 * java-tree.h: Update for new functions.
22248 * expr.c, typeck.c, verify.c: Update build_java_array_type calls.
22249 * class.c: Use build_prim_array_type.
22250 * expr.c (can_widen_reference_to): Handle known-length array types.
22251 (verify_jvm_instructions): Keep track of integer push instructions
22252 followed by newarray/anewarray, so we can build known-length arrays.
22253 (JAVA_ARRAY_DATA_OFFSET): Replace by ...
22254 (java_array_data_offset): New function.
22255 (build_java_array_length_access): New function. Optimize if constant.
22256 (build_java_arrayaccess): Constant fold bounds check.
22257 (expand_java_newarray, expand_java_anewarray): Replaced by ...
22258 (build_newarray, build_anewarray): New functions.
22259 (ARRAY_NEW_NUM, ARRAY_NEW_PTR): Use build_{a,}newarray.
22260 * verify.c (merge_types): Handle known-lengh array types.
22261
222621998-01-19 Per Bothner <bothner@cygnus.com>
22263
22264 * expr.c (expand_byte_code): Fix performace bug, which caused
22265 searching linenumber_table to be linear rather than constant.
22266
222671997-12-12 Per Bothner <bothner@cygnus.com>
22268
22269 * Makefile.in (BISON, BISONFLAGS): Add missing macros.
22270
22271 * decl.c, java-tree.h (soft_fmod_node): New global.
22272 * decl.c (init_decl_processing): Define __builtin_fmod.
22273 * expr.c (build_java_binop): Implement TRUNC_MOD_EXPR for REAL_TYPE
22274 using __builtin_fmod.
22275
222761997-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
22277
22278 * keyword.h: New file, output of keyword.gperf as processed by
22279 gperf.
22280 * lex.c (java_lex_init): Initialize java_error_flag.
22281 * parse.c (YYERROR_NOW): Uses java_error_flag.
22282 * parse.y: New static java_error_flag. Useless definition of
22283 buffer_error gone.
22284 * parse.y (java_error): Portable error recovery using
22285 java_error_flag (not yet completely tuned).
22286
222871997-12-04 Brendan Kehoe <brendan@lisa.cygnus.com>
22288
22289 * Makefile.in (parse.c): Use $(srcdir) for parse.y.
22290
222911997-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
22292
22293 * Makefile.in: (JAVA_OBJS): New object jcf-parse.o.
22294 (parse.c, lex.c, keyword.h): New rules for Java source code
22295 front-end.
22296 * parse.c: Renamed into jcf-parse.c.
22297 * jcf-parse.c (yyparse): Invoke the parser to process Java source code.
22298 * keyword.gperf: New file, Java keywords.
22299 * parse.y: New file, Java language grammar.
22300 * parse.h: New file, Java language grammar definitions.
22301 * lex.c: New file, Java language lexer.
22302 * lex.h: New file, Java language lexer definitions.
22303
223041997-12-03 Per Bothner <bothner@cygnus.com>
22305
22306 * decl.c (clinit_identifier_node), java-tree.h: New global.
22307 * java-tree.h (IS_METHOD_INIT_P, IS_METHOD_CLINIT_P): Removed.
22308 * verify.c (verify_jvm_instructions): Inline use of removed macros.
22309 * expr.c (expand_java_field_op): Check for invalid assignment
22310 to final field.
22311
22312 * jcf-reader.c (get_attribute): Test for wrong attribute length.
22313
223141997-10-27 Per Bothner <bothner@cygnus.com>
22315
22316 * verify.c (verify_jvm_instructions): When processing a handler,
22317 attempt to set the current_subr to the right value.
22318 (More complicated code combines Sep 17 and Oct 22 versions.)
22319
223201997-10-24 Per Bothner <bothner@cygnus.com>
22321
22322 * class.c (push_class): Figure out (guess) name of source file.
22323 * parse.c (set_source_filename): Set DECL_SOURCE_FILE of class decl.
22324 (give_name_to_class): Don't guess source name; use DECL_SOURCE_FILE.
22325 (parse_class_file): Change return type from int to void.
22326 Call debug_start_source_file/debug_end_source_file.
22327
22328 * expr.c (build_java_binop): Fix masking 2nd operand.
22329 * decl.c (init_decl_processing): Set sizetype first.
22330
223311997-10-22 Per Bothner <bothner@cygnus.com>
22332
22333 * verify.c (verify_jvm_instructions): Don't set current_subr to NULL.
22334 (Revert Sep 17 change.)
22335
223361997-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
22337
22338 * parse.c (process_zip_dir): Skip ZIP entries not bearing the
22339 .class extension in their name and fix thing so we don't process
22340 them parse_zip_file_entries().
22341 (parse_zip_file_entries): Cleaned unused local variables.
22342
223431997-10-20 Per Bothner <bothner@cygnus.com>
22344
22345 * expr.c (can_widen_reference_to): Allows equal array element types.
22346 (expand_byte_code): PRE_RET must expand OPERAND_VALUE (to get index).
22347 * jcf-dump.c (RET): Get (and print) index.
22348
22349 * verify.c (verify_jvm_instructions case OPCODE_anewarray):
22350 Promote element type to POINTER_TYPE.
22351
223521997-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
22353
22354 * jcf-reader.c, parse.c: (parse_zip_file, process_zip_dir,
22355 find_in_current_zip, jcf_figure_file_type): Moved from
22356 jcf-reader.c to parse.c.
22357 * zextract.c: (read_zip_archive): takes file_comment_length possible
22358 field into account.
22359
223601997-10-20 Per Bothner <bothner@cygnus.com>
22361
22362 * verify.c (verify_jvm_instructions): Var can also be promoted to int.
22363
22364 * verify.c (merge_types): Handle array types even better ...
22365
223661997-10-17 Per Bothner <bothner@cygnus.com>
22367
22368 * expr.c (java_stack_pop): Fix use of NULL_TREE for TYPE_SECOND.
22369
22370 * java-tree.h (PUSH_FIELD): Set DECL_ARTIFICIAL.
22371 * class.c (make_class_data): Don't build fields_decl if no fields.
22372 When building fields_decl, skip if DECL_ARTIFICIAL.
22373
22374 * expr.c (java_stack_swap): Update stack_type_map.
22375 * verify.c (merge_types): Handle array types better.
22376
223771997-10-15 Per Bothner <bothner@cygnus.com>
22378
22379 * class.c (add_field): Don't promote short integral fields to
22380 int any more (unless JAVA_PROMOTE_TO_INT), since Kaffe doesn't.
22381 * expr.c (push_value): Promote and convert short integral values.
22382
22383 * decl.c, java-tree.h (integer_two_node): New constant node.
22384 * verify.c (merge_types): Check for TYPE_RETURN_ADDR.
22385
223861997-10-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
22387
22388 * class.c (append_gpp_mangled_type): Use function argument
22389 unpromoted type to generate mangled name.
22390
223911997-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
22392
22393 * constants.c (build_constant_data_ref): Now uses current_class
22394 instead of main_class.
22395 (build_constants_constructor): Now uses current_class instead of
22396 main_class.
22397 * zipfile.h: (struct ZipFileCache): Now defined here. Declaration
22398 of the global variable SeepZipFiles done here.
22399 * zextract.c (read_zip_archive): extra_field optional field taken
22400 into account while computing the position of the class file in the
22401 archive.
22402 * verify.c (verify_jvm_instructions): Use current_jcf to search
22403 the constant pool.
22404 * parse.c (load_class): First search for the class to load in the
22405 current zip file. Saves current_jcf (restored before returning
22406 from that function). Don't call JCF_FINISH in the class was found
22407 in the current ZIP file.
22408 (jcf_parse): If the class was found in the current ZIP file, save
22409 its tree_constant_pool (for later reuse).
22410 (parse_class_file): New function. Process each method defined in
22411 the current class and record the class as to be later registered.
22412 (yyparse): Rewritten. Figure the type of the current file and switch
22413 accordingly.
22414 * lang.c: New global variable current_jcf.
22415 (lang_init): Removed compiling_from_source test (done later, in
22416 yyparse). Removed call the jcf_parse ().
22417 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): New defined values.
22418 (typedef struct JCF): New fields seen_in_zip (to mark a class found
22419 in the current ZIP file) and zip_offset (offset to the class data in
22420 the current zip file).
22421 * jcf-reader.c: zipfile.h included.
22422 localToFile: New ZipFileCache static global variable
22423 (parse_zip_file_entries): New function. Browse the current ZIP
22424 file directory and process each class found.
22425 (process_zip_dir): New function. Register each class found in the
22426 ZIP file directory. The class aren't parsed but a valid JCF is
22427 link to each of them.
22428 (find_in_current_zip): New function. Search for a class in the
22429 current ZIP file directory. If found, prepare the class so that it
22430 can be loaded.
22431 (jcf_figure_file_type): New function. Examine the file structure
22432 to figure a class file, a ZIP file. If none of these categories are
22433 matched, a source file is assumed.
22434 * jcf-io.c: Removed definition of ZipFileCache (moved in zipfile.h).
22435 SeenZipFile: New global variable.
22436 (open_in_zip): Use zipmember's length to accelerate the search for
22437 a member. If zipmember was NULL and zip file successfully read,
22438 return 0.
22439 * java-tree.h: New global variable current_jcf declared. Added
22440 declaration for current_constant_pool_tags, current_constant_pool_data,
22441 current_constant_pool_length, current_constant_pool_data_ref.
22442 (struct lang_type): Augmented with two fields. struct JCF *jcf (to
22443 store the JCF of classes seen in a zip file) and tree *constant_pool
22444 (to save a loaded class constant pool). current_class declared here.
22445 * expr.c (expand_invoke): Use current_jcf instead of main_jcf to
22446 retrieve method_ref_constant.
22447 (PUSHC): java_push_constant_from_pool now uses current_jcf.
22448 (OBJECT): get_class_constant now uses current_jcf.
22449 (ARRAY_NEW_PTR): get_class_constant now uses current_jcf.
22450 (ARRAY_NEW_MULTI): get_class_constant now uses current_jcf.
22451 (expand_invoke): Now uses current_class instead of main_class
22452 (build_class_init): Now uses current_class instead of main_class
22453 * class.c: New static global variable registered_class.
22454 (register_class): New function.
22455 (emit_register_class): Modified to use registered_class instead of
22456 main_class
22457 (is_compiled_class): Now take into account class seen in the archive.
22458
224591997-10-06 Per Bothner <bothner@cygnus.com>
22460
22461 * except.h: Renamed to: java-except.h.
22462 * parse.c, except.c, expr.c, verify.c: Update #include accordingly.
22463 * except.c: Add semi-working (commented out) implementation.
22464
22465 * expr.c (expand_iinc): Add needed flush_quick_stack.
22466 * parse.c (set_source_filename): New function.
22467 (give_name_to_class): Set input_filename from package.classname.java.
22468
22469 * jcf-io.c (find_class): Don't look first in ".".
22470
224711997-10-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
22472
22473 * zextract.c (read_zip_archive): Now takes into account the
22474 extra_field field.
22475 * expr.c (can_widen_reference_to): Modified to handle sub-interfaces.
22476
224771997-09-20 Per Bothner <bothner@cygnus.com>
22478
22479 * constants.c, java-tree.h (build_internal_class_name): New function.
22480 (alloc_class_constant): Re-implement using build_internal_class_name.
22481 * class.c (make_class_data): Likewise.
22482 * class.c (hashUtf8String): Make hash algorithm match String.hashCode.
22483
224841997-09-17 Per Bothner <bothner@cygnus.com>
22485
22486 * verify.c (verify_jvm_instructions): Temporarily set current_subr
22487 to NULL before pushing an exception handler target.
22488
22489 * expr.c (flush_quick_stack): Save from low stack indexes to high.
22490 (java_stack_swap, java_stack_dup): Re-write to be safe from
22491 clobbering registers.
22492 (build_class_init): New function.
22493
224941997-09-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
22495
22496 * typeck.c (build_java_array_type): Temporary use
22497 permanent_obstack to create the array 'length' field.
22498 * expr.c (lookup_label): Temporay use permanent_obstack to create
22499 label if not found.
22500 * class.c (push_super_field): Tempory use permanent_obstack.
22501
225021997-09-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
22503
22504 * typeck.c (type_for_mode): Now handles double_type_node and
22505 float_type_node.
22506 * verify.c (verify_jvm_instructions): The instruction following
22507 the wide bytecode is checked. OPCODE_ret added to the list of
22508 wide.
22509
225101997-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
22511
22512 * class.c (make_class): Temporary use permanent_obstack. Set the
22513 class CLASS_P field to 1.
22514 (push_class): Temporary use permanent_obstack.
22515 (set_super_info): Temporary use permanent_obstack.
22516 (add_method): Temporary use permanent_obstack, set
22517 METHOD_TRANSIENT().
22518 (add_field): Temporary use permanent_obstack. Sets
22519 FIELD_VOLATILE() and FIELD_TRANSIENT().
22520 (build_class_ref): Temporary use permanent_obstack if the class
22521 isn't compiled.
22522 (build_static_field_ref): Temporary use permanent_obstack when
22523 creating field's rtl.
22524 (get_access_flags_from_decl): Handle ACC_VOLATILE, ACC_TRANSIENT,
22525 ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT flags for methods
22526 and fields. Function finalized, as far as flag handling.
22527 (push_class_static_dummy_field): Temporary use permanent_obstack.
22528 (emit_register_class): Force generation of class registration at
22529 -O3 or deeper.
22530 * decl.c (end_java_method): Call permanent_allocation() before
22531 returning.
22532 * expr.c (can_widen_reference_to): Added comment to interface
22533 handling, fixed typo.
22534 (lookup_field): Now uses CLASS_P() to correct FIXME
22535 (expand_invoke): Verification on public && !static &&
22536 !abstract moved into soft_lookupinterfacemethod (kaffe).
22537 Use Object class dtable if objectref is an array when expanding
22538 invokeinterface.
22539 (java_push_constant_from_pool): Temporary use permanent_obstack
22540 for CONSTANT_string
22541 * parse.c (get_ref_constant): Temporary use permanent_obstack to
22542 create constant references.
22543 (get_constant): Temporary use permanent_obstack to create constant.
22544 (load_class): Temporary use permanent_obstack to load class.
22545 (jcf_parse): Temporary use permanent_obstack to perform class
22546 layout.
22547 * typeck.c: (parse_signature_string): Temporary use permanent_obstack.
22548 (build_java_signature): Temporary use permanent_obstack.
22549 * verify.c: (verify_jvm_instruction): removed unnecessary verification
22550 on ACC_SUPER flag.
22551 * java-tree.h (METHOD_NATIVE, METHOD_TRANSIENT): Defined.
22552 (FIELD_VOLATILE, FIELD_TRANSIENT): Defined.
22553 (CLASS_P): Defined
22554
225551997-09-11 Per Bothner <bothner@cygnus.com>
22556
22557 * class.c (append_gpp_mangled_type): Fix typo.
22558 (emit_register_class): Use main_class to get class object, rather
22559 than looking for no-longer-existing static decl starting with _CL.
22560 * typeck.c (parse_signature_type): Promote array element type
22561 if it is a RECORD_TYPE.
22562
225631997-09-10 Per Bothner <bothner@cygnus.com>
22564
22565 * class.c (push_class_static_dummy_field): New function.
22566 (mangle_static_field): New. Do G++-style mangling of static fields.
22567 (layout_class): Mandle static fields here, not in add_field.
22568 (build_class_ref): The class object is now a dummy static field.
22569 * decl.c (find_local_variable): Look for best, instead of first match.
22570 * expr.c (push_type): Always promote_type, not just for RECORD_TYPE.
22571 (build_java_athrow): Don't check here if exception is Throwable.
22572 * java-tree.h (TYPE_UNSET): Renamed to TYPE_UNKNOWN.
22573 (TYPE_USED): Removed. No longer used ...
22574 * parse.c (jcf_parse): Call push_class_static_dummy_field.
22575 * verify.c (push_pending_label): New function.
22576 (push_pending_block): Renamed to check_pending_block.
22577 (merge_types): Remove unneeded suuport for TYPE_UNUSED.
22578 (verify_jvm_instructions): Only reset prev_eh_ranges (to force
22579 re-checking possible handlers) after a store (less wasted work).
22580 Check for null handler (finally) before calling add_handler.
22581 Various changes to (finally?) correctly handle try/finally.
22582
225831997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com>
22584
22585 * class.c: Include stdio.h.
22586
225871997-09-04 Per Bothner <bothner@cygnus.com>
22588
22589 * expr.c (expand_invoke): Use COMPOUND_EXPR (and TREE_SIDE_EFFECTS)
22590 to make sure class is initialized before static/special invoke.
22591
22592 * verify.c (verify_jvm_instructions): On a store instruction,
22593 call find_local_variable to force pre-allocation of decl and rtx.
22594 * decl.c (push_jvm_slot): Set DECL_REGISTER on stack slots.
22595
225961997-09-03 Per Bothner <bothner@cygnus.com>
22597
22598 * class.c (build_class_ref): Strip off "promoted_" if need be.
22599 (make_field_value): Call build_java_signature when needed.
22600 (layout_class): Don't make_function_rtl if METHOD_ABSTRACT.
22601 * expr.c (build_java_athrow): Don't push_value of exception.
22602 (build_java_binop): Implement COMPARE_L_EXPR and COMPARE_G_EXPR to
22603 match specification of [fd]cmp[lg] for NaNs.
22604 (expand_byte_code): Add support for exception handler ranges.
22605 * except.c: Add skeleton for EH code-generation.
22606 * verify.c (merge_types): Treat all promoted integral types as equal.
22607 * constants.c (build_constants_constructor): To force creation of
22608 current_constant_pool_data_ref, call build_constant_data_ref.
22609
22610 * javaop.def (lload): Fix typo.
22611 * jcf-dump.c (main): Clear filename to prevent possibly-bad free.
22612
226131997-09-02 Brendan Kehoe <brendan@lisa.cygnus.com>
22614
22615 * parse.c: Don't include function.h.
22616
226171997-08-27 Per Bothner <bothner@cygnus.com>
22618
22619 * except.[ch]: New files.
22620 * Makefile.in (JAVA_OBJS): Add except.o
22621 * expr.c: Temporary warning about unimplemented exceptions.
22622 * verify.c: Verify exception handlers.
22623
22624 * jcf-dump.c (disassemble_method): Print exception table.
22625
226261997-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
22627
22628 * expr.c (verify_jvm_instructions): Started a thorough
22629 verification of invoke* bytecodes.
22630 (expand_byte_code): flush quick stack if PC is the target of a
22631 branch. and undef RET (conflicting with config/i386/i386.h).
22632 (expand_java_arrayload): Fixed bogus cast, when Boolean type is
22633 used.
22634 (expand_invoke): Now handles invokeinterface and do more
22635 verification according to the bytecode.
22636 (lookup_field): Don't try to load the class if processing
22637 dtable_type.
22638 (can_widen_reference_to): Now handles interfaces.
22639 * decl.c (init_decl_processing): New global variable
22640 soft_lookupinterfacemethod_node, declared in java-tree.h.
22641 Call set_super_info on string_type_node.
22642 * java-tree.h (CLASS_INTERFACE, CLASS_ABSTRACT, CLASS_SUPER): Now
22643 defined.
22644 * class.c (set_super_info): Fills the CLASS_* flags according to
22645 access_flags.
22646 (get_access_flags_from_decl): Handles all class flags.
22647
226481997-08-26 Per Bothner <bothner@cygnus.com>
22649
22650 * class.c (add_method): Zero out newly-allocated DECL_LANG_SPECIFIC.
22651 * parse.c (yyparse): Check for abstract method, and missing code.
22652 * expr.c (expand_byte_code): Change interface.
22653 * lang.c (put_decl_node): Print promoted types prettier.
22654 * verify.c (verify_jvm_instruction): Change interface.
22655 Partial support for scanning exception table.
22656 For load instructions, handle promoted integral types.
22657
226581997-08-21 Per Bothner <bothner@cygnus.com>
22659
22660 * verify.c: New file, with contents moved from expr.c.
22661 * expr.c: Bunch of stuff (mostly verification) moved to verify.c.
22662 * typeck.c (is_array_type_p): Moved here from expr.c.
22663 * java-tree.h: Add some now-needed function declarations.
22664 * Makefile.in (JAVA_OBJS): Added verify.o.
22665
226661997-08-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
22667
22668 * class.c (add_method): Sets the METHOD_SYNCHRONIZED flag, sets the
22669 METHOD_ABSTRACT flag.
22670
22671 * java-tree.h (METHOD_SYNCHRONIZED): Set to DECL_LANG_FLAG_4.
22672 (IS_METHOD_CLINIT_P, IS_METHOD_INIT_P): New macros.
22673 (METHOD_ABSTRACT): Set to DECL_LANG_FLAG_5
22674
22675 * decl.c (soft_monitorenter_node, soft_monitorexit_node): New global
22676 variables.
22677 (start_java_method): Hook for SYNCHRONIZED methods.
22678
22679 * expr.c (build_java_jsr, build_java_ret): New functions
22680 (JSR,PRE): New macros
22681 (PRE_TABLE_SWITCH, PRE_LOOKUP_SWITCH): Fixed and secured.
22682 (verify_jvm_instructions): tableswitch, lookupswitch,
22683 monitorenter, monitorexit, goto_w: verified.
22684 (LOOKUP_SWITCH, TABLE_SWITCH): Fixed generation of default: label
22685 (build_java_monitor): New function.
22686 (MONITOR_OPERATION): Modified to call build_java_monitor()
22687 (verify_jvm_instructions): Started a thorough verification of
22688 invoke* bytecodes.
22689
226901997-08-19 Per Bothner <bothner@cygnus.com>
22691
22692 Support verification of jsr/ret subroutines (used for try/finally).
22693 * decl.c (return_address_type_node): New type node.
22694 * java-tree.h (LABEL_RETURN_LABEL, LABEL_RETURN_TYPE_STATE,
22695 RETURN_MAP_ADJUSTED, LABEL_RETURN_LABELS, LABEL_IN_SUBR,
22696 LABEL_SUBR_START, LABEL_SUBR_CONTEXT, BCODE_VERIFIED): New macros.
22697 (TYPE_UNSET, TYPE_SECOND, TYPE_NULL, TYPE_RETURN_ADDR, TYPE_UNUSED,
22698 TYPE_USED): New macros for special types in type_map.
22699
22700 * java-tree.h (BCODE_JUMP_TARGET): Renamed to BCODE_TARGET.
22701 (BCODE_BACKWARDS_TARGET, CODE_FORWARDS_TARGET): Replaced by
22702 BCODE_JUMP_TARGET.
22703 * expr.c (expand_byte_code): Fix logic to warn of unused instructions.
22704
22705 * expr.c (can_widen_reference_to): New function.
22706 (pop_type): Use it.
22707 (merge_type_state): Support handling start of subroutine.
22708 (push_pending_block): Return char* error message, instead of calling
22709 fatal on an error. Also handle subroutines.
22710 (verify_jvm_instructions): Handle errors from push_poending_block.
22711 Support jsr and ret instructions.
22712
227131997-08-19 Per Bothner <bothner@cygnus.com>
22714
22715 * jcf-io.c (find_classfile): Fix thinko.
22716 * jcf-dump.c: Add CONVERT2 (to match changed javaop.def).
22717
227181997-08-12 Jason Merrill <jason@yorick.cygnus.com>
22719
22720 * Makefile.in (BISON): Remove.
22721
227221997-08-07 Per Bothner <bothner@cygnus.com>
22723
22724 * Makefile.in: Convert to autoconf.
22725 * config-lang.in (outputs): Added java/Makefile.
22726
22727 * Make-lang.in, lang-specs.h, config-lang.in, Makefile.in:
22728 Rename cc1java to jc1.
22729
22730 * lang.c (init_parse, finihs_parse): New functions #ifdef USE_CPPLIB.
22731 * Makefile.in (INTERNAL_CFLAGS): Add @extra_c_flags.
22732
22733 * class.c (class_depth): Do load_class if needed.
22734
22735 Mostly better verification.
22736 * decl.c (pushdecl): Set TYPE_STUB_DECL for a type.
22737 (init_decl_processing): Change return type of soft_checkcast.
22738 * expr.c (expand_java_CHECKCAST): Do push_value of the "casted" value.
22739 * lang.c (put_decl_string, put_decl_node, lang_printable_name,
22740 lang_print_error): New functions.
22741 (lang_init): Set global hook print_error_function to lang_print_error.
22742 * expr.c: In the type_map ptr_type_node is only used for null now.
22743 (pop_type, merge_types): Hence ptr_type_node matches any reference.
22744 (merge_types): Dererence pointer to record types before comparing.
22745 (decode_newarray_type, merge_types): On error just return NULL.
22746 (build_java_binop): Add preliminary implementation (with warning)
22747 for COMPARE_L_EXPR and COMPARE_G_EXPR (i.e. [fd]cmp[lg]).
22748 (lookup_label): Set DECL_IGNORED_P (for dwarf2out).
22749 (expand_compare, expand_java_goto, expand_java_call): Don't
22750 push_pending_block, since that only makes sense when verifying.
22751 (merge_type_state): Different return codes.
22752 (push_pending_block): A block may need to be verified more than once.
22753 (expand_byte_code): Warn about unused code at code generation time.
22754 (verify_jvm_instruction): Changed logic, since code may need to be
22755 re-verified if type-state has changed. Also, better error handling.
22756 Implement acmpeq, acmpne, pop, pop2, swap, checkcast, instanceof.
22757 Improve newarray, anewarray, ?aload, athrow,
22758 * java-tree.h (LABEL_CHANGED): New macro.
22759
227601997-08-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
22761
22762 * decl.c (soft_athrow_node): New global variable initialized.
22763 * javaop.def (i2b, i2c, i2s): Invoke CONVERT2
22764 * typeck.c (convert): Added support for REAL_TYPE.
22765 (convert_to_char): New function.
22766 (convert): Handle CHAR_TYPE.
22767 * expr.c (expand_java_arraystore): Modified because CHAR/BYTE/BOOLEAN/
22768 SHORT now expect INT but store as CHAR/BYTE/BOOLEAN/SHORT.
22769 (expand_java_arrayload): CHAR/BYTE/BOOLEAN/SHORT now convert result to
22770 promoted type.
22771 (verify_jvm_instructions): Added break a the end of bogus unop: label.
22772 (OPCODE_<b|c|s>astore): Pop an int operand from the type stack
22773 (OPCODE_<b|c|s>astore): Push the promoted type onto the stack
22774 (process_jvm_instruction): New macro CONVERT2 for i2c, i2s and i2b.
22775 (JAVA_ARRAY_LENGTH_OFFSET, JAVA_ARRAY_DATA_OFFSET): Modified
22776 to Use The Right Things.
22777 (pop_type): Accept CHAR/BYTE/BOOLEAN/SHORT promoted type as
22778 compatible with INT. BOOLEAN is made equivalent to BYTE.
22779 (OPCODE_athrow, OPCODE_aconst_null, OPCODE_ifnull,
22780 OPCODE_ifnonnull): Now supported.
22781 (build_java_athrow): New function.
22782
227831997-08-04 Per Bothner <bothner@cygnus.com>
22784
22785 Rename method name <init> to match G++ (and fix mangling).
22786 * class.c (layout_class): Replace method name of <init> by class name.
22787 (make_method_value): Do inverse renaming of constructor from <init>.
22788 * java-tree.h (DECL_CONSTRUCTOR_P): New macro.
22789 * typeck.c (lookup_java_constructor): New function.
22790 * expr.c (expand_invoke): If method_name is <init>, call
22791 lookup_java_constructor to find constructor.
22792
22793 * parse.c (get_constant): Handle CONSTANT_Float and CONSTANT_Double.
22794
227951997-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
22796
22797 * parse.c (get_class_constant): Modified to handle array "classes"
22798 * typeck.c (set_local_type): Bug fixed when filling type_map[] with
22799 wide type.
22800 (convert): Modified to handle real type.
22801 * java-tree.h (soft_badarrayindex_node, soft_anewarray_node,
22802 soft_multianewarray, soft_newarray_node, soft_throw_node): New global
22803 variables declared.
22804 * decl.c (soft_badarrayindex_node, soft_anewarray_node,
22805 soft_multianewarray, soft_newarray_node, soft_throw_node): New
22806 global variables initialized.
22807 (find_local_variable): Handles the case of a pointer
22808 (end_java_method): Restore the use of one more scope
22809 * expr.c (build_java_arraynull_check, build_java_arrayaccess,
22810 build_java_array_length_access, expand_java_arrayload,
22811 expand_java_arraystore, expand_java_array_length,
22812 expand_java_multianewarray, expand_java_anewarray,
22813 build_java_check_indexed_type, is_array_type_p,
22814 build_java_throw_out_of_bound_exception): New functions.
22815 (STORE_INTERNAL): Now forces type of the decl to be type of the value.
22816 (OPCODE_arraylength, OPCODE_newarray, OPCODE_<t>astore,
22817 OPCODE_<t>aload): Implemented code for verification.
22818 (ARRAY_STORE, ARRAY_LOAD, ARRAY_LENGTH, ARRAY_NEW_PTR, ARRAY_NEW_NUM
22819 ARRAY_NEW_MULTI): Macro defined.
22820 (CONVERT): Modified to invoke convert().
22821 (case OPCODE_aload2): Fixed index typo from 2 to 1.
22822
228231997-07-31 Per Bothner <bothner@cygnus.com>
22824
22825 * class.c (push_class): Set DECL_ARTIFICIAL (for dbxout.c).
22826 (build_class_ref, is_compiled_class): Handle pointer-to-record types.
22827 (make_class_data): Field name needs '/' as package prefix.
22828 * expr.c (type_stack_dup, java_stack_dup): Fix fencepost errors.
22829
228301997-07-25 Per Bothner <bothner@cygnus.com>
22831
22832 Implement debug information for local variables.
22833 * java-tree.h (DECL_CODE_LENGTH, DECL_ARG_SLOT_COUNT,
22834 DECL_LOCAL_SLOT_NUMBER, DECL_LOCAL_START_PC, DECL_LOCAL_END_PC,
22835 DECL_LOCAL_SLOT_CHAIN): New macros.
22836 (struct lang_decl_var): New type.
22837 * parse.c (give_name_to_locals): Move to decl.c.
22838 * decl.c (give_name_to_locals): Re-written to Do The Right Thing.
22839 (start_java_method): Re-write parameter handling.
22840 (pending_local_decls): New global variable.
22841 (push_jvm_slot, maybe_pushlevels, maybe_poplevels): New functions.
22842 (find_local_variable): Accept pc so we can skips decls not in range.
22843 (struct binding_level): Add end_pc field.
22844 * expr.c (expand_byte_code): Call maybe_pushlevels and maybe_poplevels.
22845 (various): Change so current pc gets passed to find_local_variable.
22846
22847 * decl.c (init_decl_processing): Re-arrange fields in
22848 class_type_node and and method_type_node to match kaffe 0.9.1.
22849 * class.c (make_method_value, make_class_data): Update
22850 initializations to match.
22851
228521997-07-16 Per Bothner <bothner@cygnus.com>
22853
22854 * class.c (unicode_mangling_length, emit_unicode_mangled_name,
22855 append_gpp_mangled_name, append_gpp_mangled_type): New functions.
22856 (push_super_field): New function.
22857 (make_class_data): Handle inheritance of class static initializer.
22858 (layout_class): New name mangling.
22859 * constants.c (build_constant_data_ref): Init type of data array
22860 to a one-element array.
22861 (build_constants_constructor): Set DECL_SIZE from complete array type.
22862 * decl.c: Rename class_type, object_type etc to class_type_node,
22863 object_type_node etc. Make former inherit from latter.
22864 * expr.c (expand_invoke): Add cast of function address.
22865 * java-tree.h (TYPE_ARRAY_ELEMENT, PUSH_SUPER_VALUE): New.
22866 * parse.c (yyparse): Don't call layout_class here.
22867 * typeck.c (build_java_array_type): Set TYPE_ARRAY_ELEMENT.
22868
228691997-06-14 Per Bothner <bothner@cygnus.com>
22870
22871 * decl.c, class.c: Update method type to match latest Kaffe snapshot.
22872 * constants.c (lookup_name_constant): Renamed to alloc_name_constant.
22873 (alloc_class_constant): New.
22874 * expr.c (expand_invoke): Make sure method's class is initialized.
22875 * class.c (interits_from_p, emit_register_class): New functions.
22876 * parse.c (yyparse): Call emit_register_class.
22877
228781997-06-09 Per Bothner <bothner@cygnus.com>
22879
22880 * constants.c: New file, to handle constant pool.
22881 * Makefile.in (JAVA_OBJS): Add constants.o.
22882 * decl.c (init_decl_processing): Update, fix, finish various structs.
22883 (pushdecl_top_level): New.
22884 * parse.c (layout_class): Moved to class.c.
22885 * expr.c (java_push_constant_from_pool): New function.
22886 * class.c (build_class_ref): Make work fully
22887 (make_class_data): Emit super-class, constant pool, interface vector.
22888
228891997-06-03 Per Bothner <bothner@cygnus.com>
22890
22891 java-tree.h (DECL_SIGNATURE, BCODE_EMITTED): Remove.
22892 (LABEL_VERIFIED, BCODE_EXCEPTION_TARGET, TYPE_ARRAY_P): New.
22893 * class.c (class_depth): New function.
22894 (lookup_named_class): Replaced by new function lookup_class.
22895 * decl.c (object_type_node, string_type_node): New.
22896 Remove various types that we no longer need.
22897 * expr.c (verify_jvm_instructions): New separate verifier pass.
22898 (push_type, pop_type): New functions for verifier.
22899 (type_stack_dup, pop_argument_types, merge_types): Likewise.
22900 (expand_byte_code): Simplify, since we assume already verified.
22901 (expand_invoke): Now mostly works.
22902 * javaop.def: Rename ldc1->ldc, ldc2->ldc_w, ldc2w->ldc2_w.
22903 * lang.c (main_class): Move to parse.c. Don't make_class yet.
22904 * parse.c: Wait to allocate class object until we know its name.
22905 (layout_class): Calculate DECL_VINDEX for each virtual method.
22906 * typeck.c (get_array_type): Rename to ...
22907 (build_java_array_type): ... and provide working implementation.
22908 (build_java_signature): New function - build Java signature of type.
22909 (set_java_signature): New function - cache signature with type.
22910 (lookup_java_method): New function.
22911
229121997-05-06 Per Bothner <bothner@deneb.cygnus.com>
22913
22914 * class.c (ident_subst): Take extra SUFFIX parameter.
22915 (add_field): Set DECL_ASSEMBLER_NAME of static fields; more.
22916 (set_constant_value, build_static_field_ref, is_compiled_class): New.
22917 (build_class_ref): Actually implement.
22918 * decl.c, java-tree.h: Renamed some xx_type to xx_type_node.
22919 * decl.c (builtin_function): New.
22920 (init_decl_processing): Update for current Kaffe. Declare some
22921 builtin Kaffe functions.
22922 * expr.c (build_address_of): New.
22923 (expand_java_NEW, expand_java_INSTANCEOF, expand_java_CHECKCAST):
22924 Renamed (from expand_java_new etc), and added working implementations.
22925 (build_field_ref): Now also handle static fields.
22926 (expand_invoke): Implement invokestatic, and start implement rest.
22927 * java-opcodes.h: Use javaop.def to avoid duplicated list.
22928 * javaop.def: Rename invokevirt -> invokevirtual.
22929 * lang.c (use_handles): Removed.
22930 * parse.c: Add support for ConstantValue attribute.
22931 Handle nested loading of a class. (JPOOL_UTF): New.
22932
229331997-03-11 Per Bothner <bothner@deneb.cygnus.com>
22934
22935 * expr.c (expand_java_pushc): Support #ifndef REAL_ARITHMETIC case.
22936
229371997-02-27 Per Bothner <bothner@deneb.cygnus.com>
22938
22939 * Make-lang.in (java.install-man): New empty rule.
22940 * typeck.c (set_local_type): New function.
22941 * expr.c (STORE_INTERNAL): Call find_local_variable,
22942 not find_stack_slot. Call set_local_type.
22943
229441997-02-12 Per Bothner <bothner@kalessin.cygnus.com>
22945
22946 * java-tree.h: Various new macros for constructing RECORD_TYPEs,
22947 and building RECORD_TYPE CONSTRUCTORs.
22948 Also support for creating Utf8Const objects from an INDETIFIER_NODE.
22949
22950 * lang.c (use_handles): Change the default to 0.
22951 * decl.c: Define and build class_type, field_type, utf8const_type.
22952 * class.c (make_class_data, make_field_value,
22953 get_access_flags_from_decl, build_class_ref, build_utf8_ref,
22954 hashUtf8String, strLengthUtf8, mangled_classname:
22955 Functions to build reflective data structures.
22956 * parse.c (yyparse): Call make_class_data.
22957
22958 * jcf-io.c (open_class, find_classfile): New functions.
22959 * jcf-dump.c: Support reading classfile from explicitly-named
22960 class file (without CLASSPATH searching).
22961
229621996-10-24 Per Bothner <bothner@deneb.cygnus.com>
22963
22964 * jcf-reader.c: Add parameter list to HANDLE_CONSTANT_Utf8.
22965 * parse.c (JPOOL_UTF_LENGTH, JPOOL_UTF_DATA, HANDLE_CONSTANT_Utf8):
22966 Override jcf-reader macros so CONSTANT_Utf8 becomes tree node here.
22967 (get_constant): Now trivial for CONSTANT_Utf8.
22968
22969 * jcf.h: Make NEW_CPOOL the default.
22970 * jcf.h, jcf-reader.c, parse.c: Remove support for !NEW_CPOOL.
22971
229721996-10-24 Per Bothner <bothner@deneb.cygnus.com>
22973
22974 New directory.
22975
ad41bd84 22976\f
0ffc0b3b 22977Copyright (C) 1996-2014 Free Software Foundation, Inc.
ad41bd84
JM
22978
22979Copying and distribution of this file, with or without modification,
22980are permitted in any medium without royalty provided the copyright
22981notice and this notice are preserved.