f99a99314c4f050e3cc2ee0c117d84c51b2c9110
[gcc.git] / gcc / java / ChangeLog
1 2013-04-09 Richard Biener <rguenther@suse.de>
2
3 * expr.c (build_java_binop): Pass a type to build_int_cst.
4
5 2013-03-22 Kai Tietz <ktietz@redhat.com>
6
7 * lang.c (put_decl_node): Don't iterate over end_params_node.
8
9 2013-01-03 Jakub Jelinek <jakub@redhat.com>
10
11 * jcf-dump.c (version): Update copyright notice dates.
12
13 2012-11-16 Diego Novillo <dnovillo@google.com>
14
15 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
16
17 * boehm.c: Use new vec API in vec.h.
18 * class.c: Likewise.
19 * constants.c: Likewise.
20 * decl.c: Likewise.
21 * expr.c: Likewise.
22 * java-tree.h: Likewise.
23 * jcf-parse.c: Likewise.
24 * resource.c: Likewise.
25 * verify-glue.c: Likewise.
26
27 2012-11-15 Jan Hubicka <jh@suse.cz>
28
29 * builtins.c (define_builtin): Accept ECF flags and
30 use set_call_expr_flags.
31 (initialize_builtins): Update.
32
33 2012-10-01 Lawrence Crowl <crowl@google.com>
34
35 * Make-lang.in (JAVA_OBJS): Add dependence on hash-table.o.
36 (JCFDUMP_OBJS): Add dependence on hash-table.o.
37 (jcf-io.o): Add dependence on hash-table.h.
38 * jcf-io.c (memoized_class_lookups): Change to use type-safe hash table.
39
40 2012-09-24 Lawrence Crowl <crowl@google.com>
41
42 * decl.c (java_init_decl_processing): Change to new double_int API.
43 * jcf-parse.c (get_constant): Likewise.
44 * boehm.c (mark_reference_fields): Likewise.
45 (get_boehm_type_descriptor): Likewise.
46
47 2012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
48
49 * jcf.h (CPool): Use the "atomic" GTY option for the tags field.
50 (bootstrap_method): Likewise for the bootstrap_arguments field.
51
52 2012-07-16 Steven Bosscher <steven@gcc.gnu.org>
53
54 * java-gimplify.c Include dumpfile.h instead of tree-dump.h
55 * Make-lang.in: Fix dependencies.
56
57 2012-07-11 Steven Bosscher <steven@gcc.gnu.org>
58
59 * java-tree.h (force_evaluation_order): Remove prototype.
60 * expr.c (force_evaluation_order): Remove unused function.
61
62 2012-07-11 Steven Bosscher <steven@gcc.gnu.org>
63
64 * decl.c: Do not include libfuncs.h.
65 * class.c: Do not include defaults.h.
66 * jvgenmain.c: Likewise.
67 * magnle.c: Likewise.
68 * Make-lang.in (decl.o): Fix dependencies.
69
70 2012-07-08 Steven Bosscher <steven@gcc.gnu.org>
71
72 * verify.h: Do not include system.h and coretypes.h here.
73 * verify-impl.c: Include them here instead.
74
75 2012-07-05 Uros Bizjak <ubizjak@gmail.com>
76
77 * jcf-io.c (read_zip_member): Initialize d_stream.
78
79 2012-05-31 Steven Bosscher <steven@gcc.gnu.org>
80
81 * resource.c: Do not include output.h.
82
83 2012-05-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
84
85 PR java/52815
86 * class.c (emit_register_classes_in_jcr_section): Revise placement
87 of #ifdef JCR_SECTION_NAME.
88
89 2012-04-22 Jan Hubicka <jh@suse.cz>
90
91 * class.c (build_utf8_ref): Do not mark varpool node as needed.
92
93 2012-04-20 Jan Hubicka <jh@suse.cz>
94
95 * class.c (make_local_function_alias): Do not mark symbol referenced.
96
97 2012-04-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
98
99 * jcf-dump.c (print_constant): Cast JPOOL_USHORT2, JPOOL_USHORT1
100 results to long to match formats.
101
102 2012-04-11 Andrew Haley <aph@redhat.com>
103
104 * jcf-reader.c (jcf_parse_bootstrap_methods): Add
105 ATTRIBUTE_UNUSED.
106
107 2012-04-11 Andrew Haley <aph@redhat.com>
108
109 * jcf.h (bootstrap_method): New.
110 (BootstrapMethods): New.
111 (JCF): Add BootstrapMethods.
112 (enum cpool_tag): Add MethodHandle, MethodType, and InvokeDynamic.
113 * jcf-reader.c (jcf_parse_bootstrap_methods): New.
114 (jcf_parse_constant_pool): Handlers for MethodHandle, MethodType,
115 and InvokeDynamic.
116 (jcf_parse_bootstrap_methods): New.
117 * javaop.def (invokedynamic): New opcode.
118 * jcf-parse.c (get_constant): An unknown constant type should not
119 be an internal error, but a fatal one. Make it so.
120 * jcf-dump.c (HANDLE_BOOTSTRAP_METHODS_ATTRIBUTE): New.
121 (HANDLE_END_BOOTSTRAP_METHODS): New.
122 (print_constant): Handlers for MethodHandle, MethodType, and
123 InvokeDynamic.
124
125 2012-04-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
126
127 * class.c (emit_register_classes_in_jcr_section): Set DECL_USER_ALIGN.
128 Clear TREE_READONLY.
129
130 2012-03-29 Steven Bosscher <steven@gcc.gnu.org>
131
132 PR java/52730
133 * class.c (emit_register_classes_in_jcr_section): New function.
134 (emit_Jv_RegisterClass_calls): New function, split out from ...
135 (emit_register_classes): ... here. Reorganize. Do not call
136 output_constant.
137
138 2012-01-23 Andreas Schwab <schwab@linux-m68k.org>
139
140 * lang.c (java_init_options_struct): Set
141 frontend_set_flag_trapping_math.
142
143 2012-01-01 Jakub Jelinek <jakub@redhat.com>
144
145 * jcf-dump.c (version): Update copyright notice dates.
146
147 2011-12-03 Matthias Klose <doko@ubuntu.com>
148
149 * expr.c (SPECIAL_WIDE): Fix typo in message.
150
151 2011-11-23 Jeffrey A Law (law@cygnus.com)
152
153 * lang.c (java_init_options_struct): Disable optimizations
154 which assume a NULL pointer dereference will cause a fault.
155
156 2011-11-07 Richard Henderson <rth@redhat.com>
157
158 * builtins.c (compareAndSwapInt_builtin): Use can_compare_and_swap_p.
159 (compareAndSwapLong_builtin): Likewise.
160 (compareAndSwapObject_builtin): Likewise.
161 (VMSupportsCS8_builtin): Likewise.
162
163 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
164
165 * Make-lang.in (jvspec.o): Pass SHLIB instead of SHLIB_LINK.
166
167 2011-10-15 Tom Tromey <tromey@redhat.com>
168 Dodji Seketeli <dodji@redhat.com>
169
170 * jcf-parse.c (set_source_filename): Adjust to the new map API.
171
172 2011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
173
174 * class.c (build_static_field_ref): Delete old interface with two
175 parallel arrays to hold standard builtin declarations, and replace
176 it with a function based interface that can support creating
177 builtins on the fly in the future. Change all uses, and poison
178 the old names. Make sure 0 is not a legitimate builtin index.
179 * decl.c (java_init_decl_processing): Ditto.
180 * except.c (compareAndSwapLong_builtin): Ditto.
181 (compareAndSwapObject_builtin): Ditto.
182 (putVolatile_builtin): Ditto.
183 (define_builtin): Ditto.
184 (check_for_builtin): Ditto.
185 * expr.c (rewrite_arglist_getcaller): Ditto.
186 (expand_java_field_op): Ditto.
187
188 2011-08-24 Joseph Myers <joseph@codesourcery.com>
189
190 * Make-lang.in (CFLAGS-java/jcf-io.o, CFLAGS-java/jcf-path.o):
191 New.
192 (java/jcf-io.o, java/jcf-path.o): Remove explicit compilation
193 rules.
194
195 2011-08-18 Peter Collingbourne <peter@pcc.me.uk>
196
197 * expr.c (expand_invoke) Use the type of the method rewrite
198 target.
199
200 2011-08-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
201
202 * jcf-dump.c (print_constant): Cast first frexp arg.
203
204 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
205
206 * Make-lang.in ($(XGCJ)$(exeext)): Add $(EXTRA_GCC_LIBS).
207
208 2011-07-19 Richard Guenther <rguenther@suse.de>
209
210 * builtins.c (static): Use fold_build_pointer_plus.
211 * class.c (make_class_data): Likewise.
212 (build_symbol_entry): Likewise.
213 * except.c (build_exception_object_ref): Likewise.
214 * expr.c (build_java_arrayaccess): Likewise.
215 (build_field_ref): Likewise.
216 (build_known_method_ref): Likewise.
217 (build_invokevirtual): Likewise.
218
219 2011-07-06 Richard Guenther <rguenther@suse.de>
220
221 * decl.c (java_init_decl_processing):
222 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
223
224 2011-06-21 Andrew MacLeod <amacleod@redhat.com>
225
226 * builtins.c: Add sync_ or SYNC__ to builtin names.
227 * expr.c: Add sync_ or SYNC__ to builtin names.
228
229 2011-06-07 Richard Guenther <rguenther@suse.de>
230
231 * decl.c (java_init_decl_processing): Call build_common_nodes,
232 build_common_nodes_2 at the beginning. Remove then duplicate
233 initializations.
234
235 2011-06-07 Richard Guenther <rguenther@suse.de>
236
237 * decl.c (java_init_decl_processing): Properly initialize
238 size_type_node.
239
240 2011-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
241
242 PR middle-end/46500
243 * expr.c: Include "tm.h" .
244
245 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
246
247 * decl.c (poplevel): Don't access TREE_TYPE of BLOCKs.
248 * expr.c (build_jni_stub): Likewise.
249
250 2011-05-24 Joseph Myers <joseph@codesourcery.com>
251
252 * Make-lang.in ($(XGCJ)$(exeext)): Use libcommon-target.a instead
253 of prefix.o.
254
255 2011-05-20 Joseph Myers <joseph@codesourcery.com>
256
257 * Make-lang.in ($(XGCJ)$(exeext)): Don't explicitly use intl.o and
258 version.o.
259 (JCFDUMP_OBJS): Remove errors.o, version.o and intl.o.
260 (JVGENMAIN_OBJS): Remove errors.o and intl.o.
261 (java/jcf-dump.o, java/jvgenmain.o): Depend in $(DIAGNOSTIC_H).
262 * jcf-dump.c: Include diagnostic.h.
263 (main): Initialize diagnostics.
264 * jvgenmain.c: Include diagnostic.h.
265 (main): Initialize diagnostics.
266
267 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
268
269 * java-tree.h (TYPE_ARGUMENT_SIGNATURE): Use TYPE_MINVAL.
270
271 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
272
273 * java-tree.h (global_bindings_p): Adjust prototype.
274 * decl.c (global_bindings_p): Return bool.
275
276 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
277
278 * expr.c (expand_java_switch): Call build_case_label.
279 (expand_java_add_case): Likewise.
280
281 2011-04-29 Richard Guenther <rguenther@suse.de>
282
283 PR middle-end/48819
284 * constants.c (build_constants_constructor): Use ptr_type_node for
285 temp.
286
287 2011-04-20 Jim Meyering <meyering@redhat.com>
288
289 * jcf-parse.c (java_parse_file): Remove useless if-before-free.
290
291 2011-04-18 Jim Meyering <meyering@redhat.com>
292
293 * jcf-parse.c: Fix typo in comment.
294
295 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
296
297 * decl.c (poplevel): Use BLOCK_CHAIN and block_chainon.
298
299 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
300
301 * java-tree.h (union lang_tree_node): Check for TS_COMMON before
302 calling TREE_CHAIN.
303
304 2011-04-11 Martin Jambor <mjambor@suse.cz>
305
306 * decl.c (java_mark_decl_local): Call cgraph_get_node instead of
307 cgraph_node and handle returned NULL.
308
309 2011-03-25 Kai Tietz <ktietz@redhat.com>
310
311 * jcf-parse.c (java_read_sourcefilenames): Use filename_cmp
312 instead of strcmp.
313 (set_source_filename): Likewise.
314 * win32-host.c (jcf_open_exact_case): Likewise.
315
316 2011-03-21 Kai Tietz <ktietz@redhat.com>
317
318 PR target/12171
319 * lang.c (java_attribute_table): Adjust table.
320
321 2011-02-13 Joseph Myers <joseph@codesourcery.com>
322
323 * jvspec.c (jvgenmain_spec): Remove %{a*}.
324
325 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
326
327 PR bootstrap/47215
328 * decl.c (java_init_decl_processing): Remove
329 va_list_type_node related type initializations.
330
331 2011-01-11 Kai Tietz <kai.tietz@onevision.com>
332
333 PR bootstrap/47215
334 * decl.c (java_init_decl_processing): Initialize
335 long_integer_type_node.
336
337 2011-01-07 Kai Tietz <kai.tietz@onevision.com>
338
339 PR bootstrap/47215
340 * decl.c (java_init_decl_processing): Initialize unsigned_type_node.
341
342 2011-01-07 Kai Tietz <kai.tietz@onevision.com>
343
344 * decl.c (java_init_decl_processing): Setup va_list_type_node.
345
346 2011-01-03 Jakub Jelinek <jakub@redhat.com>
347
348 * jcf-dump.c (version): Update copyright notice dates.
349
350 2010-12-15 Dave Korn <dave.korn.cygwin@gmail.com>
351
352 * decl.c (java_init_decl_processing): Initialise integer_three_node.
353 * lang.c (put_decl_node): Handle nested function decls.
354
355 2010-12-07 Joseph Myers <joseph@codesourcery.com>
356
357 * jcf-parse.c: Don't include assert.h.
358 (java_parse_file): Use gcc_assert.
359
360 2010-12-03 Joseph Myers <joseph@codesourcery.com>
361
362 * lang.opt (static-libgcj): New option.
363
364 2010-12-01 Joseph Myers <joseph@codesourcery.com>
365
366 * jcf-parse.c: Don't include toplev.h.
367 * Make-lang.in (java/jcf-parse.o): Don't depend on toplev.h.
368
369 2010-11-30 Joseph Myers <joseph@codesourcery.com>
370
371 * boehm.c: Don't include toplev.h.
372 * Make-lang.in (java/boehm.o): Don't depend on toplev.h.
373
374 2010-11-30 Joseph Myers <joseph@codesourcery.com>
375
376 * expr.c, lang.c, mangle.c, mangle_name.c, typeck.c,
377 verify-glue.c: Don't include toplev.h.
378 * Make-lang.in: Dependencies for above files changed to remove
379 toplev.h.
380
381 2010-11-29 Joseph Myers <joseph@codesourcery.com>
382
383 * boehm.c: Include "config.h" instead of <config.h>.
384 * builtins.c: Don't include <stdarg.h>.
385 * class.c: Don't include "stdio.h".
386 (O_BINARY): Don't define here.
387 * jcf-depend.c: Don't include <assert.h>.
388 (jcf_dependency_set_dep_file, jcf_dependency_init,
389 jcf_dependency_write): Use gcc_assert.
390 * jcf-io.c (O_BINARY): Don't define here.
391 * jcf-path.c: Don't include "tm.h".
392 (jcf_path_init): Use getenv instead of GET_ENVIRONMENT.
393 * resource.c: Don't include "stdio.h".
394 (O_BINARY): Don't define here.
395 * verify-impl.c: Don't include <stdio.h>.
396
397 2010-11-17 Joseph Myers <joseph@codesourcery.com>
398
399 * jcf-parse.c (java_parse_file): Take no arguments.
400 * java-tree.h (java_parse_file): Update prototype.
401
402 2010-11-09 Joern Rennecke <amylaar@spamcop.net>
403 Andrew Haley <aph@redhat.com>
404
405 PR java/46386
406 * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
407
408 2010-11-12 Joseph Myers <joseph@codesourcery.com>
409
410 * Make-lang.in (jvspec.o, java/lang.o): Use $(OPTS_H).
411 * lang.c (java_handle_option): Take location_t parameter.
412
413 2010-11-10 Joseph Myers <joseph@codesourcery.com>
414
415 * expr.c (expand_java_field_op): Use %' in diagnostic.
416 * jcf-parse.c (java_parse_file): Use %' in diagnostics.
417 * jvspec.c (lang_specific_driver): Use %' in diagnostic.
418 * lang.c (java_post_options): Use %' in diagnostics.
419
420 2010-11-06 Joern Rennecke <amylaar@spamcop.net>
421
422 PR middle-end/46314
423 * class.c: Include target.h.
424 (make_local_function_alias):
425 Use targetm.asm_out.generate_internal_label.
426 * expr.c (lookup_label, generate_name): Likewise.
427
428 2010-11-03 Joern Rennecke <joern.rennecke@embecosm.com>
429
430 PR bootstrap/44335
431 * jfc-parse.c (target.h): Include.
432 (handle_constant): Use targetm.words_big_endian and
433 targetm.float_words_big_endian.
434 (get_constant): Use targetm.float_words_big_endian.
435
436 2010-10-13 Richard Henderson <rth@redhat.com>
437
438 * lang.c (java_eh_personality): Update call to
439 build_personality_function.
440
441 2010-10-12 Joseph Myers <joseph@codesourcery.com>
442
443 * Make-lang.in (java/lang.o): Use $(OPTIONS_H) instead of
444 options.h.
445
446 2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
447
448 * decl.c (java_init_decl_processing): Use build_function_type_list
449 instead of build_function_type.
450 * jcf-parse.c (java_emit_static_constructor): Likewise.
451 * builtins.c (initialize_builtins): Likewise.
452
453 2010-10-08 Joseph Myers <joseph@codesourcery.com>
454
455 * lang.c (java_init_options_struct): New. Split out from
456 java_init_options.
457 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
458
459 2010-10-04 Andi Kleen <ak@linux.intel.com>
460
461 * Make-lang.in (xgcj, jc1, jcf-dump, jvgenmain):
462 Add + to build rule.
463
464 2010-09-29 Joseph Myers <joseph@codesourcery.com>
465
466 * lang.opt: Don't use VarExists.
467
468 2010-09-29 Joseph Myers <joseph@codesourcery.com>
469
470 * java-tree.h (flag_filelist_file, flag_assert, flag_jni,
471 flag_force_classes_archive_check, flag_redundant, flag_newer,
472 flag_use_divide_subroutine, flag_use_atomic_builtins,
473 flag_use_boehm_gc, flag_hash_synchronization,
474 flag_check_references, flag_optimize_sci, flag_indirect_classes,
475 flag_indirect_dispatch, flag_store_check,
476 flag_reduced_reflection): Remove.
477 * jcf-dump.c (flag_newer): Remove.
478 * jcf.h (quiet_flag): Remove.
479 * parse.h (quiet_flag): Remove.
480
481 2010-09-28 Richard Henderson <rth@redhat.com>
482
483 * lang.c: Include "target.h".
484 (java_eh_personality): Use targetm.except_unwind_info.
485 * Make-lang.in (lang.o): Update deps.
486
487 2010-09-27 Andrew Haley <aph@redhat.com>
488
489 PR java/45773
490 * jvgenmain.c (main): Fix arg processing.
491
492 2010-09-22 Joseph Myers <joseph@codesourcery.com>
493
494 * jvspec.c (lang_specific_driver): Handle OPT__help instead of
495 OPT_fhelp.
496 * lang.opt (-CLASSPATH, -all-warnings, -bootclasspath, -classpath,
497 -dependencies, -encoding, -extdirs, -include-directory,
498 -include-directory=, -output-class-directory,
499 -output-class-directory=, -resource, -resource=,
500 -user-dependencies): New.
501
502 2010-09-16 Richard Guenther <rguenther@suse.de>
503
504 * jcf-parse.c (current_file_list): Remove.
505 (java_parse_file): Use build_translation_unit_decl. Adjust.
506
507 2010-09-03 Joseph Myers <joseph@codesourcery.com>
508
509 * lang.opt (d): New.
510
511 2010-09-03 H.J. Lu <hongjiu.lu@intel.com>
512
513 PR java/45504
514 * jvgenmain.c (main): Check "-D XXX=YYY".
515
516 2010-09-02 Joseph Myers <joseph@codesourcery.com>
517
518 * jvspec.c (jvgenmain_spec): Don't handle -fnew-verifier.
519
520 2010-09-02 Joseph Myers <joseph@codesourcery.com>
521
522 * lang.opt (CLASSPATH, bootclasspath, classpath, encoding,
523 fCLASSPATH=): Mark as Java options and as aliases.
524 * jvspec.c (jvgenmain_spec): Don't handle -fCLASSPATH*.
525 (lang_specific_driver): Don't handle options marked as aliases.
526 * lang.c (java_handle_option): Don't handle OPT_fCLASSPATH_.
527
528 2010-08-22 Joseph Myers <joseph@codesourcery.com>
529
530 * Make-lang.in (jvspec.o): Update dependencies.
531 * jvspec.c: Include opts.h.
532 (PARAM_ARG): Remove.
533 (find_spec_file): Do not add leading -specs=.
534 (lang_specific_driver): Use cl_decoded_option structures.
535 * lang.opt (C, CLASSPATH, D, bootclasspath, classpath, encoding,
536 extdirs, fmain=, s-bc-abi): New options.
537
538 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
539
540 * class.c: Use FOR_EACH_VEC_ELT.
541 * expr.c: Likewise.
542 * jcf-parse.c: Likewise.
543 * resource.c: Likewise.
544
545 2010-08-16 Joseph Myers <joseph@codesourcery.com>
546
547 * lang.opt (MD_, MMD_, version): Mark RejectDriver.
548
549 2010-08-05 David Daney <ddaney@caviumnetworks.com>
550
551 * class.c (build_utf8_ref): Fix code formatting from previous commit.
552
553 2010-08-05 David Daney <ddaney@caviumnetworks.com>
554
555 * class.c (build_utf8_ref): Make decl DECL_USER_ALIGN.
556
557 2010-07-27 Joseph Myers <joseph@codesourcery.com>
558
559 * lang.c (java_handle_option): Update prototype and return value
560 type.
561
562 2010-07-27 Joseph Myers <joseph@codesourcery.com>
563
564 * lang.c (java_option_lang_mask): New.
565 (java_init_options): Update prototype.
566 (LANG_HOOKS_OPTION_LANG_MASK): Define.
567
568 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
569
570 * java-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN.
571 * boehm.c: Likewise.
572 * class.c: Likewise.
573 * decl.c: Likewise.
574 * expr.c: Likewise.
575 * jcf-parse.c: Likewise.
576 * typeck.c: Likewise.
577 * verify-glue.c: Likewise.
578
579 2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
580
581 * boehm.c: Include diagnostic-core.h in every file that includes
582 toplev.h.
583 * class.c: Likewise.
584 * constants.c: Likewise.
585 * decl.c: Likewise.
586 * except.c: Likewise.
587 * expr.c: Likewise.
588 * jcf-parse.c: Likewise.
589 * mangle.c: Likewise.
590 * mangle_name.c: Likewise.
591 * resource.c: Likewise.
592 * typeck.c: Likewise.
593 * verify-glue.c: Likewise.
594
595 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
596
597 PR bootstrap/44825
598 * class.c (make_class_data): Cast result of VEC_length calls to int.
599
600 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
601
602 * constants.c (build_constants_constructor): Use build_constructor
603 instead of build_constructor_from_list.
604 * class.c (make_method_value): Likewise.
605 (get_dispatch_table): Likewise.
606 (make_class_data): Likewise.
607 (emit_indirect_register_classes): Likewise.
608 (emit_symbol_table): Likewise.
609 (add_assertion_table_entry): Likewise.
610 (emit_assertion_table): Likewise.
611 (make_field_value): Use build_constructor_single instead of
612 build_constructor_from_list.
613
614 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
615
616 * java-tree.h (struct lang_type) [catch_classes]: Change type to a
617 VEC.
618 * except.c (prepare_eh_table_type): Call CONSTRUCTOR_APPEND_ELT
619 instead of tree_cons.
620 * class.c (make_class): Add dummy entry to TYPE_CATCH_CLASSES.
621 (emit_catch_table): Adjust for new type of TYPE_CATCH_CLASSES.
622
623 2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
624
625 * lang.c: Do not include except.h
626 * except.c: Likewise.
627 (doing_eh): New, moved from except.c (in gcc/) but removed the
628 do_warning flag.
629 (maybe_start_try): Update doing_eh call.
630 * Make-lang.in: Update dependencies.
631
632 2010-06-23 Anatoly Sokolov <aesok@post.ru>
633
634 * decl.c (java_init_decl_processing): Use double_int_to_tree instead
635 of build_int_cst_wide.
636 * boehm.c (set_bit): Remove.
637 (mark_reference_fields): Use double_int type for 'mask' argument.
638 Use double_int_setbit instead of set_bit.
639 (get_boehm_type_descriptor): Use double_int_setbit instead of
640 set_bit. Use double_int_to_tree instead of build_int_cst_wide.
641
642 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
643
644 * gcj.texi: Move to GFDL version 1.3. Fix copyright years.
645
646 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
647
648 * jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation.
649
650 * jcf-parse.c (java_parse_file): Likewise.
651 (process_zip_dir): Likewise.
652
653 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
654 (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
655
656 * expr.c (add_type_assertion): Likewise.
657
658 * decl.c (make_binding_level): Likewise.
659 (java_dup_lang_specific_decl): Likewise.
660
661 * constants.c (set_constant_entry): Likewise.
662 (cpool_for_class): Likewise.
663
664 * class.c (add_method_1): Likewise.
665 (java_treetreehash_new): Likewise.
666
667 * java-tree.h (struct lang_type): Add variable_size GTY option.
668 (struct lang_decl): Likewise.
669
670 * jch.h (struct cpool_entry): Likewise.
671
672 * java-tree.h (java_treetreehash_create): Remove parameter ggc.
673
674 * except.c (prepare_eh_table_type): Update
675 java_treetreehash_create call.
676
677 * class.c (add_method_1): Update java_treetreehash_create call.
678 (java_treetreehash_create): Remove parameter gc. Use
679 htab_create_ggc.
680
681 2010-06-04 Joseph Myers <joseph@codesourcery.com>
682
683 * jvspec.c (lang_specific_driver): Use GCC-specific formats in
684 diagnostics.
685
686 2010-05-30 Steven Bosscher <steven@gcc.gnu.org>
687
688 * except.c: Include tm.h.
689
690 2010-05-28 Joseph Myers <joseph@codesourcery.com>
691
692 * jvspec.c (lang_specific_driver): Use fatal_error instead of
693 fatal. Use warning instead of error for warnings.
694
695 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
696
697 * expr.c (get_symbol_table_index): Add spaces in expression.
698
699 2010-05-28 Nathan Froyd <froydnj@codesourcery.com>
700
701 * java-tree.h (method_entry): Declare. Declare VECs containing it.
702 (struct lang_type): Change type of otable_methods, atable_methods, and
703 itable_methods to VECs. Fix comment for atable_methods.
704 (emit_symbol_table): Take a VEC instead of a tree.
705 (get_symbol_table_index): Take a VEC * instead of a tree *.
706 * class.c (add_table_and_syms): Take a VEC instead of a tree.
707 (emit_symbol_table): Update for changed parameter type.
708 * expr.c (get_symbol_table_index): Likewise.
709
710 2010-05-27 Steven Bosscher <steven@gcc.gnu.org>
711
712 * buildings.c: Pretend to be a backend file by undefining
713 IN_GCC_FRONTEND (still need rtl.h here).
714
715 2010-05-26 Nathan Froyd <froydnj@codesourcery.com>
716
717 * java-tree.h (struct lang_decl_func): Change type of throws_list
718 field to a VEC.
719 * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): Adjust for changed type
720 of DECL_FUNCTION_THROWS.
721 * class.c (make_method_value): Likewise.
722
723 2010-05-26 Nathan Froyd <froydnj@codesourcery.com>
724
725 * class.c (utf8_decl_list): Delete.
726 (build_utf8_ref): Remove references to it.
727 * java-tree.h (all_class_list): Delete.
728 (predef_filenames): Delete.
729 (enum java_tree_index) [JTI ALL_CLASS_LIST,JTI_PREDEF_FILENAMES]:
730 Delete.
731 * jcf-parse.c (parse_roots): Decrease size to 2.
732 (current_file_list): Convert to a VEC.
733 (all_class_list): Declare.
734 (jcf_parse): Adjust for new type of all_class_list.
735 (java_layout_seen_class_methods): Likewise.
736 (predefined_filenames): Declare.
737 (add_predefined_file): Use it.
738 (predefined_filename_p): Likewise.
739 (java_parse_file): Adjust for new type of current_file_list.
740
741 2010-05-25 Jakub Jelinek <jakub@redhat.com>
742
743 * lang.c (java_classify_record): Return RECORD_IS_INTERFACE
744 for interfaces.
745
746 PR debug/43260
747 * java-tree.h (pending_static_fields): New extern declaration.
748 (java_write_globals): New prototype.
749 * lang.c (LANG_HOOKS_WRITE_GLOBALS): Define.
750 * decl.c (java_mark_class_local): When clearing DECL_EXTERNAL
751 of a static field push it into pending_static_fields vector.
752 * class.c (pending_static_fields): New variable.
753 (add_field): If static field is not DECL_EXTERNAL, push it into
754 pending_static_fields vector.
755 (java_write_globals): New function.
756
757 2010-05-24 Nathan Froyd <froydnj@codesourcery.com>
758
759 * expr.c (quick_stack): Change type to a VEC. Update comment.
760 (tree_list_free_list): Delete.
761 (flush_quick_stack): Update for quick_stack type change.
762 (push_value): Likewise.
763 (pop_value): Likewise.
764
765 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
766
767 * java-gimplify.c: Do not include tm.h, toplev.h.
768 * typeck.c: Do not include tm.h.
769 * mangle_name.c: Do not include tm.h.
770 * jcf-dump.c: Do not include tm.h, ggc.h.
771 * class.c: Do not include rtl.h, tm_p.h, target.h, except.h, cgraph.h.
772 * decl.c: Do not include tm.h, rtl.h, function.h, expr.h, except.h,
773 and timevar.h.
774 * jcf-parse.c: Do not include tm.h and tm_p.h.
775 * resource.c: Do not include tm.h, rtl.h, flags.h, obstack.h,
776 target.h, and expr.h.
777 * except.c: Do not include tm.h, rtl.h, function.h.
778 * builtins.c: Do not include convert.h. Explain why RTL headers
779 have to be included here.
780 * verify-glue.c: Do not include tm.h.
781 * jcf-depend.c: Do not include tm.h.
782 * jcf-reader.c: Include ggc.h.
783 * jcf-io.c: Do not include tm.h, toplev.h.
784 * expr.c: Do not include tm.h, rtl.h, expr.h, except.h, tm_p.h,
785 gimple.h.
786 * lang.c: Do not include rtl.h, expr.h.
787 * Make-lang.in: Update dependencies.
788
789 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
790
791 * jcf-parse.c: Include bitmap.h.
792 * Make-lang.in: Update dependencies.
793
794 2010-05-20 Jakub Jelinek <jakub@redhat.com>
795
796 PR debug/43521
797 * decl.c (start_java_method): Set DECL_ARTIFICIAL on the 'this'
798 PARM_DECL.
799
800 2010-05-19 Anatoly Sokolov <aesok@post.ru>
801
802 * jcf-parse.c (get_constant): Use double_int_to_tree instead of
803 build_int_cst_wide_type.
804
805 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
806
807 * expr.c (pop_arguments): Fix use of undeclared variable.
808
809 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
810
811 * expr.c (expand_java_multianewarray): Use build_call_vec instead of
812 build_call_list.
813 (pop_arguments): Return a VEC instead of a tree. Take a method type
814 rather than a list of argument types.
815 (rewrite_rule): Change signature. of rewrite_arglist member.
816 (rewrite_arglist_getcaller): Update signature.
817 (rewrite_arglist_getclass): Likewise.
818 (maybe_rewrite_invocation): Update for rewrite_arglist change.
819 (build_known_method_ref): Take a VEC instead of a tree.
820 (invoke_build_dtable): Likewise.
821 (expand_invoke): Update calls to pop_arguments. Use build_call_vec
822 instead of build_call_list.
823 (build_jni_stub): Use build_call_vec instead of build_call_list.
824 * java-tree.h (maybe_rewrite_invocation): Update declaration.
825 (build_known_method_ref): Likewise.
826 (invoke_build_dtable): Likewise.
827
828 2010-05-14 Nathan Froyd <froydnj@codesourcery.com>
829
830 PR 44103
831 * java-tree.h (START_RECORD_CONSTRUCTOR): Change first argument to a
832 vector. Move call to build_constructor...
833 (FINISH_RECORD_CONSTRUCTOR): ...here. Add necessary arguments. Clear
834 TREE_CONSTANT on the constructor.
835 (PUSH_SUPER_VALUE): Change first argument to a vector.
836 (PUSH_FIELD_VALUE): Likewise.
837 * resource.c (compile_resource_data): Update calls to above macros.
838 * constants.c (build_constants_constructor): Likewise.
839 * class.c (build_utf8_ref): Likewise.
840 (make_field_value): Likewise.
841 (make_method_value): Likewise.
842 (add_table_and_syms): New function.
843 (make_class_data): Call it. Update calls to above macros.
844 (build_symbol_table_entry): New function.
845 (build_symbol_entry): Call it. Update calls to above macros.
846 (emit_symbol_table): Likewise.
847 (make_catch_class_record): Update calls to above macros.
848 (build_assertion_table_entry): New function.
849 (add_assertion_table_entry): Call it.
850 (emit_assertion_table): Likewise.
851
852 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
853
854 PR 40989
855 * lang.c (java_handle_option): Add argument kind.
856
857 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
858
859 * decl.c (java_init_decl_processing): Remove argument in call to
860 initialize_sizetypes
861
862 2010-04-07 Jakub Jelinek <jakub@redhat.com>
863
864 * exception.cc (_Jv_Throw): Avoid set but not used warning.
865 * include/java-assert.h (JvAssertMessage, JvAssert): Use argument in
866 sizeof to avoid set but not used warnings.
867
868 2010-01-20 Joern Rennecke <amylaar@spamcop.net>
869
870 * lang.c (java_post_options): Constify variable "dot".
871
872 * jcf-parse.c (set_source_filename): Constify variable "dot".
873 (load_class): Constify variable "separator".
874 Use get_identifier_with_length.
875
876 * jvspec.c (lang_specific_driver): Constify two variables named "p".
877
878 2010-01-09 Jakub Jelinek <jakub@redhat.com>
879
880 * jcf-dump.c (version): Update copyright notice dates.
881
882 2009-11-28 Jakub Jelinek <jakub@redhat.com>
883
884 * jvspec.c (lang_specific_driver): Remove unused
885 saw_verbose_flag variable.
886 * jcf-dump.c (main): Remove unused general_purpose_bits
887 variable.
888 * builtins.c (initialize_builtins): Remove unused float_ftype_float
889 variable.
890 * expr.c (java_stack_pop): Remove unused val variable.
891 (build_jni_stub): Remove unused res_type variable.
892 * verify-impl.c (check_field_constant): Remove unused len variable.
893
894 2009-10-20 Joel Dice <dicej@mailsnare.net>
895
896 PR java/28474
897 * mangle_name.c (append_unicode_mangled_name): Fix mangling
898 of names with multiple underscores and "U".
899 (unicode_mangling_length): Likewise.
900
901 2009-10-03 Simon Baldwin <simonb@google.com>
902
903 * config-lang.in (lang_dirs): Remove zlib.
904
905 2009-09-28 Richard Henderson <rth@redhat.com>
906
907 * builtins.c (initialize_builtins): Update call to
908 build_common_builtin_nodes.
909 * lang.c (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
910
911 2009-09-14 Richard Henderson <rth@redhat.com>
912
913 * builtins.c (initialize_builtins): Update call to
914 build_common_builtin_nodes.
915 * decl.c (java_init_decl_processing): Don't call
916 default_init_unwind_resume_libfunc.
917 * except.c: Include tree-iterator.h.
918 (build_exception_object_var): New.
919 (build_exception_object_ref): Use it.
920 (expand_end_java_handler): Initialize it from __builtin_eh_pointer.
921 Attach all CATCH_EXPRs to a single TRY_CATCH_EXPR.
922 * java-tree.h (DECL_FUNCTION_EXC_OBJ): New.
923
924 2009-09-13 Richard Guenther <rguenther@suse.de>
925 Rafael Avila de Espindola <espindola@google.com>
926
927 * decl.c (do_nothing): Remove.
928 (java_init_decl_processing): Do not set lang_eh_runtime_type.
929 * Make-lang.in (lang.o): Add $(EXCEPT_H) dependency.
930 * lang.c (java_eh_personality): New.
931 (java_eh_personality_decl): Likewise.
932 (LANG_HOOKS_EH_PERSONALITY): Define.
933
934 2009-09-03 Diego Novillo <dnovillo@google.com>
935
936 * lang.c (lang_hooks): Remove const qualifier.
937
938 2009-09-01 Jakub Jelinek <jakub@redhat.com>
939
940 * boehm.c (mark_reference_fields): Compute % in HOST_WIDE_INT
941 type.
942
943 2009-09-01 Richard Guenther <rguenther@suse.de>
944
945 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
946 * java-tree.h (java_mark_addressable): Likewise.
947 * typeck.c (java_mark_addressable): Likewise.
948
949 2009-08-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
950
951 * Make-lang.in (java.install-pdf): Install gcj.pdf in
952 $(pdfdir)/gcc, alongside the other manuals.
953
954 2009-08-12 Andrew Haley <aph@redhat.com>
955
956 * builtins.c (compareAndSwapInt_builtin): Use
957 flag_use_atomic_builtins.
958 (compareAndSwapLong_builtin): Likewise.
959 (compareAndSwapObject_builtin): Likewise.
960 * jvspec.c: Add flag_use_atomic_builtins.
961 * gcj.texi: Likewise.
962 * java-tree.h: Likewise.
963 * lang.opt: Likewise.
964
965 2009-08-11 Dodji Seketeli <dodji@redhat.com>
966
967 PR debug/40990
968 * lang.c (put_decl_node): Outputs different level of information
969 depending on the verbosity level.
970
971 2009-07-31 Andrew Haley <aph@redhat.com>
972
973 PR java/40867
974 * decl.c (java_replace_references): Set EXPR_LOCATION on all
975 generated expressions.
976 (binding_level.loc): new field.
977 (clear_binding_level): Initialize loc.
978 (set_input_location): New function.
979 (pushlevel): Set new binding_level.loc.
980 (poplevel): Set EXPR_LOCATION on the new BIND_EXPR_BODY.
981 (start_java_method): Set DECL_SOURCE_LOCATION of this new method.
982 (java_add_stmt): Set the EXPR_LOCATION on all subtrees of new_stmt.
983
984 2009-07-17 Richard Guenther <rguenther@suse.de>
985
986 PR c/40401
987 * java-gimplify.c (java_genericize): Do not gimplify here.
988 But replace all local references.
989 (java_gimplify_expr): Do not replace local references here.
990 (java_gimplify_modify_expr): Likewise.
991 * jcf-parse.c (java_parse_file): Do not finalize the CU or
992 optimize the cgraph here.
993 * decl.c (java_replace_reference): Make static.
994 (java_replace_references): New function.
995 (end_java_method): Clear base_decl_map.
996 * java-tree.h (java_replace_references): Declare.
997 (java_replace_reference): Remove.
998
999 2009-07-14 Taras Glek <tglek@mozilla.com>
1000 Rafael Espindola <espindola@google.com>
1001
1002 * Make-lang.in (java.install-plugin): New target for
1003 installing plugin headers.
1004
1005 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
1006
1007 * class.c: Replace %J by an explicit location. Update all calls.
1008
1009 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
1010
1011 * jcf-parse.c: Replace %H by an explicit location. Update all calls.
1012
1013 2009-06-29 Andrew Haley <aph@redhat.com>
1014
1015 PR java/40590
1016 * java-tree.h (cxx_keyword_p): New declaration.
1017 * mangle_name.c (utf8_cmp): Move here from mangle.c.
1018 (cxx_keywords): Likewise.
1019 (cxx_keyword_p): Likewise.
1020 (MANGLE_CXX_KEYWORDS): New macro.
1021 (append_gpp_mangled_name): Use MANGLE_CXX_KEYWORDS.
1022 (append_gpp_mangled_name): Likewise.
1023 * mangle.c: Move code to mangle_name.c.
1024 (mangle_member_name): Don't call cxx_keyword_p.
1025
1026 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
1027
1028 * java-gimplify.c (java_gimplify_block): New argument to
1029 build_empty_stmt.
1030 * expr.c (force_evaluation_order): Same.
1031 * typeck.c: Add location to build_decl or PUSH_FIELD calls.
1032 * class.c: Same.
1033 * decl.c: Same.
1034 * jcf-parse.c: Same.
1035 * constants.c: Same.
1036 * resource.c: Same.
1037 * except.c: Same.
1038 * builtins.c: Same.
1039 * expr.c: Same.
1040 * java-tree.h (PUSH_FIELD): Add location field.
1041
1042 2009-06-09 Ian Lance Taylor <iant@google.com>
1043
1044 * verify.h: Remove extern "C".
1045
1046 2009-06-07 Ian Lance Taylor <iant@google.com>
1047
1048 * jcf-parse.c (handle_constant): Change local variable 'kind' to
1049 unsigned int.
1050
1051 2009-06-01 Ian Lance Taylor <iant@google.com>
1052
1053 * jcf-io.c (find_class): Use CONST_CAST.
1054
1055 2009-05-27 Ian Lance Taylor <iant@google.com>
1056
1057 * Make-lang.in ($(XGCJ)$(exeext)): Change $(COMPILER) to
1058 $(LINKER).
1059 (jc1$(exeext), jcf-dump$(exeext), jvgenmain$(exeext)): Likewise.
1060
1061 2009-05-26 Ian Lance Taylor <iant@google.com>
1062
1063 * Make-lang.in (jvspec.o): Use $(COMPILER).
1064 ($(XGCJ)$(exeext), jc1$(exeext), jcf-dump$(exeext)): Likewise.
1065 (jvgenmain$(exeext), java/jcf-io.o, java/jcf-path.o): Likewise.
1066
1067 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
1068
1069 * Make-lang.in (GCJ): Renamed to...
1070 (XGCJ): ... this.
1071
1072 2009-04-27 Ian Lance Taylor <iant@google.com>
1073
1074 * builtins.c (java_builtins): Add casts to enum type.
1075 * verify-impl.c (check_class_constant): Add cast to enum type.
1076 (check_constant, check_wide_constant): Likewise.
1077
1078 2009-04-27 Richard Guenther <rguenther@suse.de>
1079
1080 PR java/38374
1081 * constants.c (build_constants_constructor): Retain the old
1082 pointer type as valid TYPE_POINTER_TO after patching the
1083 type of the constant pool decl.
1084
1085 2009-04-24 Ian Lance Taylor <iant@google.com>
1086
1087 * jcf-parse.c (handle_constant): Add cast to enum type.
1088
1089 2009-04-21 Taras Glek <tglek@mozilla.com>
1090
1091 * builtins.c: Update GTY annotations to new syntax
1092 * decl.c: Likewise
1093 * java-tree.h: Likewise
1094 * jcf.h: Likewise
1095 * lang.c: Likewise
1096
1097 2009-04-21 Joseph Myers <joseph@codesourcery.com>
1098
1099 * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
1100 license notices.
1101
1102 2009-04-18 Ian Lance Taylor <iant@google.com>
1103
1104 * verify-impl.c (verify_instructions_0): Add cast to enum type.
1105
1106 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
1107
1108 * builtins.c (compareAndSwapLong_builtin,
1109 compareAndSwapInt_builtin, compareAndSwapObject_builtin,
1110 VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc.
1111
1112 2009-03-31 Richard Guenther <rguenther@suse.de>
1113
1114 * java-gimplify.c (java_gimplify_expr): Do not manually gimplify
1115 the first operand of binary and comaprison expressions.
1116
1117 2009-03-30 Joseph Myers <joseph@codesourcery.com>
1118
1119 PR rtl-optimization/323
1120 * lang.c (java_post_options): Set flag_excess_precision_cmdline.
1121 Give an error for -fexcess-precision=standard for processors where
1122 the option is significant.
1123
1124 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1125
1126 * lang.opt: Unify help text for -Wdeprecated.
1127
1128 2009-02-03 Jakub Jelinek <jakub@redhat.com>
1129
1130 * jcf-dump.c (version): Update copyright notice dates.
1131
1132 2009-01-16 Richard Guenther <rguenther@suse.de>
1133
1134 PR tree-optimization/38835
1135 PR middle-end/36227
1136 * builtins.c (build_addr_sum): Use POINTER_PLUS_EXPR.
1137
1138 2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
1139
1140 PR bootstrap/38262
1141 * Make-lang.in (jc1): Add BACKENDLIBS, remove GMPLIBS.
1142
1143 2008-11-04 Andrew Haley <aph@redhat.com>
1144
1145 PR java/37068
1146 * jcf-parse.c (java_emit_static_constructor): Don't call
1147 cgraph_build_static_cdtor. Rewrite.
1148
1149 2008-10-24 Jakub Jelinek <jakub@redhat.com>
1150
1151 * Make-lang.in (check-java-subtargets): New target.
1152
1153 2008-10-16 David Edelsohn <edelsohn@gnu.org>
1154
1155 PR target/35483
1156 * Make-lang.in (class.o): Depend on $(TM_P_H).
1157 (expr.o): Same.
1158 * class.c: Include tm_p.h.
1159 * expr.c: Include tm_p.h.
1160
1161 2008-10-14 Andrew Haley <aph@redhat.com>
1162
1163 * constants.c (build_constant_data_ref): Make sure we only build
1164 one copy of the decl for the constant pool.
1165
1166 2008-09-22 Andrew Haley <aph@redhat.com>
1167
1168 * expr.c (rules): Add new rule for
1169 gnu.java.lang.VMCPStringBuilder.toString.
1170 (rewrite_rule.new_classname): New field.
1171 (maybe_rewrite_invocation): Use new_classname field instead of
1172 DECL_CONTEXT (*method_p).
1173 Allow rewrite_arglist to be NULL.
1174
1175 2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
1176
1177 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
1178 (java_get_callee_fndecl): Kill.
1179
1180 2008-09-17 Jan Hubicka <jh@suse.cz>
1181
1182 PR c++/18071
1183 * class.c (add_method_1): Do not initialize DECL_INLINE.
1184 (make_local_function_alias): Likewise.
1185 * expr.c (rewrite_arglist_getcaller): Set DECL_UNINLINABLE.
1186 * lang.c (java_decl_ok_for_sibcall): Use DECL_UNINLINABLE.
1187
1188 2008-09-09 Richard Guenther <rguenther@suse.de>
1189
1190 * decl.c (build_result_decl): Remove no longer applicable
1191 promotion.
1192
1193 2008-09-05 David Daney <ddaney@avtrex.com>
1194
1195 * gcj.texi (-freduced-reflection): Clarify option's restrictions.
1196
1197 2008-08-21 David Daney <ddaney@avtrex.com>
1198
1199 * class.c (make_class_data): Don't add field_index when
1200 flag_reduced_reflection set.
1201
1202 2008-08-12 Ulrich Weigand <uweigand@de.ibm.com>
1203
1204 * typeck.c (convert): Do not check for TARGET_FLOAT_FORMAT.
1205
1206 2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1207
1208 PR 28875
1209 * lang.c (java_handle_option): Replace set_Wunused with
1210 warn_unused.
1211
1212 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1213
1214 * gcj.texi: Update copyright years. Do not list GPL as
1215 Invariant Section.
1216
1217 2008-07-29 Jakub Jelinek <jakub@redhat.com>
1218
1219 * class.c (build_utf8_ref): Set DECL_SIZE and DECL_SIZE_UNIT
1220 from ctype's sizes.
1221
1222 * class.c (build_utf8_ref): Pad initializer string to utf8const_type's
1223 alignment.
1224
1225 2008-07-29 Jan Hubicka <jh@suse.cz>
1226
1227 * lang.c (java_post_options): Remove handling of flag_no_inline.
1228
1229 2008-07-28 Richard Guenther <rguenther@suse.de>
1230
1231 Merge from gimple-tuples-branch.
1232
1233 2008-07-18 Richard Guenther <rguenther@suse.de>
1234
1235 * expr.c: Include tree-iterator.h.
1236 * Make-lang.in (expr.o): Add tree-iterator.h dependency.
1237
1238 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
1239
1240 * java-gimplify.c: Include gimple.h instead of tree-gimple.h.
1241 * expr.c: Same.
1242
1243 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
1244
1245 * java-gimplify.c (java_gimplify_expr): Same.
1246 (java_gimplify_modify_expr): Same.
1247 * java-tree.h: Rename GENERIC_NEXT to TREE_CHAIN.
1248
1249 2008-05-02 Diego Novillo <dnovillo@google.com>
1250
1251 * expr.c (build_java_throw_out_of_bounds_exception): Fix
1252 mixed declarations and code.
1253
1254 2008-05-02 Doug Kwan <dougkwan@google.com>
1255
1256 * expr.c (build_java_throw_out_of_bounds_exception ): Wrap call to
1257 _Jv_ThrowBadArrayIndex with a COMPOUND_EXPR to return 0.
1258
1259 2008-02-19 Diego Novillo <dnovillo@google.com>
1260
1261 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
1262
1263 * java-gimplify.c (java_gimplify_self_mod_expr): Change
1264 gimple_seq arguments to gimple_seq *. Update all users.
1265
1266 2007-11-26 Aldy Hernandez <aldyh@redhat.com>
1267
1268 * java-gimplify.c (java_gimplify_expr): Make pre_p and post_p
1269 sequences.
1270 (java_gimplify_self_mod_expr): Same.
1271 * java-tree.h (java_gimplify_expr): Make pre_p and post_p
1272 sequences.
1273
1274 2008-07-24 Jan Hubicka <jh@suse.cz>
1275
1276 * java/decl.c: Include cgraph.h
1277 (end_java_method): Remove non-unit-at-a-time code.
1278 (java_mark_decl_local): Likewise; sanity check that we don't touch
1279 finalized nodes.
1280
1281 2008-07-15 Jan Hubicka <jh@suse.cz>
1282
1283 * lang.c (java_init_options): Enable unit-at-a-time by default.
1284
1285 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1286
1287 * Make-lang.in (jvspec.o): Fix dependencies.
1288
1289 2008-07-06 Tom Tromey <tromey@redhat.com>
1290
1291 * Make-lang.in (java/parse.o-warn): Remove.
1292 (java/jcf-io.o-warn): Remove.
1293
1294 2008-07-05 Tom Tromey <tromey@redhat.com>
1295
1296 * jcf-io.c: Don't include fnmatch.h. Don't use JCF_USE_SCANDIR.
1297 (compare_path): Remove.
1298 (java_or_class_file): Likewise.
1299 (memoized_dirlist_entry): Likewise.
1300 (memoized_dirlist_hash): Likewise.
1301 (memoized_dirlist_lookup_eq): Likewise.
1302 (memoized_dirlists): Likewise.
1303 (caching_stat): Likewise.
1304 (find_class): Use stat.
1305 * jcf.h (JCF_USE_SCANDIR): Remove.
1306
1307 2008-06-30 Joshua Sumali <jsumali@redhat.com>
1308
1309 * Make-lang.in (JAVA_MANFILES): Add doc/aot-compile.1 and
1310 doc/rebuild-gcj-db.1
1311 (java.uninstall): Likewise.
1312 (java.maintainer-clean): Likewise.
1313 (aot-compile.pod): New rule.
1314 (rebuild-gcj-db.pod): New rule.
1315 (java.install-man): Install doc/aot-compile.1 and doc/rebuild-gcj-db.1
1316 * gcj.texi: Add new sections for aot-compile and rebuild-gcj-db.
1317
1318 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1319
1320 * Make-lang.in (java/jcf-io.o-warn): New.
1321
1322 2008-06-24 Tom Tromey <tromey@redhat.com>
1323
1324 * jcf-path.c (jcf_path_init): Don't name variable 'try'.
1325 * expr.c (add_type_assertion): Rename argument.
1326 (build_java_arrayaccess): Don't name variable 'throw'.
1327 (ARRAY_NEW_MULTI): Don't name variable 'class'.
1328 * jcf-io.c (find_class): Don't name variable 'class'.
1329 * mangle.c (compression_table_add): Don't name variable 'new'.
1330 * constants.c (cpool_for_class): Rename argument.
1331 (alloc_constant_fieldref): Likewise.
1332 * jcf-parse.c (handle_innerclass_attribute): Don't name variable
1333 'class'.
1334 (read_class): Likewise.
1335 (parse_zip_file_entries): Likewise.
1336 (process_zip_dir): Likewise.
1337 * decl.c (java_mark_class_local): Rename argument.
1338 * class.c (GEN_TABLE): Use type_name, not typename.
1339 (gen_indirect_dispatch_tables): Likewise.
1340 (add_field): Rename argument.
1341 (is_compiled_class): Likewise.
1342 (safe_layout_class): Likewise.
1343 (emit_assertion_table): Likewise.
1344 * typeck.c (has_method): Rename argument.
1345
1346 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1347
1348 * class.c (ident_subst, mangled_classname, unmangle_classname,
1349 gen_indirect_dispatch_tables, add_method_1,
1350 build_fieldref_cache_entry, make_local_function_alias,
1351 layout_class, java_treetreehash_find, java_treetreehash_new,
1352 split_qualified_name): Fix for -Wc++-compat.
1353 * constants.c (set_constant_entry, cpool_for_class): Likewise.
1354 * decl.c (make_binding_level, java_dup_lang_specific_decl,
1355 start_java_method): Likewise.
1356 * except.c (prepare_eh_table_type): Likewise.
1357 * expr.c (type_assertion_hash, note_instructions): Likewise.
1358 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC,
1359 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
1360 * jcf-io.c (jcf_filbuf_from_stdio, opendir_in_zip, find_class):
1361 Likewise.
1362 * jcf-parse.c (reverse, java_read_sourcefilenames,
1363 annotation_grow, rewrite_reflection_indexes, java_parse_file,
1364 process_zip_dir): Likewise.
1365 * jcf-path.c (add_entry, add_path, jcf_path_init,
1366 jcf_path_extdirs_arg): Likewise.
1367 * jcf-reader.c (jcf_parse_constant_pool): Likewise.
1368 * jvgenmain.c (do_mangle_classname): Likewise.
1369 * lang.c (put_decl_string): Likewise.
1370 * verify-impl.c (make_state_copy, make_state, add_new_state):
1371 Likewise.
1372
1373 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1374
1375 * gcj.texi: Expand TABs, remove whitespace from blank lines.
1376
1377 2008-06-14 Tom Tromey <tromey@redhat.com>
1378
1379 PR java/36247:
1380 * class.c (build_class_ref): Initialize this_classdollar when
1381 needed.
1382
1383 2008-05-23 Andrew Haley <aph@redhat.com>
1384
1385 * jcf-parse.c (give_name_to_class): Call find_sourcefile to find full
1386 pathname of source file.
1387
1388 2008-05-12 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1389
1390 * jcf-dump.c (print_constant): Use
1391 HOST_LONG_LONG_FORMAT.
1392
1393 2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1394
1395 * decl.c (java_init_decl_processing): Change DECL_IS_PURE to
1396 DECL_PURE_P.
1397
1398 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
1399
1400 * class.c (build_utf8_ref): Don't set TREE_INVARIANT.
1401 (build_classdollar_field): Don't set TREE_INVARIANT.
1402 (get_dispatch_table): Don't set TREE_INVARIANT.
1403 (make_class_data): Don't set TREE_INVARIANT.
1404 (build_symbol_entry): Don't set TREE_INVARIANT.
1405 (emit_symbol_table): Don't set TREE_INVARIANT.
1406 * constants.c (build_constant_data_ref): Don't set TREE_INVARIANT.
1407 (build_ref_from_constant_pool): Don't set TREE_INVARIANT.
1408 * resource.c (compile_resource_data): Don't set TREE_INVARIANT.
1409 * expr.c (cache_cpool_data_ref): Don't set TREE_INVARIANT.
1410
1411 2008-04-03 Tom Tromey <tromey@redhat.com>
1412
1413 * Make-lang.in (java_OBJS): New variable.
1414
1415 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
1416
1417 * java-tree.h (insert_block): Kill.
1418 * decl.c (insert_block): Kill.
1419
1420 2008-04-01 Joseph Myers <joseph@codesourcery.com>
1421
1422 * gcj.texi: Include gpl_v3.texi instead of gpl.texi
1423 * Make-lang.in (TEXI_JAVA_FILES): Include gpl_v3.texi instead of
1424 gpl.texi.
1425
1426 2008-03-27 Tom Tromey <tromey@redhat.com>
1427
1428 * Make-lang.in: Revert automatic dependency patch.
1429
1430 2008-03-25 Tom Tromey <tromey@redhat.com>
1431
1432 * Make-lang.in: Removed most explicit .o targets.
1433 (java/jvspec.o): Reduce to variable setting. Moved to java/.
1434 ($(GCJ)$(exeext)): Update.
1435 (JAVA_OBJS): New variable.
1436 (JCFDUMP_OBJS): Reformat.
1437 (java_OBJS): New variable.
1438 (java/jvspec.o-warn): Update.
1439 (java/parse.o-warn): Remove.
1440 (JAVA_TREE_H): Remove.
1441 (java/jcf-io.o): Reduce to variable setting.
1442 (ALL_CPPFLAGS): Likewise.
1443
1444 2008-03-12 Paolo Bonzini <bonzini@gnu.org>
1445
1446 * mangle.c (java_mangle_decl): Remove dead check.
1447
1448 2008-03-11 Paolo Bonzini <bonzini@gnu.org>
1449
1450 * jcf-parse.c (java_parse_file): Assert binding levels are
1451 left in order.
1452 * lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, java_clear_binding_stack):
1453 Delete.
1454
1455 2008-03-02 Jakub Jelinek <jakub@redhat.com>
1456
1457 * jcf-dump.c (version): Update copyright notice dates.
1458
1459 2008-02-29 Tom Tromey <tromey@redhat.com>
1460
1461 * expr.c (expand_byte_code): Set DECL_FUNCTION_LAST_LINE on
1462 method.
1463 * java-tree.h (struct lang_decl_func): Remove obsolete comment.
1464
1465 2008-02-26 Tom Tromey <tromey@redhat.com>
1466
1467 * lang.c (java_post_options): Remove conditional.
1468 * expr.c (expand_byte_code): Remove old location code.
1469 * jcf-parse.c (set_source_filename): Remove old location code.
1470 (give_name_to_class): Likewise.
1471 (jcf_parse): Likewise.
1472 (duplicate_class_warning): Likewise.
1473 (parse_class_file): Likewise.
1474 (java_parse_file): Likewise.
1475 * decl.c (finish_method): Remove old location code.
1476 * class.c (push_class): Remove old location code.
1477
1478 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1479
1480 PR other/35107
1481 * Make-lang.in (jc1): Add $(GMPLIBS).
1482
1483 2008-01-23 David Daney <ddaney@avtrex.com>
1484
1485 * class.c (hide) Rename to...
1486 (java_hide_decl) ... this throughout, and make public.
1487 * resource.c (Jr_count): Remove.
1488 (compile_resource_data): Call java_mangle_resource_name to generate
1489 decl name. Make resource decl public and hidden.
1490 * mangle.c (java_mangle_resource_name): New function.
1491 * java-tree.h (java_hide_decl, java_mangle_resource_name): Declare
1492 functions.
1493
1494 2008-01-04 Andrew Haley <aph@redhat.com>
1495
1496 PR java/17779
1497 * jcf-parse.c (parse_zip_file_entries): Move decl to compile on
1498 C90.
1499
1500 2008-01-03 Andrew Haley <aph@redhat.com>
1501
1502 PR java/17779
1503 * jcf-parse.c (parse_zip_file_entries): Unset TYPE_ALIAS_SET if
1504 we're about to re-layout the type.
1505
1506 2007-12-20 Alexandre Oliva <aoliva@redhat.com>
1507
1508 * lang.c (java_classify_record): Don't return
1509 RECORD_IS_INTERFACE for now.
1510
1511 2007-12-18 Andrew Haley <aph@redhat.com>
1512
1513 PR java/27643
1514 * jcf-parse.c (java_parse_file): Remove call to
1515 java_mark_class_local.
1516 (parse_class_file): Reinstate call to java_mark_class_local here.
1517 * decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is
1518 already set, call java_mangle_decl() and make_decl_rtl() to
1519 rewrite its name as a hidden alias.
1520
1521 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
1522
1523 PR debug/7081
1524 * lang.c (java_classify_record): New.
1525 (LANG_HOOKS_CLASSIFY_RECORD): Override.
1526
1527 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
1528
1529 PR 34081/C++
1530 * decl.c (finish_method): Pass 'false' for the new
1531 allocate_struct_function parameter.
1532
1533 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
1534
1535 * expr.c (build_jni_stub): Use the computed jni func type for
1536 variable meth.
1537
1538 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
1539
1540 * class.c (JAVA_TREEHASHHASH_H): Use TYPE_UID.
1541
1542 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
1543
1544 * expr.c (type_assertion_hash): Hash type uids rather than
1545 tree pointers.
1546
1547 2007-11-17 David Daney <ddaney@avtrex.com>
1548 Andrew Haley <aph@redhat.com>
1549
1550 * constants.c (build_constants_constructor): Use POINTER_SIZE
1551 insead of BITS_PER_WORD in big-endian work around.
1552
1553 2007-11-07 Tom Tromey <tromey@redhat.com>
1554
1555 PR java/34019:
1556 * gcj.texi (Input Options): Add missing noun.
1557
1558 2007-11-02 Tom Tromey <tromey@redhat.com>
1559
1560 PR java/33765:
1561 * jcf-parse.c (java_parse_file): Ignore ZIPEMPTYMAGIC files.
1562 * zipfile.h (ZIPEMPTYMAGIC): New define.
1563
1564 2007-11-01 Tom Tromey <tromey@redhat.com>
1565
1566 * Make-lang.in (java/jcf-dump.o): Depend on zipfile.h.
1567 (java/jcf-parse.o): Depend on jcf-reader.c, zipfile.h, and jcf.h.
1568 (java/jcf-io.o): Depend on zipfile.h.
1569
1570 2007-10-17 Richard Guenther <rguenther@suse.de>
1571
1572 * Make-lang.in (java/builtins.o): Add $(OPTABS_H) and $(EXPR_H)
1573 dependencies.
1574
1575 2007-10-03 Andrew Haley <aph@redhat.com>
1576
1577 PR java/33639
1578 * class.c (mangled_classname): Detect and replace illegal
1579 characters in assembly language symbols.
1580 (gen_indirect_dispatch_tables): Call mangled_classname() on
1581 the type.
1582
1583 2007-09-27 Jakub Jelinek <jakub@redhat.com>
1584
1585 * lang.c (java_print_error_function): Add third argument.
1586
1587 2007-09-15 Tom Tromey <tromey@redhat.com>
1588
1589 * java-tree.h (struct lang_decl_func) <function_decl_body>:
1590 Remove.
1591 <init_final>: Likewise.
1592 * lang.c (java_dump_tree): Update.
1593 * java-tree.h (DECL_FUNCTION_BODY): Remove.
1594
1595 2007-09-11 Jan Hubicka <jh@suse.cz>
1596
1597 * decl.c (java_expand_body): Kill.
1598 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
1599
1600 2007-09-06 Tom Tromey <tromey@redhat.com>
1601
1602 * jcf-parse.c (parse_class_file): Re-enter the current file.
1603
1604 2007-09-07 Roman Zippel <zippel@linux-m68k.org>
1605
1606 * boehm.c (mark_reference_fields): Move misaligned pointer check
1607 after JREFERENCE_TYPE_P test
1608
1609 2007-09-06 Roman Zippel <zippel@linux-m68k.org>
1610
1611 * boehm.c (mark_reference_fields): Don't use bitmap as gc_descr
1612 if pointer is misaligned.
1613
1614 2007-09-06 Tom Tromey <tromey@redhat.com>
1615
1616 * lang.c (java_post_options): Update.
1617 * jcf-parse.c (set_source_filename): Update.
1618 (give_name_to_class): Update.
1619 (jcf_parse): Update.
1620 (duplicate_class_warning): Update.
1621 (parse_class_file): Update.
1622 (java_parse_file): Update.
1623 * expr.c (expand_byte_code): Update.
1624
1625 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
1626
1627 * decl.c (finish_method): Use set_cfun.
1628
1629 2007-09-04 Andrew Haley <aph@redhat.com>
1630
1631 * decl.c (java_init_decl_processing): Call "__cxa_end_cleanup"
1632 when using the ARM EABI.
1633
1634 2007-09-03 Daniel Jacobowitz <dan@codesourcery.com>
1635
1636 * Make-lang.in (jvspec.o): Remove SHLIB_MULTILIB.
1637
1638 2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1639
1640 * jcf-parse.c (read_class, java_parse_file): Supply a TYPE for
1641 CONST_CAST.
1642 * jcf.h (JCF_FINISH): Likewise.
1643
1644 2007-08-28 Tom Tromey <tromey@redhat.com>
1645
1646 * Make-lang.in (java.tags): Don't tag '*.y' files.
1647
1648 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1649
1650 * lang.c (java_decl_ok_for_sibcall): Likewise.
1651
1652 2007-08-21 Paul Brook <paul@codesourcery.com>
1653 Nathan Sidwell <nathan@codesourcery.com>
1654 Mark Mitchell <mark@codesourcery.com>
1655 Joseph Myers <joseph@codesourcery.com>
1656
1657 * jcf-dump.c (version): Use pkgversion_string. Update copyright
1658 date.
1659
1660 2007-08-20 Richard Guenther <rguenther@suse.de>
1661
1662 * lang.c (java_tree_inlining_walk_subtrees): Remove.
1663 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Remove.
1664
1665 2007-08-17 Tom Tromey <tromey@redhat.com>
1666
1667 * typeck.c (find_method_in_interfaces): Update.
1668 * jcf-parse.c (load_class): Update.
1669 * java-gimplify.c (java_gimplify_component_ref): Removed.
1670 (java_gimplify_modify_expr): Update. Removed pre_p and post_p
1671 arguments.
1672 (java_gimplify_expr): Update.
1673 * decl.c (java_init_decl_processing): Update.
1674 * class.c (set_constant_value): Update.
1675 (make_class_data): Update.
1676 (finish_class): Update.
1677 (build_static_field_ref): Update.
1678 (is_compiled_class): Update.
1679 (maybe_layout_super_class): Update.
1680 (layout_class): Update.
1681 (layout_class_method): Update.
1682 * java-tree.h (CAN_COMPLETE_NORMALLY): Removed.
1683 (lang_decl_var) <am, final_iud, cif>: Removed fields.
1684 (lang_decl_func) <init_calls_this>: Removed field.
1685 (lang_type) <dot_class, verify_method>: Removed fields.
1686 (FIELD_NESTED_ACCESS): Removed.
1687 (FIELD_NESTED_ACCESS_P): Removed.
1688 (DECL_FIELD_FINAL_IUD): Removed.
1689 (DECL_LOCAL_FINAL_IUD): Removed
1690 (LOCAL_FINAL_P): Removed.
1691 (FINAL_VARIABLE_P): Removed.
1692 (CLASS_FINAL_VARIABLE_P): Removed.
1693 (DECL_BIT_INDEX): Removed.
1694 (DECL_INIT_CALLS_THIS): Removed.
1695 (FIELD_LOCAL_ALIAS): Removed.
1696 (FIELD_LOCAL_ALIAS_USED): Removed.
1697 (FIELD_THISN): Removed.
1698 (DECL_FUNCTION_INIT_TEST_CLASS): Removed.
1699 (LOCAL_CLASS_INITIALIZATION_FLAG): Removed.
1700 (LOCAL_CLASS_INITIALIZATION_FLAG_P): Removed.
1701 (TYPE_DOT_CLASS): Removed.
1702 (TYPE_VERIFY_METHOD): Removed.
1703 (ID_CLASSDOLLAR_P): Removed.
1704 (enum java_tree_index) <JTI_CLASSDOLLAR_IDENTIFIER_NODE>:
1705 Removed.
1706 (classdollar_identifier_node): Removed.
1707 (TYPE_UNKNOWN): Removed.
1708 (CLASS_FROM_SOURCE_P): Removed.
1709 * expr.c (build_jni_stub): Update.
1710 (force_evaluation_order): Update.
1711 (build_java_empty_stmt): Update.
1712 (build_class_init): Update.
1713 (java_stack_swap): Update.
1714 (build_jni_stub): Update.
1715
1716 2007-08-17 Tom Tromey <tromey@redhat.com>
1717
1718 * java-tree.h (LABEL_TYPE_STATE): Removed.
1719 (load_type_state): Removed.
1720 (LABEL_PC): Removed.
1721 (LABEL_VERIFIED): Removed.
1722 (type_states): Declare.
1723 * expr.c (type_states): New global.
1724 (load_type_state): Now static. Use type_states. Changed
1725 argument.
1726 (lookup_label): Don't set LABEL_PC.
1727 (expand_byte_code): Don't use LABEL_VERIFIED.
1728 (note_instructions): Initialize type_states.
1729 * verify-glue.c (vfy_note_stack_depth): Rewrote.
1730 (vfy_note_stack_type): Use type_states.
1731 (vfy_note_local_type): Likewise.
1732
1733 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1734
1735 * jcf-parse.c (read_class, java_parse_file): Use CONST_CAST.
1736 * jcf.h (JCF_FINISH): Likewise.
1737
1738 2007-07-31 Nick Clifton <nickc@redhat.com>
1739
1740 * java-gimplify.c: Change copyright header to refer to version 3
1741 of the GNU General Public License and to point readers at the
1742 COPYING3 file and the FSF's license web page.
1743 * typeck.c, lang-specs.h, mangle_name.c, jcf-dump.c, class.c,
1744 decl.c, config-lang.in, jcf-parse.c, constants.c, Make-lang.in,
1745 resource.c, except.c, builtins.c, jvspec.c, java-tree.def,
1746 javaop.def, jcf-path.c, verify-glue.c, jcf-depend.c, lang.opt,
1747 jcf-reader.c, mangle.c, zextract.c, jcf-io.c, jcf.h, zipfile.h,
1748 verify.h, java-except.h, win32-host.c, expr.c, jvgenmain.c,
1749 parse.h, lang.c, java-tree.h, javaop.h, boehm.c: Likewise.
1750
1751 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1752
1753 * jcf-io.c (find_class): Fix -Wcast-qual warnings.
1754
1755 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1756
1757 * lang.c (java_get_callee_fndecl): Constify.
1758
1759 2007-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1760
1761 * mangle.c (set_type_package_list): Constify.
1762 * verify-glue.c (vfy_make_string): Delete.
1763 * verify.h (vfy_make_string): Likewise.
1764
1765 2007-07-26 Tom Tromey <tromey@redhat.com>
1766
1767 * java-tree.h (push_labeled_block, pop_labeled_block): Remove.
1768 (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
1769 EXIT_BLOCK_LABELED_BLOCK): Likewise.
1770 * lang.c (java_tree_inlining_walk_subtrees): Update.
1771 (java_dump_tree): Likewise.
1772 * java-tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRY_EXPR):
1773 Remove.
1774 * decl.c (push_labeled_block, pop_labeled_block): Remove.
1775 * java-gimplify.c (java_gimplify_labeled_block_expr,
1776 java_gimplify_exit_block_expr, java_gimplify_try_expr): Remove.
1777 (java_gimplify_expr): Update.
1778
1779 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1780
1781 * class.c (java_treetreehash_hash, java_treetreehash_compare):
1782 Constify.
1783 * expr.c (type_assertion_eq): Likewise.
1784 * jcf-io.c (compare_path): Likewise.
1785 * jcf-parse.c (cmpstringp): Likewise.
1786 * verify-impl.c (get_one_type, compute_argument_types,
1787 compute_return_type): Likewise.
1788
1789 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1790
1791 PR target/32462
1792 PR libgcj/32465
1793 * class.c (hide): Wrap in HAVE_GAS_HIDDEN.
1794
1795 2007-07-12 Richard Guenther <rguenther@suse.de>
1796
1797 * expr.c (expand_java_return): RETURN_EXPR has void type.
1798 (build_jni_stub): Likewise. Use a comparison against zero
1799 for null-pointer test in COND_EXPR.
1800 (build_field_ref): Build POINTER_PLUS_EXPR with correct
1801 type. Convert result instead.
1802 (build_invokevirtual): Likewise.
1803
1804 2007-07-09 Geoffrey Keating <geoffk@apple.com>
1805
1806 PR 32617
1807 * lang.c (java_init): Remove setting of force_align_functions_log.
1808 * class.c (add_method_1): Set DECL_ALIGN of non-static method
1809 to cope with ptrmemfunc_vbit_in_pfn.
1810
1811 2007-07-03 David Daney <ddaney@avtrex.com>
1812
1813 * java/Make-lang.in (doc/gcj.info): Add $(gcc_docdir) to
1814 include path.
1815 (doc/gcj.dvi): Same.
1816 (doc/gcj.pdf): Same.
1817 (java/index.html): Same.
1818
1819 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
1820
1821 * class.c (make_class_data): Build the index in sizetype.
1822 Use POINTER_PLUS_EXPR instead of PLUS_EXPR when
1823 adding to a pointer type.
1824 (build_symbol_entry): Likewise.
1825 * expr.c (build_java_arrayaccess): Likewise.
1826 (build_field_ref): Likewise.
1827 (build_known_method_ref): Likewise.
1828 (build_invokevirtual): Likewise.
1829 * except.c (build_exception_object_ref): Do a
1830 NEGATIVE and then a POINTER_PLUS_EXPR instead
1831 of a MINUS_EXPR.
1832
1833 2007-06-11 Rafael Ávila de Espíndola <espindola@google.com>
1834
1835 * typeck.c (java_signed_type): Remove.
1836 * lang.c (LANG_HOOKS_SIGNED_TYPE): Remove.
1837 * java-tree.h (java_signed_type): Remove.
1838
1839 2007-05-18 Geoffrey Keating <geoffk@apple.com>
1840
1841 * jcf-dump.c (HANDLE_MAGIC): Use 'unsigned long' for %lx.
1842 (print_constant): Likewise.
1843
1844 2007-05-14 Rafael Ávila de Espíndola <espindola@google.com>
1845
1846 * expr.c (build_java_binop): Use unsigned_type_for instead of
1847 java_unsigned_type.
1848 * java-tree.h (java_unsigned_type): Remove.
1849 * lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
1850 * typeck.c (java_unsigned_type): Remove.
1851
1852 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
1853
1854 * java-tree.h (lang_tree_node): Use GENERIC_NEXT
1855 instead of checking GIMPLE_STMT_P in chain_next.
1856
1857 2007-04-06 Colin Walters <walters@redhat.com>
1858
1859 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161701
1860 * jcf-io.c (open_class): Copy 'filename'.
1861
1862 2007-04-03 Andrew Haley <aph@redhat.com>
1863
1864 * jvgenmain.c (main): Change main to use class$, not class$$.
1865 (do_mangle_classname): Likewise.
1866 * class.c (hide): New function.
1867 (add_field): Hide everything that shouldn't be visible outside a
1868 DSO.
1869 (build_static_class_ref): Likewise.
1870 (build_classdollar_field): Likewise.
1871 (make_class_data): Likewise.
1872 (layout_class_method): Likewise.
1873 * expr.c (special_method_p): New function.
1874
1875 * class.c (push_class): Don't bogusly guess the source filename.
1876 * jcf-parse.c (give_name_to_class): Don't set input_location from
1877 DECL_ARTIFICIAL decls.
1878
1879 2007-03-30 Rafael Ávila de Espíndola <espindola@google.com>
1880
1881 * typeck.c (java_signed_or_unsigned_type): Removed.
1882 (java_signed_type): use get_signed_or_unsigned_type instead of
1883 java_signed_or_unsigned_type.
1884 (java_unsigned_type): Ditto.
1885 * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Removed.
1886 * java-tree.h (java_signed_or_unsigned_type): Removed.
1887
1888 2007-03-26 Tom Tromey <tromey@redhat.com>
1889
1890 * Make-lang.in (JAVA_MANFILES): Removed grmiregistry.1.
1891 (java.maintainer-clean): Likewise.
1892 (java.install-man): Likewise.
1893 (.INTERMEDIATE): Removed grmiregistry.pod.
1894 (grmiregistry.pod): Removed.
1895 * gcj.texi (Invoking gcjh): Removed.
1896 (Invoking gjnih): Likewise.
1897 (Invoking grmiregistry): Likewise.
1898 (direntry): Updated.
1899 (Top): Likewise.
1900 (which-gcj): Removed.
1901
1902 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
1903
1904 * Make-lang.in: Add install-pdf target as copied from
1905 automake v1.10 rules.
1906
1907 2007-02-27 Brooks Moses <brooks.moses@codesourcery.com>
1908
1909 * gcj.texi: Standardize title page.
1910
1911 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
1912
1913 * class.c: Fix a comment typo.
1914
1915 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
1916 Brooks Moses <brooks.moses@codesourcery.com>
1917 Lee Millward <lee.millward@codesourcery.com>
1918
1919 * java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
1920 of build3.
1921 (BUILD_MONITOR_EXIT): Likewise.
1922
1923 * java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
1924 (java_gimplify_modify_expr): Likewise.
1925
1926 * class.c (cache_this_class_ref): Use build_call_expr.
1927 (build_static_field_ref): Likewise.
1928 (emit_indirect_register_classes): Likewise.
1929 (emit_register_classes): Likewise.
1930
1931 * resource.c (write_resource_constructor): Use build_call_expr.
1932
1933 * builtins.c (builtin_creator_function): Change interpretation of
1934 the second parameter to be the whole CALL_EXPR instead of the arglist.
1935 (max_builtin): Tweak parameter list. Use new CALL_EXPR accessors.
1936 (min_builtin): Likewise.
1937 (abs_builtin): Likewise.
1938 (java_build_function_call_expr): Likewise.
1939 (convert_real): Likewise.
1940 (UNMARSHAL3): Likewise.
1941 (UNMARSHAL4): Likewise.
1942 (UNMARSHAL5): Likewise.
1943 (build_arglist_for_builtin): Delete. Fix callers to use
1944 build_call_expr instead.
1945 (putObject_builtin): Tweak parameter list. Use new CALL_EXPR
1946 accessors.
1947 (compareAndSwapInt_builtin): Likewise.
1948 (compareAndSwapLong_builtin): Likewise.
1949 (compareAndSwapObject_builtin): Likewise.
1950 (putVolatile_builtin): Likewise.
1951 (getVolatile_builtin): Likewise.
1952 (VMSupportsCS8_builtin): Likewise.
1953 (check_for_builtin): Pass entire CALL_EXPR to builtin expander
1954 instead of arglist.
1955
1956 * expr.c (build_java_athrow): Use build_call_nary instead of build3.
1957 (build_java_throw_out_of_bounds_exception): Likewise.
1958 (java_check_reference): Likewise.
1959 (build_java_arraystore_check): Likewise.
1960 (build_newarray): Likewise.
1961 (build_anewarray): Likewise.
1962 (expand_java_multinewarray): Use build_call_list instead of build3.
1963 (build_java_monitor): Use build_call_nary instead of build3.
1964 (java_create_object): Likewise.
1965 (expand_java_NEW): Likewise.
1966 (build_instanceof): Likewise.
1967 (expand_java_CHECKCAST): Likewise.
1968 (build_java_soft_divmod): Likewise.
1969 (build_java_binop): Likewise.
1970 (build_field_ref): Likewise.
1971 (build_class_init): Likewise.
1972 (rewrite_arglist_getcaller): Use build_call_expr.
1973 (build_invokeinterface): Use build_call_nary instead of build3.
1974 (expand_invoke): Use build_call_list instead of build3.
1975 (build_jni_stub): Use build_call_nary, build_call_list, or
1976 build_call_expr instead of build3.
1977 (expand_java_field_op): Use build_call_expr instead of build3.
1978 (force_evaluation_order): Use new CALL_EXPR accessors.
1979
1980 * lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
1981
1982 2007-02-15 David Daney <ddaney@avtrex.com>
1983
1984 * Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1.
1985 (java.maintainer-clean):Add gc-analyze.1.
1986 (.INTERMEDIATE): Add gc-analyze.pod.
1987 (gc-analyze.pod): New rule.
1988 (java.install-man): Install gc-analyze.1
1989 * gcj.texi: Add new section for the gc-analyze program.
1990
1991 2007-02-07 Andrew Haley <aph@redhat.com>
1992
1993 * class.c (uncache_this_class_ref): New.
1994 * expr.c (build_jni_stub): Initialize the class.
1995 (expand_byte_code): Call uncache_this_class_ref after generating
1996 code.
1997
1998 2007-02-06 Tom Tromey <tromey@redhat.com>
1999
2000 PR java/30714:
2001 * jvspec.c (lang_specific_driver): Check for the '-' in '-I'.
2002
2003 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
2004
2005 * java-tree.h, javaop.def, jcf-parse.c: Fix comment typos.
2006
2007 2007-02-02 Andrew Haley <aph@redhat.com>
2008
2009 * expr.c (expand_byte_code): Call cache_this_class_ref() and
2010 cache_cpool_data_ref().
2011 Set TYPE_CPOOL_DATA_REF.
2012 (cache_cpool_data_ref): New function.
2013 * constants.c (build_ref_from_constant_pool): Remove special-case
2014 code for flag_indirect_classes.
2015 (build_constant_data_ref): Move special-case code for
2016 flag_indirect_classes here from build_ref_from_constant_pool.
2017 * decl.c (finish_method): Move class initialization from here to
2018 cache_this_class_ref.
2019 * class.c (cache_this_class_ref): New function.
2020 (build_class_ref): Use this_classdollar for the ouput class.
2021
2022 2007-02-02 David Daney <ddaney@avtrex.com>
2023
2024 * class.c (is_compiled_class): Move check to avoid reloading
2025 current class.
2026 (layout_class_method): Don't calculate DECL_EXTERNAL if it is
2027 already set.
2028
2029 2007-02-01 Andrew Haley <aph@redhat.com>
2030
2031 PR java/30641
2032 * jcf-parse.c (jcf_parse): Clear the field_offsets bitmap.
2033
2034 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
2035
2036 * class.c, jcf-parse.c: Fix comment typos.
2037
2038 2007-01-30 Tom Tromey <tromey@redhat.com>
2039
2040 * gcj.texi (Strings): Fix documentation for JvNewString.
2041
2042 2007-01-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2043
2044 * gcj.texi (Invoking gcjh, Invoking gjnih, Arrays): Fix some
2045 typos.
2046
2047 2007-01-30 Ben Elliston <bje@au.ibm.com>
2048
2049 * jvspec.c (lang_specific_driver): Remove unused classpath_args.
2050
2051 2007-01-29 Tom Tromey <tromey@redhat.com>
2052
2053 PR java/30607:
2054 * jvspec.c (lang_specific_driver): Handle separate -I argument.
2055 * lang.opt (-I): Add 'Separate'.
2056
2057 2007-01-29 Andrew Haley <aph@redhat.com>
2058
2059 * class.c (add_method_1): Mark fndecl as external unless we are
2060 compiling it into this object file.
2061
2062 2007-01-24 Andrew Haley <aph@redhat.com>
2063
2064 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): current_class is a
2065 type node, not a decl, so use TYPE_SYNTHETIC not CLASS_SYNTHETIC.
2066
2067 2007-01-22 Andrew Haley <aph@redhat.com>
2068
2069 * builtins.c (VMSupportsCS8_builtin): New function.
2070
2071 2007-01-23 Andrew Pinski <pinskia@gmail.com>
2072
2073 PR java/30454
2074 * jcf-io.c (opendir_in_zip): Close the file
2075 and free zipf before returning after an error.
2076
2077 2007-01-16 Tom Tromey <tromey@redhat.com>
2078
2079 * java-tree.def: Added copyright header.
2080
2081 2007-01-15 Tom Tromey <tromey@redhat.com>
2082
2083 * lang.c (dump_compound_expr) <EXPR_WITH_FILE_LOCATION>: Removed
2084 case.
2085 * java-gimplify.c (java_gimplify_expr) <EXPR_WITH_FILE_LOCATION>:
2086 Removed case.
2087 * java-tree.h (EXPR_WFL_EMIT_LINE_NOTE): Removed.
2088 (EXPR_WFL_NODE): Likewise.
2089 (EXPR_WFL_LINECOL): Likewise.
2090 (EXPR_WFL_FILENAME): Likewise.
2091 (EXPR_WFL_LINENO): Likewise.
2092 (build_expr_wfl, expr_add_location): Don't declare.
2093 (build_unknown_wfl): Removed.
2094 (EXPR_WFL_FILENAME_NODE): Removed.
2095 (EXPR_WFL_COLNO): Removed.
2096 (EXPR_WFL_SET_LINECOL): Removed.
2097 (DECL_FUNCTION_WFL): Removed.
2098 (DECL_FIELD_FINAL_WFL): Removed.
2099 (struct lang_decl_func) <wfl>: Removed field.
2100 <called_constructor>: Likewise.
2101 <inner_access>: Likewise.
2102 (struct lang_decl_var) <wfl>: Removed field.
2103 (DECL_CONSTRUCTOR_CALLS): Removed.
2104 (DECL_FUNCTION_ACCESS_DECL): Likewise.
2105 (DECL_FUNCTION_INNER_ACCESS): Likewise.
2106 (DECL_SPECIFIC_COUNT): Likewise.
2107 * java-tree.def (EXPR_WITH_FILE_LOCATION): Removed.
2108 * expr.c (build_expr_wfl): Removed.
2109 (expr_add_location): Likewise.
2110
2111 2007-01-12 Tom Tromey <tromey@redhat.com>
2112
2113 * jcf-dump.c (main): Updated call to find_class.
2114 * lang.c (java_init): Removed dead code.
2115 * jcf-parse.c (read_class): Don't use java_source field. Removed
2116 dead code.
2117 (parse_zip_file_entries): Don't use java_source field.
2118 (process_zip_dir): Likewise.
2119 (jcf_parse): Removed dead code.
2120 (java_parse_file): Likewise.
2121 (read_class): Updated call to find_class.
2122 * jcf-io.c (find_class): Don't use java_source field. Removed
2123 'source_ok' argument, .java logic.
2124 * jcf.h (JCF) <java_source>: Removed field.
2125 (JCF_ZERO): Updated. (find_class): Updated.
2126 * decl.c: Removed dead code.
2127 * class.c: Removed dead code.
2128
2129 2007-01-11 Tom Tromey <tromey@redhat.com>
2130
2131 * typeck.c (convert): Don't use flag_emit_class_files.
2132 * lang.c (java_post_options): Don't use flag_emit_class_files.
2133 (java_handle_option): Don't use flag_extraneous_semicolon or
2134 flag_redundant.
2135 * jcf-parse.c (HANDLE_CONSTANTVALUE): Don't use
2136 flag_emit_class_files.
2137 (load_class): Likewise.
2138 * java-tree.h (flag_emit_class_files): Don't declare.
2139 (STATIC_CLASS_INIT_OPT_P): Don't use flag_emit_class_files.
2140 (flag_extraneous_semicolon): Don't declare.
2141 (flag_not_overriding): Likewise.
2142 (flag_static_local_jdk1_1): Likewise.
2143 (flag_redundant): Likewise.
2144 * expr.c (build_newarray): Don't use flag_emit_class_files.
2145 * class.c (DEFAULT_ENABLE_ASSERT): Don't use
2146 flag_emit_class_files.
2147 (build_class_ref): Likewise.
2148 * builtins.c (check_for_builtin): Don't use
2149 flag_emit_class_files.
2150
2151 2007-01-10 Tom Tromey <tromey@redhat.com>
2152
2153 * lang.c (java_can_use_bit_fields_p): Removed.
2154 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
2155
2156 2007-01-09 Andrew Haley <aph@redhat.com>
2157
2158 * expr.c (build_java_arrayaccess): Rewrite to generate array
2159 access in canonical form.
2160 (expand_java_arraystore): Use build_fold_addr_expr() on address of
2161 array access.
2162
2163 2007-01-03 Andrew Haley <aph@redhat.com>
2164
2165 PR java/28754
2166 * expr.c (expand_java_field_op): If we're initializing a field's
2167 declaring interface we should not also initialize the class
2168 context in which it was referenced.
2169
2170 2007-01-02 Tom Tromey <tromey@redhat.com>
2171
2172 * java-tree.h (compiling_from_source, current_encoding,
2173 JTI_FINIT_IDENTIFIER_NODE, JTI_INSTINIT_IDENTIFIER_NODE,
2174 JTI_LENGTH_IDENTIFIER_NODE, JTI_SUPER_IDENTIFIER_NODE,
2175 JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE,
2176 JTI_WFL_OPERATOR): Removed
2177 (finit_identifier_node, instinit_identifier_node,
2178 length_identifier_node, super_identifier_node,
2179 continue_identifier_node, access0_identifier_node, wfl_operator):
2180 Removed.
2181 (cyclic_inheritance_report,
2182 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND,
2183 DECL_FUNCTION_NAP, DECL_FUNCTION_SYNTHETIC_CTOR,
2184 DECL_FIXED_CONSTRUCTOR_P): Removed.
2185 (struct lang_decl_func) <smic, nap, synthetic_ctor, fixed_ctor>:
2186 Removed.
2187 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST, TYPE_II_STMT_LIST,
2188 TYPE_IMPORT_LIST, TYPE_IMPORT_DEMAND_LIST): Removed.
2189 (struct lang_type) <finit_stmt_list, clinit_stmt_list, ii_block,
2190 import_list, import_demand_list>: Removed.
2191 (java_layout_seen_class_methods, init_jcf_parse, init_src_parse,
2192 cxx_keyword_p): Removed.
2193 (DECL_FINIT_P, DECL_INSTINIT_P, ID_FINIT_P, ID_INSTINIT_P,
2194 TYPE_UNUSED, TYPE_UNDERFLOW, TYPE_UNEXPECTED,
2195 CLASS_ACCESS0_GENERATED_P, CLASS_HAS_FINIT_P,
2196 IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
2197 IS_AN_IMPORT_ON_DEMAND_P, COMPOUND_ASSIGN_P, SWITCH_HAS_DEFAULT,
2198 PRIMARY_P, MODIFY_EXPR_FROM_INITIALIZATION_P,
2199 CLASS_METHOD_CHECKED_P, FOR_LOOP_P, ANONYMOUS_CLASS_P,
2200 LOCAL_CLASS_P, ARG_FINAL_P, SUPPRESS_UNREACHABLE_ERROR,
2201 RESOLVE_PACKAGE_NAME_P, RESOLVE_TYPE_NAME_P, IS_BREAK_STMT_P,
2202 IS_CRAFTED_STRING_BUFFER_P, IS_INIT_CHECKED, CALL_USING_SUPER,
2203 NESTED_FIELD_ACCESS_IDENTIFIER_P, TOPLEVEL_CLASS_DECL_P,
2204 PURE_INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
2205 CALL_CONSTRUCTOR_P, CALL_EXPLICIT_CONSTRUCTOR_P,
2206 CALL_THIS_CONSTRUCTOR_P, CALL_SUPER_CONSTRUCTOR_P,
2207 FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, BLOCK_IS_IMPLICIT,
2208 BLOCK_EMPTY_P, IS_UNCHECKED_EXCEPTION_P, java_error_count,
2209 java_parse_abort_on_error, extract_field_decl): Removed.
2210 (finput): Declare.
2211 * lang.c: (compiling_from_source, current_encoding): Removed.
2212 (java_handle_option): Ignore -fencoding.
2213 * parse.h: Don't include lex.h.
2214 (java_error_count, int_fits_type_p, stabilize_reference, RULE,
2215 RECOVERED, DRECOVERED, RECOVER, DRECOVER, YYERROR_NOW,
2216 YYNOT_TWICE, CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
2217 INTERFACE_MODIFIERS, INTERFACE_INNER_MODIFIERS,
2218 INTERFACE_METHOD_MODIFIERS, INTERFACE_FIELD_MODIFIERS,
2219 MODIFIER_WFL, THIS_MODIFIER_ONLY, parse_error_context,
2220 ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, exit_java_complete_class,
2221 CLASS_OR_INTERFACE, GET_REAL_TYPE, GET_TYPE_NAME,
2222 OBSOLETE_MODIFIER_WARNING, OBSOLETE_MODIFIER_WARNING2,
2223 BUILD_PTR_FROM_NAME, INCOMPLETE_TYPE_P,
2224 JAVA_MAYBE_GENERATE_DEBUG_INFO, JBSC_TYPE_P, JSTRING_P,
2225 JNULLP_TYPE_P, JDECL_P, TYPE_INTERFACE_P, TYPE_CLASS_P,
2226 IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS,
2227 MANGLE_OUTER_LOCAL_VARIABLE_NAME,
2228 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID,
2229 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING,
2230 SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
2231 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP,
2232 AIPL_FUNCTION_CREATION, AIPL_FUNCTION_DECLARATION,
2233 AIPL_FUNCTION_CTOR_INVOCATION, AIPL_FUNCTION_FINIT_INVOCATION,
2234 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
2235 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED,
2236 LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
2237 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
2238 LOOP_EXPR_BODY_BODY_EXPR, PUSH_LABELED_BLOCK, POP_LABELED_BLOCK,
2239 PUSH_LOOP, POP_LOOP, PUSH_EXCEPTIONS, POP_EXCEPTIONS,
2240 IN_TRY_BLOCK_P, EXCEPTIONS_P, ANONYMOUS_ARRAY_BASE_TYPE,
2241 ANONYMOUS_ARRAY_DIMS_SIG, ANONYMOUS_ARRAY_INITIALIZER,
2242 INVOKE_STATIC, INVOKE_NONVIRTUAL, INVOKE_SUPER, INVOKE_INTERFACE,
2243 INVOKE_VIRTUAL, jdep_code, struct _jdep, JDEP_DECL, JDEP_DECL_WFL,
2244 JDEP_KIND, JDEP_WFL, JDEP_MISC, JDEP_ENCLOSING, JDEP_CLASS,
2245 JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, JDEP_TO_RESOLVE,
2246 JDEP_RESOLVED_DECL, JDEP_RESOLVED, JDEP_RESOLVED_P, struct
2247 jdeplist_s, jdeplists, CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN,
2248 JDEP_INSERT, SET_TYPE_FOR_RESOLUTION, WFL_STRIP_BRACKET,
2249 STRING_STRIP_BRACKETS, PROMOTE_RECORD_IF_COMPLETE,
2250 BLOCK_CHAIN_DECL, GET_CURRENT_BLOCK, EXPR_WFL_GET_LINECOL,
2251 EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION, QUAL_DECL_TYPE,
2252 GET_SKIP_TYPE, COMPLETE_CHECK_OP, COMPLETE_CHECK_OP_0,
2253 COMPLETE_CHECK_OP_1, COMPLETE_CHECK_OP_2, BUILD_APPEND,
2254 BUILD_STRING_BUFFER, BUILD_THROW, SET_WFL_OPERATOR,
2255 PATCH_METHOD_RETURN_ERROR, CHECK_METHODS, CLEAR_DEPRECATED,
2256 CHECK_DEPRECATED_NO_RESET, CHECK_DEPRECATED, REGISTER_IMPORT,
2257 CURRENT_OSB, struct parser_ctxt, GET_CPC_LIST, CPC_INNER_P,
2258 GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, GET_CPC_DECL_NODE,
2259 GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
2260 GET_ENCLOSING_CPC_CONTEXT, INNER_ENCLOSING_SCOPE_CHECK, PUSH_CPC,
2261 PUSH_ERROR, POP_CPC, DEBUG_CPC, CPC_INITIALIZER_LIST,
2262 CPC_STATIC_INITIALIZER_LIST, CPC_INSTANCE_INITIALIZER_LIST,
2263 CPC_INITIALIZER_STMT, CPC_STATIC_INITIALIZER_STMT,
2264 CPC_INSTANCE_INITIALIZER_STMT, SET_CPC_INITIALIZER_STMT,
2265 SET_CPC_STATIC_INITIALIZER_STMT,
2266 SET_CPC_INSTANCE_INITIALIZER_STMT, JAVA_NOT_RADIX10_FLAG,
2267 java_complete_class, java_check_circular_reference,
2268 java_fix_constructors, java_layout_classes, java_reorder_fields,
2269 java_method_add_stmt, java_get_line_col, reset_report,
2270 java_init_lex, yyparse, java_parse, yyerror, java_expand_classes,
2271 java_finish_classes, ctxp, ctxp_for_generation,
2272 ctxp_for_generation_last): Removed.
2273 * expr.c (force_evaluation_order): Don't mention NEW_CLASS_EXPR.
2274 * mangle.c (utf8_cmp): New function.
2275 (cxx_keywords): New global.
2276 (cxx_keyword_p): New function.
2277 * jvspec.c (JAVA_START_CHAR): Removed obsolete comment.
2278 * java-tree.def (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR,
2279 NEW_ANONYMOUS_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
2280 CASE_EXPR, DEFAULT_EXPR, JAVA_CATCH_EXPR, SYNCHRONIZED_EXPR,
2281 THROW_EXPR, CONDITIONAL_EXPR, INSTANCEOF_EXPR, NEW_ARRAY_INIT,
2282 CLASS_LITERAL, JAVA_EXC_OBJ_EXPR): Removed.
2283 * Make-lang.in (java.srcextra): Do nothing.
2284 (parse.c, keyword.h, gt-java-parse.h): Removed targets.
2285 (JAVA_OBJS): Don't mention deleted files.
2286 (java.mostlyclean): Likewise.
2287 (java.clean): Likewise.
2288 (JAVA_LEX_C): Removed.
2289 (buffer.o, check-init.o, parse.o): Remove unused targets.
2290 (typeck.o): Updated.
2291 * jcf-parse.c (read_class): Comment out unused code.
2292 (java_layout_seen_class_methods): New function.
2293 (parse_source_file_1, parse_source_file_2, parse_source_file_3):
2294 Removed.
2295 (java_parse_file): Comment out unused code. Don't use 'ctxp'.
2296 (init_jcf_parse): Removed.
2297 * config-lang.in (gtfiles): Remove deleted files.
2298 * decl.c (java_init_decl_processing): Don't initialize
2299 finit_identifier_node, instinit_identifier_node,
2300 length_identifier_node, super_identifier_node,
2301 continue_identifier_node, access0_identifier_node. Don't call
2302 init_jcf_parse.
2303 * class.c (cyclic_inheritance_report): New global.
2304 (add_method_1): Don't use
2305 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND.
2306 (maybe_layout_super_class): Comment out code.
2307 (safe_layout_class): New function.
2308 * java-gimplify.c (java_gimplify_expr): Removed CASE_EXPR,
2309 DEFAULT_EXPR, NEW_ARRAY_INIT, JAVA_CATCH_EXPR, JAVA_EXC_OBJ_EXPR,
2310 UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_ANONYMOUS_ARRAY_EXPR,
2311 NEW_CLASS_EXPR, SYNCHRONIZED_EXPR, CONDITIONAL_EXPR,
2312 INSTANCEOF_EXPR, CLASS_LITERAL, THIS_EXPR.
2313 (java_gimplify_case_expr): Removed.
2314 (java_gimplify_default_expr): Likewise.
2315 (java_gimplify_new_array_init): Likewise.
2316 * parse.y: Removed.
2317 * keyword.gperf, keyword.h: Removed.
2318 * chartables.h: Removed.
2319 * check-init.c: Removed.
2320 * buffer.c, buffer.h: Removed.
2321 * convert.h: Removed.
2322 * gen-table.pl: Removed.
2323 * lex.c, lex.h: Removed.
2324
2325 2007-01-02 Andrew Haley <aph@redhat.com>
2326
2327 * expr.c (expand_java_arraystore): Make sure we perform a bounds
2328 check at runtime before we perform a type check.
2329
2330 2006-12-19 Andrew Haley <aph@redhat.com>
2331
2332 * decl.c: Bump minor BC ABI version.
2333
2334 2006-12-13 Gary Benson <gbenson@redhat.com>
2335
2336 * jcf-depend.c (jcf_dependency_add_file): Mark filename unused.
2337
2338 2006-12-12 Tom Tromey <tromey@redhat.com>
2339
2340 * lang-specs.h: Pass -M options to jc1.
2341 * jcf-depend.c (jcf_dependency_add_file): Don't emit
2342 dependencies.
2343
2344 2006-12-07 Mohan Embar <gnustuff@thisiscool.com>
2345
2346 * jcf-path.c (jcf_path_compute): Use platform PATH_SEPARATOR.
2347
2348 2006-12-06 Mohan Embar <gnustuff@thisiscool.com>
2349
2350 * lang-specs.h: Pass '%U'-based options as separate arguments.
2351
2352 2006-12-05 Tom Tromey <tromey@redhat.com>
2353
2354 PR java/29495:
2355 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Mark fields and
2356 classes as well.
2357 * class.c (add_field): Handle ACC_SYNTHETIC.
2358 (add_method_1): Likewise. Handle bridge and varargs.
2359 (get_access_flags_from_decl): Handle synthetic, bridge, varargs,
2360 annotation.
2361 (set_class_decl_access_flags): Handle synthetic and annotation.
2362 * java-tree.h (METHOD_BRIDGE): New macro.
2363 (METHOD_VARARGS): Likewise.
2364 (TYPE_SYNTHETIC): Likewise.
2365 (TYPE_ANNOTATION): Likewise.
2366 (lang_type): New fields 'synthetic' and 'annotation'.
2367 (lang_decl_func): New fields 'varargs' and 'bridge'.
2368
2369 2006-12-04 Andrew Haley <aph@redhat.com>
2370
2371 * jcf-parse.c (rewrite_reflection_indexes): Don't do anything if
2372 there's no map.
2373
2374 2006-11-29 Gary Benson <gbenson@redhat.com>
2375
2376 * expr.c (rewrite_arglist_getcaller): Reorder.
2377
2378 2006-11-29 Andrew Haley <aph@redhat.com>
2379
2380 * expr.c (rewrite_arglist_getcaller): Remove DECL_INLINE.
2381 * lang.c (java_decl_ok_for_sibcall): Check for DECL_INLINE.
2382
2383 2006-11-23 Andrew Haley <aph@redhat.com>
2384
2385 * expr.c (rewrite_arglist_getcaller): New.
2386 (rewrite_arglist_getclass): Fix indentation.
2387 (rules): Add gnu.classpath.VMStackWalker.getCallingClass() and
2388 gnu.classpath.VMStackWalker.getCallingClassLoader().
2389 * builtins.c (initialize_builtins): Remove duplicate def'n of
2390 __sync_synchronize.
2391 Add __builtin_return_address.
2392
2393 2006-11-22 Andrew Haley <aph@redhat.com>
2394
2395 * jcf-reader.c (get_attribute): Mark attr_type unused.
2396
2397 * builtins.c (compareAndSwapObject_builtin): Fix declaration.
2398
2399 2007-01-08 Richard Guenther <rguenther@suse.de>
2400
2401 * lex.c (do_java_lex): Use build_int_cst_wide_type.
2402 * jcf-parse.c (get_constant): Likewise.
2403
2404 2006-11-12 Jan Hubicka <jh@suse.cz>
2405
2406 * resource.c (compile_resource_data): Update for new varpool names.
2407 * java/class.c (build_utf8_ref): Likewise.
2408
2409 2006-11-12 David Daney <ddaney@avtrex.com>
2410
2411 PR java/29805
2412 * typeck.c (build_java_array_type): Increase buffer sizes.
2413
2414 2006-11-11 Richard Guenther <rguenther@suse.de>
2415
2416 * check-init.c (check_init): Remove handling of FIX_CEIL_EXPR,
2417 FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
2418
2419 2006-11-06 Andrew Haley <aph@redhat.com>
2420
2421 * java-tree.h (CONSTANT_LazyFlag): New.
2422 * constants.c (build_constants_constructor): Mask CONSTANT_LazyFlag.
2423 * jcf-parse.c (handle_innerclass_attribute): Write attribute to
2424 reflection_data.
2425 (handle_constant): Return 0 for dummy cpool entries.
2426 Handle constants of kind Class.
2427 Handle constants of kind NameAndType.
2428 (handle_enclosingmethod_attribute): New.
2429 (handle_signature_attribute): New.
2430 (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New.
2431 (HANDLE_SIGNATURE_ATTRIBUTE): New.
2432 (handle_constant): Use unmangle_classname()rather than calling
2433 identifier_subst() directly.
2434
2435 2006-11-02 Andrew Haley <aph@redhat.com>
2436
2437 * java-tree.h (FIELD_ENUM): New.
2438 (lang_decl_var.field_enum): New.
2439 (lang_type.enum_class): New.
2440 (CLASS_ENUM): New.
2441 * class.c (set_class_decl_access_flags): Handle enum types.
2442 (add_field): Handle enum fields.
2443 (get_access_flags_from_decl): Likewise.
2444
2445 * class.c (make_class_data): Put reflection_data into rodata.
2446
2447 2006-11-01 Andrew Haley <aph@redhat.com>
2448
2449 * jcf-parse.c (field_offsets, bit_obstack): New variables.
2450 (jcf_parse): Write end marker to annotation_data.
2451 (java_parse_file): Create field_offsets bitmap. Destroy it.
2452 (annotation_grow, annotation_rewrite_byte)
2453 (annotation_rewrite_short, annotation_rewrite_int)
2454 (annotation_read_short, annotation_write_byte)
2455 (annotation_write_short, annotation_write_int)
2456 (handle_long_constant, handle_constant, handle_element_value)
2457 (handle_annotation, handle_annotations)
2458 (handle_annotation_attribute, rewrite_reflection_indexes)
2459 (handle_member_annotations, handle_parameter_annotations)
2460 (handle_default_annotation): New functions.
2461 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE)
2462 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE)
2463 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
2464 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
2465 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): New definitions.
2466 * java-tree.h (enum jv_attr_type, enum jv_attr_kind): New.
2467 (TYPE_REFLECTION_DATA): New.
2468 (TYPE_REFLECTION_DATASIZE): New.
2469 * jcf.h (enum cpool_tag): Convert a bunch of #define constants to
2470 an enum.
2471 * jcf-reader.c (get_attribute): Pass field/method index and
2472 attribute type to get_attribute().
2473 * constants.c (find_class_or_string_constant): Make nonstatic.
2474 (cpool_for_class): Likewise.
2475 (build_constants_constructor): Separate string and scalar types.
2476 * class.c (make_class_data): Generate field_indexes permutation.
2477 Pass it to rewrite_reflection_indexes().
2478 (make_class_data): Generate constructor for reflection_data field.
2479
2480 2006-10-20 Tom Tromey <tromey@redhat.com>
2481
2482 * gcj.texi (Top): Don't mention jv-scan.
2483 (Invoking gcj): Likewise.
2484 (Invoking gcjh): Likewise.
2485 (Invoking gjnih): Likewise.
2486 (Invoking gij): Likewise.
2487 (Invoking gcj-dbtool): Likewise.
2488 (Invoking jv-scan): Removed.
2489 * parse-scan.y: Removed.
2490 * jv-scan.c: Removed.
2491 * config-lang.in (stagestuff): Don't mention jv-scan.
2492 * Make-lang.in (java): Removed jv-scan.
2493 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
2494 (JVSCAN_OBJS): Removed.
2495 (jv-scan$(exeext)): Likewise.
2496 (JAVA_MANFILES): Removed jv-scan.1.
2497 (java.uninstall): Don't mention jv-scan.
2498 (java.mostlyclean): Likewise.
2499 (java.maintainer-clean): Likewise.
2500 (.INTERMEDIATE): Likewise.
2501 (java/jv-scan.o): Removed.
2502 (jv-scan.pod): Likewise.
2503 (java.srcextra): Don't mention parse-scan.c.
2504 (java.mostlyclean): Likewise.
2505 (java/parse-scan.c): Removed.
2506 (java/parse-scan.o-warn): Removed.
2507 (java/parse-scan.o): Removed.
2508
2509 2006-10-20 Tom Tromey <tromey@redhat.com>
2510
2511 * lang.c (java_handle_option): Don't use
2512 jcf_write_base_directory.
2513 * jcf.h (jcf_write_base_directory): Removed.
2514 * parse.y (java_expand_classes): Don't call write_classfile.
2515 * config-lang.in (gtfiles): Removed jcf-write.c.
2516 * Make-lang.in (JAVA_OBJS): Removed jcf-write.o.
2517 (java/jcf-write.o): Removed.
2518 * jcf-parse.c (parse_class_file): Don't call write_classfile.
2519 * java-tree.h (write_classfile): Removed declaration.
2520 * jcf-write.c: Removed.
2521
2522 2006-10-20 Tom Tromey <tromey@redhat.com>
2523
2524 * Make-lang.in (java): Removed gjnih, gcjh.
2525 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
2526 (GCJH_OBJS): Removed.
2527 (GJNIH_OBJS): Likewise.
2528 (gjnih$(exeext)): Likewise.
2529 (gcjh$(exeext)): Likewise.
2530 (JAVA_MANFILES): Removed gcjh.1, gjnih.1.
2531 (java.install-common): Don't special case gcjh.
2532 (java.uninstall): Don't mention gcjh, gjnih.
2533 (java.mostlyclean): Likewise.
2534 (java.maintainer-clean): Likewise.
2535 (.INTERMEDIATE): Likewise.
2536 (gcjh.pod): Removed.
2537 (gjnih.pod): Likewise.
2538 (GCJH_TARGET_INSTALL_NAME): Removed.
2539 (java/gjavah-jni.o): Removed.
2540 (java/gjavah.o): Likewise.
2541 * config-lang.in (stagestuff): Removed gjnih, gcjh.
2542 * gjavah.c: Removed.
2543
2544 2006-10-17 Tom Tromey <tromey@redhat.com>
2545
2546 * jcf-dump.c (print_element_value): Expect a utf8 constant in the
2547 "string" case.
2548
2549 2006-10-17 Tom Tromey <tromey@redhat.com>
2550
2551 * jvgenmain.c (main): Handle -findirect-dispatch.
2552 * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to
2553 jvgenmain.
2554
2555 2006-10-06 Andrew Haley <aph@redhat.com>
2556
2557 * builtins.c (compareAndSwapInt_builtin): Check that we really do
2558 have a compare_and_swap builtin.
2559 (compareAndSwapLong_builtin): Likewise.
2560 (compareAndSwapObject_builtin): Likewise.
2561
2562 2006-10-04 Andrew Haley <aph@redhat.com>
2563
2564 * builtins.c (java_builtins): Add compareAndSwapInt,
2565 compareAndSwapLong, compareAndSwapObject, putOrderedInt,
2566 putOrderedLong, putOrderedObject, putIntVolatile, putLongVolatile,
2567 putObjectVolatile, getObjectVolatile, getIntVolatile,
2568 getLongVolatile, getLong.
2569 (UNMARSHAL3): New macro.
2570 (UNMARSHAL4): Likewise.
2571 (UNMARSHAL5): Likewise.
2572 (build_arglist_for_builtin): New function.
2573 (build_addr_sum, build_check_this): New functions.
2574 (putObject_builtin. compareAndSwapInt_builtin,
2575 compareAndSwapLong_builtin, compareAndSwapObject_builtin,
2576 putVolatile_builtin, getVolatile_builtin): New builtins.
2577
2578 2006-06-08 Andrew Haley <aph@redhat.com>
2579
2580 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
2581 get_symbol_table_index().
2582 (maybe_rewrite_invocation): Set SPECIAL if we need to access a
2583 private method.
2584 (build_known_method_ref): New arg: special. Pass it to
2585 get_symbol_table_index.
2586 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
2587 the method list.
2588 (build_invokevirtual): New arg: special. Pass it to
2589 get_symbol_table_index.
2590 (expand_invoke): New variable: special.
2591 Pass it to maybe_rewrite_invocation().
2592 Pass it to build_known_method_ref().
2593 * class.c (build_symbol_entry): Add new arg: special. Use it to
2594 build the symbol table conbstructor.
2595 (emit_symbol_table): Extract SPECIAL from the method list and pass
2596 it to build_symbol_entry().
2597 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
2598 special accordingly.
2599
2600 2006-09-08 Andrew Haley <aph@redhat.com>
2601
2602 * class.c (layout_class_method): Use build_java_signature, not
2603 build_java_argument_signature. Use lookup_java_method, not
2604 lookup_argument_method.
2605
2606 2006-08-16 Jakub Jelinek <jakub@redhat.com>
2607 Bryce McKinlay <bryce@mckinlay.net.nz>
2608
2609 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
2610
2611 2006-07-18 Tom Tromey <tromey@redhat.com>
2612
2613 * lang.opt: Added missing -W options.
2614
2615 2006-07-12 Tom Tromey <tromey@redhat.com>
2616
2617 PR java/28329:
2618 * lang-specs.h: Pass '%U'-based options as separate arguments.
2619 Use -faux-classpath.
2620 * lang.c (java_handle_option): Handle OPT_faux_classpath.
2621 * lang.opt (faux-classpath): New option.
2622
2623 2006-07-07 Tom Tromey <tromey@redhat.com>
2624
2625 * class.c (make_class_data): Set value for reflection_data field.
2626 * decl.c (java_init_decl_processing): Add reflection_data field.
2627
2628 2006-07-07 Tom Tromey <tromey@redhat.com>
2629
2630 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): Declare locals
2631 earlier.
2632 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
2633
2634 2006-07-07 Andrew Haley <aph@redhat.com>
2635
2636 * jcf-parse.c (set_source_filename): Don't check for
2637 CLASS_FROM_CURRENTLY_COMPILED_P.
2638 Remove // comments.
2639
2640 2006-07-07 Andrew Haley <aph@redhat.com>
2641
2642 * java-tree.h (java_read_sourcefilenames): Declare.
2643 * lang.c (java_handle_option): Call java_read_sourcefilenames().
2644 * lang.opt (fsource-filename): New opt.
2645 * lang-specs.h: Add -fsource-filename.
2646 * jcf-parse.c (num_files, filenames): New variables.
2647 (reverse, cmpstringp, java_read_sourcefilenames,
2648 find_sourcefile): New.
2649 (set_source_filename): Call find_sourcefile to find the real name
2650 of a source file.
2651
2652 2006-06-27 Tom Tromey <tromey@redhat.com>
2653
2654 * jcf-reader.c (get_attribute): Handle EnclosingMethod,
2655 Signature, LocalVariableTypeTable, annotation attributes.
2656 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New macro.
2657 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
2658 (HANDLE_START_FIELD): Mention 'descriptor', not 'signature'.
2659 (HANDLE_METHOD): Likewise.
2660 (HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE): New macro.
2661 (print_annotation): New function.
2662 (print_element_value): Likewise.
2663 (indent): Likewise.
2664 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE): New macro.
2665 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE): Likewise.
2666 (print_parameter_annotations): New function.
2667 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): New macro.
2668 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE):
2669 Likewise.
2670 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): Likewise.
2671 (print_annotations): New function.
2672
2673 2006-06-23 Tom Tromey <tromey@redhat.com>
2674
2675 * lang-specs.h: Default -fsource and -ftarget to 1.5. If
2676 emitting class files, always use 1.5.
2677 * gcj.texi (Input Options): Document -fsource.
2678 (Code Generation): Document -ftarget.
2679
2680 2006-06-21 Tom Tromey <tromey@redhat.com>
2681
2682 PR java/28089:
2683 * expr.c (expand_java_field_op): Initialize field's declaring
2684 class.
2685
2686 2006-06-20 Tom Tromey <tromey@redhat.com>
2687
2688 * expr.c (push_value): Always flush quick stack.
2689
2690 2006-06-19 Tom Tromey <tromey@redhat.com>
2691
2692 * expr.c (push_value): Also flush quick stack if value is a
2693 component_ref.
2694
2695 2006-06-19 Tom Tromey <tromey@redhat.com>
2696
2697 * expr.c (push_value): Flush quick stack if value has side
2698 effects.
2699
2700 2006-06-13 Tom Tromey <tromey@redhat.com>
2701
2702 * class.c (is_compiled_class): Explicitly check for current
2703 class.
2704
2705 2006-06-09 Tom Tromey <tromey@redhat.com>
2706
2707 * gjavah.c (decompile_method): Don't decompile a static field
2708 accessor method.
2709
2710 2006-06-06 Tom Tromey <tromey@redhat.com>
2711
2712 * lang-specs.h <jc1>: Add .jar file to command line if
2713 -fsaw-java-file. Also, remove -ffilelist-file in this case.
2714
2715 2006-06-05 Tom Tromey <tromey@redhat.com>
2716
2717 * jcf-dump.c (print_access_flags): Handle varargs, bridge,
2718 synthetic, enum, annotation.
2719 * jcf.h (ACC_BRIDGE): New macro.
2720 (ACC_VARARGS): Likewise.
2721 (ACC_SYNTHETIC): Likewise.
2722 (ACC_ENUM): Likewise.
2723 (ACC_ANNOTATION): Likewise.
2724
2725 2006-06-04 Tom Tromey <tromey@redhat.com>
2726
2727 * lang.opt (-fsaw-java-file, -fsource, -ftarget): New options.
2728 * jvspec.c (jvgenmain_spec): Remove -fsaw-java-file, -fsource,
2729 and -ftarget.
2730 (lang_specific_driver): Removed dead code. Add -fsaw-java-file
2731 when needed. Handle classpath-setting.
2732 * Make-lang.in ($(GCJ)$(exeext)): Link in jcf-path.o.
2733 * lang-specs.h: Rewrote.
2734
2735 2006-06-04 Tom Tromey <tromey@redhat.com>
2736
2737 * jcf-io.c (find_class): Set source_ok to 0.
2738 * jcf-parse.c (jcf_parse): Disable gnu.gcj.gcj-compiled warning.
2739 (parse_class_file): Don't call java_mark_class_local.
2740 (java_parse_file): Skip .java files. Call java_mark_class_local
2741 before lowering any code.
2742 (parse_zip_file_entries): Don't call duplicate_class_warning
2743 here.
2744 (process_zip_dir): ... call it here.
2745 * class.c (add_field): Don't mark field external if it is being
2746 compiled into this object.
2747 (make_class_data): Handle situation where class_dtable_decl is
2748 created before Class is compiled.
2749 (is_compiled_class): Don't assume files in zip are compiled into
2750 this object.
2751 (layout_class_method): Don't mark method external if it is being
2752 compiled into this object.
2753
2754 2006-06-04 Tom Tromey <tromey@redhat.com>
2755
2756 * jcf-path.c (jcf_path_compute): New function.
2757 * jcf.h (jcf_path_compute): Declare.
2758
2759 2006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2760
2761 * decl.c: Include langhooks.h.
2762 (builtin_function): Remove.
2763 (java_init_decl_processing): Replace calls to builtin_function
2764 with add_builtin_function.
2765 * Make-lang.in (jc1$(exeext)): Depend on and link with attribs.o.
2766 (java/decl.o): Depend on langhooks.h.
2767 * java-tree.h (builtin_function): Remove.
2768
2769 2006-10-10 Brooks Moses <bmoses@stanford.edu>
2770
2771 * Make-lang.in: Added "java.pdf", "gcj.pdf" target support.
2772
2773 2006-09-12 Tom Tromey <tromey@redhat.com>
2774
2775 * expr.c (push_value): Always flush quick stack.
2776
2777 2006-09-12 Tom Tromey <tromey@redhat.com>
2778
2779 PR java/29013:
2780 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Always note
2781 the push of the called method's return result.
2782
2783 2006-09-12 Tom Tromey <tromey@redhat.com>
2784
2785 * jvspec.c (lang_specific_driver): Read spec file even if
2786 -fsyntax-only.
2787
2788 2006-09-12 Tom Tromey <tromey@redhat.com>
2789
2790 PR java/28754:
2791 * expr.c (expand_java_field_op): Initialize field's declaring
2792 interface if necessary.
2793
2794 2006-09-12 Tom Tromey <tromey@redhat.com>
2795
2796 PR java/28892:
2797 * expr.c (expand_java_field_op): No error for assignments not in
2798 class initializer or constructor.
2799
2800 2006-08-22 Andrew Haley <aph@redhat.com>
2801
2802 * decl.c (java_add_stmt): Give the statement list a type.
2803
2804 2006-08-16 Jakub Jelinek <jakub@redhat.com>
2805 Bryce McKinlay <bryce@mckinlay.net.nz>
2806
2807 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
2808
2809 2006-08-10 Simon Martin <simartin@users.sourceforge.net>
2810
2811 PR java/8923
2812 * parse.y (build_incdec): Emit an error instead of an ICE if '++'
2813 or '--' is used with a constant operand.
2814 (java_complete_lhs): When processing a '++' or '--' expression,
2815 don't call java_complete_tree but java_complete_lhs, so that a
2816 static final variable operand is never replaced by its value. This
2817 avoids an ICE later on.
2818 (patch_unaryop): Fixed typo in comment.
2819
2820 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2821
2822 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2823
2824 2006-07-12 Bryce McKinlay <mckinlay@redhat.com>
2825
2826 * builtins.c (check_for_builtin): If a builtin could result in a
2827 direct call being generated, don't use it if flag_indirect_dispatch
2828 is set.
2829
2830 2006-07-12 Bryce McKinlay <mckinlay@redhat.com>
2831
2832 * gcj.texi (Invocation): Corrections for Invocation API example.
2833
2834 2006-07-04 Andrew Haley <aph@redhat.com>
2835
2836 * class.c (build_fieldref_cache_entry): Set DECL_IGNORED_P on the
2837 entry.
2838
2839 2006-06-21 Andrew Haley <aph@redhat.com>
2840
2841 * java-tree.h (update_aliases): Remove
2842 * expr.c (expand_iinc): Remove call to update_aliases().
2843 (STORE_INTERNAL): Likewise.
2844 * decl.c (update_aliases, initialize_local_variable)
2845 (maybe_pushlevels): Set DECL_VALUE_EXPR for debugging decls.
2846
2847 2006-06-19 Andrew Haley <aph@redhat.com>
2848
2849 PR java/1305
2850 PR java/27908
2851 * expr.c (java_modify_addr_for_volatile): New function.
2852 (expand_java_field_op): Handle volatile fields.
2853 * java-gimplify.c (java_gimplify_component_ref): Call
2854 java_modify_addr_for_volatile to give the field_ref the correct
2855 volatile type.
2856 (java_gimplify_modify_expr): Likewise.
2857 * java-tree.h (java_modify_addr_for_volatile): New decl.
2858
2859 2006-06-17 Karl Berry <karl@gnu.org>
2860
2861 * gcj.texi (@dircategory): Use "Software development" instead
2862 of "Programming", following the Free Software Directory.
2863
2864 2006-06-16 Andrew Haley <aph@redhat.com>
2865
2866 * class.c (make_class_data): When using flag_indirect_classes,
2867 don't initialize the vtable of Class instances.
2868
2869 2006-06-09 Andrew Haley <aph@redhat.com>
2870
2871 PR java/1305
2872 PR java/27908
2873 * builtins.c (initialize_builtins): Add __sync_synchronize().
2874 * class.c (add_field): Mark volatile fields.
2875 * java-gimplify.c (java_gimplify_expr): Call new functions to
2876 handle self-modifying exprs and COMPONENT_REFs.
2877 (java_gimplify_component_ref): New.
2878 (java_gimplify_modify_expr): Add handling for volatiles.
2879
2880 2006-06-08 Tom Tromey <tromey@redhat.com>
2881
2882 * gcj.texi (libgcj Runtime Properties): Document
2883 gnu.gcj.user.realname.
2884
2885 2006-06-08 Andrew Haley <aph@redhat.com>
2886
2887 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
2888 get_symbol_table_index().
2889 (maybe_rewrite_invocation): Set SPECIAL if we need to access a
2890 private method.
2891 (build_known_method_ref): New arg: special. Pass it to
2892 get_symbol_table_index.
2893 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
2894 the method list.
2895 (build_invokevirtual): New arg: special. Pass it to
2896 get_symbol_table_index.
2897 (expand_invoke): New variable: special.
2898 Pass it to maybe_rewrite_invocation().
2899 Pass it to build_known_method_ref().
2900 * class.c (build_symbol_entry): Add new arg: special. Use it to
2901 build the symbol table conbstructor.
2902 (emit_symbol_table): Extract SPECIAL from the method list and pass
2903 it to build_symbol_entry().
2904 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
2905 special accordingly.
2906
2907 2006-06-06 David Daney <ddaney@avtrex.com>
2908
2909 * gcj.texi (libgcj Runtime Properties): Document
2910 gnu.gcj.runtime.NameFinder.show_raw and
2911 gnu.gcj.runtime.NameFinder.remove_unknown.
2912
2913 2006-06-06 Tom Tromey <tromey@redhat.com>
2914
2915 * jcf-dump.c (print_access_flags): Handle varargs, bridge,
2916 synthetic, enum, annotation.
2917 * jcf.h (ACC_BRIDGE): New macro.
2918 (ACC_VARARGS): Likewise.
2919 (ACC_SYNTHETIC): Likewise.
2920 (ACC_ENUM): Likewise.
2921 (ACC_ANNOTATION): Likewise.
2922
2923 2006-06-06 Mike Stump <mrs@apple.com>
2924
2925 * Make-lang.in: Rename to htmldir to build_htmldir to avoid
2926 installing during build.
2927
2928 2006-05-31 Thomas Fitzsimmons <fitzsim@redhat.com>
2929
2930 * gcj.texi (Extensions): Document the new gcj-dbtool-based
2931 classname-to-library resolution mechanism.
2932 Declare the old gnu.gcj.runtime.VMClassLoader.library_control
2933 mechanism deprecated.
2934 (libgcj Runtime Properties): Document
2935 gnu.gcj.runtime.VMClassLoader.library_control's new default.
2936
2937 2006-05-29 Jakub Jelinek <jakub@redhat.com>
2938
2939 * javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64)
2940 bit wide type.
2941 (jword): Define to uint64 on 64-bit arches.
2942 * jcf-dump.c (print_constant): Cast JPOOL_UINT to long.
2943
2944 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
2945
2946 * class.c, except.c, expr.c, java-gimplify.c: Fix comment
2947 typos.
2948
2949 2006-05-26 Tom Tromey <tromey@redhat.com>
2950
2951 * expr.c (java_push_constant_from_pool): Handle 'ldc class'.
2952 * verify-glue.c (vfy_class_type): New function.
2953 * verify-impl.c (check_constant): Allow 'ldc class'.
2954 * verify.h (vfy_class_type): Declare.
2955
2956 2006-05-25 Andrew Haley <aph@redhat.com>
2957
2958 PR java/27756
2959 * decl.c (maybe_pushlevels): When variable ranges are non-nested
2960 update all lifetimes, not just the first one.
2961
2962 2006-05-24 Tom Tromey <tromey@redhat.com>
2963
2964 * java-tree.h: Fixed flag documentation.
2965
2966 2006-05-24 Tom Tromey <tromey@redhat.com>
2967
2968 PR libgcj/27729:
2969 * jcf.h (ACC_INVISIBLE): Changed value.
2970
2971 2006-05-24 Andrew Haley <aph@redhat.com>
2972
2973 PR java/27754
2974 * decl.c (java_add_stmt): Use a STATEMENT_LIST rather than a
2975 COMPOUND_EXPR.
2976
2977 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
2978
2979 * lang.opt (femit-class-file): Remove VarExists.
2980
2981 2006-05-16 Tom Tromey <tromey@redhat.com>
2982
2983 * verify-impl.c (verify_instructions_0) <op_return>: Special case
2984 for Object.<init>.
2985
2986 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
2987
2988 PR driver/26885
2989 * Make-lang.in ($(GCJ)$(exeext)): Replace gcc.o with
2990 $(GCC_OBJS).
2991
2992 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
2993
2994 * Make-lang.in (java/decl.o): Add dependency on $(TARGET_H).
2995 (java/expr.o): Replace target.h with $(TARGET_H).
2996 (java/parse.o): Likewise.
2997
2998 2006-05-10 Andrew Haley <aph@redhat.com>
2999
3000 * class.c (emit_indirect_register_classes): Fix comment.
3001
3002 2006-05-04 Tom Tromey <tromey@redhat.com>
3003
3004 * java-tree.h (uses_jv_markobj_p): Declare.
3005 * class.c (uses_jv_markobj_p): Removed.
3006 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): New define.
3007 (get_boehm_type_descriptor): Use it.
3008 (uses_jv_markobj_p): Moved from class.c. Return bool.
3009
3010 2006-05-04 Tom Tromey <tromey@redhat.com>
3011
3012 * java-tree.def (THIS_EXPR): Now a tcc_expression.
3013
3014 2006-05-04 Andrew Haley <aph@redhat.com>
3015
3016 * class.c (make_field_value): Always build_address_of fdecl if
3017 there is an initializer.
3018
3019 2006-05-03 Andrew Haley <aph@redhat.com>
3020
3021 PR libgcj/27352
3022 * expr.c (maybe_rewrite_invocation): New function.
3023 (rewrite_arglist_getclass): Likewise.
3024 (rules): New.
3025 (expand_invoke): Call maybe_rewrite_invocation.
3026 * parse.y (patch_invoke): Likewise.
3027 * java-tree.h: (maybe_rewrite_invocation): New function.
3028
3029 2006-04-21 Andrew Haley <aph@redhat.com>
3030
3031 * lang.c (java_init): Handle flag_indirect_classes.
3032 * jvgenmain.c: Use "class$$" instead of "class$".
3033 * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as
3034 DECLs.
3035 (mangle_class_field): Special case "class$$" as well as "class$".
3036 * constants.c (build_ref_from_constant_pool): If
3037 flag_indirect_classes, generate a ref into the heap.
3038 * decl.c (constants_field_decl_node,
3039 constants_data_field_decl_node): New.
3040 * class.c (build_static_class_ref): New.
3041 (build_classdollar_field): Factor out from build_class_ref().
3042 (make_field_value): Handle static fields in heap.
3043 (make_class_data): Make sure we get a static ref to class.
3044 Make class initializer const if flag_indirect_classes.
3045 (register_class): Build a class_ref for initialization if
3046 flag_indirect_classes.
3047 (emit_indirect_register_classes): New.
3048
3049 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
3050
3051 * expr.c, gjavah.c: Fix comment typos.
3052
3053 2006-04-03 Andrew Haley <aph@redhat.com>
3054
3055 PR java/26858
3056 * expr.c (build_field_ref): Don't check the field offset if
3057 flag_syntax_only.
3058
3059 2006-03-30 Andrew Haley <aph@redhat.com>
3060
3061 PR java/26858
3062 * lang.c (java_attribute_table): New.
3063 (LANG_HOOKS_ATTRIBUTE_TABLE): Define.
3064 * expr.c (build_field_ref): Add a null pointer check for all
3065 fields of offset > 4k. Don't do so for accesses via the this
3066 pointer, which we know can never be null.
3067 * class.c (build_java_method_type): Mark arg 1 of all nonstatic
3068 methods nonnull.
3069
3070 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
3071
3072 * Make-lang.in: Rename docdir to gcc_docdir.
3073
3074 2006-03-30 Tom Tromey <tromey@redhat.com>
3075
3076 PR java/26042:
3077 * parse.y (java_reorder_fields): Reset superclass field's size as
3078 well.
3079
3080 2006-03-28 Tom Tromey <tromey@redhat.com>
3081
3082 PR java/26390:
3083 * parse.y (find_most_specific_methods_list): Added 'class'
3084 argument.
3085 (lookup_method_invoke): Updated.
3086
3087 2006-03-15 Tom Tromey <tromey@redhat.com>
3088
3089 * jcf-write.c (generate_bytecode_insns): Use qualifying type for
3090 non-static method calls.
3091
3092 2006-03-15 David Daney <ddaney@avtrex.com>
3093
3094 * java-tree.h : Moved comment for TYPE_DOT_CLASS adjacent to its
3095 declaration.
3096
3097 2006-03-15 David Daney <ddaney@avtrex.com>
3098
3099 * lang.opt (-freduced-reflection): New option.
3100 * lang.c (java_post_options): Generate an error if
3101 -freduced-reflection used with -fjni or -findirect-dispatch.
3102 * java-tree.h (flag_reduced_reflection): Declare new variable.
3103 * boehm.c (get_boehm_type_descriptor): Indicate all pointers
3104 if bitmap overflows and flag_reduced_reflection set.
3105 * class.c (uses_jv_markobj_p): New function.
3106 (make_class_data): Moved generation of vtable to before
3107 reflection data, generate less reflection data if
3108 flag_reduced_reflection set.
3109 * gcj.texi: Document -freduced-reflection.
3110
3111 2006-03-15 Tom Tromey <tromey@redhat.com>
3112
3113 PR java/26638:
3114 * class.c (get_interface_method_index): Don't put <clinit> into
3115 interface table.
3116
3117 2006-03-15 Tom Tromey <tromey@redhat.com>
3118
3119 * parse.y (analyze_clinit_body): Ignore empty statements.
3120
3121 2006-03-08 David Daney <ddaney@avtrex.com>
3122
3123 * gcj.texi: Document -static-libgcj option.
3124
3125 2006-02-20 Andrew Haley <aph@redhat.com>
3126
3127 * jcf-parse.c (parse_class_file): Set input_location from
3128 current_class.
3129
3130 2006-02-15 Andrew Haley <aph@redhat.com>
3131
3132 * class.c (GEN_TABLE): Don't pushdecl *_SYMS_DECL here.
3133 (make_class_data): pushdecl_top_level TYPE_OTABLE_SYMS_DECL,
3134 TYPE_ATABLE_SYMS_DECL, TYPE_ITABLE_SYMS_DECL here.
3135
3136 2006-02-09 Andrew Haley <aph@redhat.com>
3137
3138 PR java/26192
3139 * expr.c (expand_invoke): Allow methods in arrays to be resolved
3140 in their superclass.
3141
3142 * typeck.c (build_java_array_type): Generate TYPE_STUB_DECLs for
3143 array types.
3144
3145 2006-02-08 Tom Tromey <tromey@redhat.com>
3146
3147 PR java/22578:
3148 * check-init.c (check_init): Handle VIEW_CONVERT_EXPR.
3149 * builtins.c (convert_real): New function.
3150 (java_builtins): Handle Float.intBitsToFloat,
3151 Float.floatToRawIntBits, Double.longBitsToDouble,
3152 Double.doubleToRawLongBits.
3153
3154 2006-02-07 Andrew Haley <aph@redhat.com>
3155
3156 * expr.c (expand_invoke): (BC mode.) If we find a method in a
3157 class other than the one in which we expected to find it, ignore
3158 the result.
3159
3160 PR java/25535
3161 * constants.c (build_constants_constructor): move initializer into
3162 first halfword on a 64-bit big-endian machine.
3163
3164 2006-02-04 Tom Tromey <tromey@redhat.com>
3165
3166 PR java/25676:
3167 * builtins.c (max_builtin): Skip floating point 'max'.
3168 (min_builtin): Skip floating point 'min'.
3169 (check_for_builtin): Never return NULL_TREE.
3170
3171 2006-02-04 Tom Tromey <tromey@redhat.com>
3172
3173 PR java/26097:
3174 * expr.c (push_type): Avoid side effect in gcc_assert.
3175
3176 2006-02-04 Roger Sayle <roger@eyesopen.com>
3177
3178 * decl.c (java_init_decl_processing): Create char_type_node as a
3179 regular INTEGER_TYPE node.
3180 (push_promoted_type): Preserve TYPE_STRING_FLAG on types.
3181 * typeck.c (convert): No longer check for CHAR_TYPEs but instead
3182 test for char_type_node and promoted_char_type_node as special
3183 instances of INTEGER_TYPE tree codes.
3184 (promote_type,build_java_signature): Likewise.
3185 * jcf-write.c (adjust_typed_op): Likewise.
3186 * mangle.c (mangle_type): Likewise.
3187 * parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE.
3188 * parse.h (JINTEGRAL_TYPE_P): Likewise.
3189
3190 2006-02-04 Andreas Tobler <a.tobler@schweiz.ch>
3191
3192 * expr.c (java_stack_swap): Revert gcc_assert patch.
3193
3194 2006-02-03 Ben Elliston <bje@au.ibm.com>
3195
3196 * java-gimplify.c: Use gcc_assert and gcc_unreachable throughout.
3197 * typeck.c: Likewise.
3198 * verify-impl.c: Likewise.
3199 * class.c: Likewise.
3200 * decl.c: Likewise.
3201 * jcf-parse.c: Likewise.
3202 * constants.c: Likewise.
3203 * check-init.c: Likewise.
3204 * jcf-write.c: Likewise.
3205 * verify-glue.c: Likewise.
3206 * mangle.c: Likewise.
3207 * expr.c: Likewise.
3208 * lang.c: Likewise.
3209 * boehm.c: Likewise.
3210
3211 2006-02-01 Jan Hubicka <jh@suse.cz>
3212
3213 * decl.c (end_java_method): Kill hack disabling unit-at-a-time.
3214 * lang.c (java_init_options): Set no_unit_at_a_time_default.
3215
3216 2006-01-30 Andrew Haley <aph@redhat.com>
3217
3218 PR java/21428
3219 * parse.y: (source_start_java_method): Mark DECL_ARTIFICIAL("this").
3220
3221 2006-01-21 Joseph S. Myers <joseph@codesourcery.com>
3222
3223 * jv-scan.c (version), jcf-dump.c (version), gjavah.c (version):
3224 Update copyright notice dates.
3225
3226 2006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3227
3228 * jvspec.c (lang_specific_spec_functions): Remove.
3229
3230 2006-01-06 Tom Tromey <tromey@redhat.com>
3231
3232 * gcj.texi (Arrays): Added more documentation for
3233 JvNewObjectArray.
3234 (Primitive types): Correct information about primitive classes.
3235 (Reference types): New node.
3236 (Index): New node.
3237
3238 2005-12-16 Alexandre Oliva <aoliva@redhat.com>
3239
3240 * jcf-parse.c (set_source_filename): Set the decl source location
3241 even when returning early.
3242
3243 2005-12-15 Tom Tromey <tromey@redhat.com>
3244 Andrew Haley <aph@redhat.com>
3245
3246 PR java/25429
3247 * parse.y (resolve_expression_name): Don't generate accessor
3248 methods for constant fields.
3249
3250 2005-12-13 Andrew Haley <aph@redhat.com>
3251
3252 PR java/25366
3253 PR java/25368
3254 * class.c (maybe_layout_super_class): Update current_class before
3255 calling do_resolve_class.
3256
3257 2005-12-12 H.J. Lu <hongjiu.lu@intel.com>
3258
3259 PR java/25330
3260 * jcf-write.c (write_classfile): Use PID in temporary class
3261 file. Save/restore errno when reporting error.
3262
3263 2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
3264
3265 PR java/9861
3266 * mangle.c (mangle_method_decl): Mangle Java methods by prepending 'J'
3267 to bare_function_type and including the return type
3268 * builtins.c (initialize_builtins) : Change builtin mangled name
3269 constants to conform to new mangling scheme
3270
3271 2005-12-08 Andrew Haley <aph@redhat.com>
3272
3273 PR libgcj/25265
3274 * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
3275 (soft_abstractmethod_node): New.
3276 * expr.c (build_field_ref): Add in-line check for missing field.
3277 * decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
3278
3279 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3280
3281 * Make-lang.in (java.all.build, java.install-normal): Remove.
3282
3283 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3284
3285 * Make-lang.in: Remove all dependencies on s-gtype, except for
3286 gt-java-parse.h.
3287
3288 2005-12-07 Richard Sandiford <richard@codesourcery.com>
3289
3290 * class.c (build_utf8_ref, emit_register_classes): Use
3291 switch_to_section and get_section.
3292
3293 2005-12-06 Tom Tromey <tromey@redhat.com>
3294
3295 PR java/25283:
3296 * parse.y (patch_new_array_init): Revert previous patch.
3297 (lookup_method_invoke): Use size-less array type when creating an
3298 anonymous constructor.
3299
3300 2005-12-05 Tom Tromey <tromey@redhat.com>
3301
3302 * parse.y (patch_new_array_init): Don't set length on array.
3303
3304 2005-12-02 Richard Guenther <rguenther@suse.de>
3305
3306 * java-gimplify.c (java_gimplify_labeled_block_expr): Use
3307 buildN instead of build.
3308 * class.c (finish_class): Likewise.
3309 * expr.c (java_create_object): Likewise.
3310
3311 2005-11-28 Tom Tromey <tromey@redhat.com>
3312
3313 PR java/18278:
3314 * expr.c (build_jni_stub): Unwrap the return value.
3315 * java-tree.h (soft_unwrapjni_node): New define.
3316 (enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE.
3317 * decl.c (java_init_decl_processing): Initialize
3318 soft_unwrapjni_node.
3319
3320 2005-11-24 Bryce McKinlay <mckinlay@redhat.com>
3321
3322 * gcj.texi (gij options): Add -Xss documentation.
3323
3324 2005-11-08 Wil Mahan <wmahan@gmail.com>
3325
3326 PR java/23617
3327 * zextract.c (read_zip_archive): Fix out of memory error when
3328 reading jar files with zip-style comments.
3329
3330 2005-11-07 Terry Laurenzo <tlaurenzo@gmail.com>
3331
3332 * gjavah.c (HANDLE_CODE_ATTRIBUTE): Only define for ELF Object
3333 formats.
3334 * gjavah.c (decompile_method): Add ATTRIBUTE_UNUSED
3335
3336 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
3337 Wil Mahan <wmahan@gmail.com>
3338
3339 PR java/23620
3340 * class.c (make_class): Create empty binfo here.
3341 (set_super_info): Only create binfo if we have superclasses.
3342
3343 2005-10-03 Ranjit Mathew <rmathew@gcc.gnu.org>
3344
3345 PR java/24127
3346 * parse.y (method_header): Make the result of the rule a NULL_TREE
3347 when a parsing error occurs.
3348
3349 2005-09-29 Tom Tromey <tromey@redhat.com>
3350
3351 PR java/24120:
3352 * jcf-io.c (memoized_dirlist_hash): New function.
3353 (caching_stat): Use it.
3354
3355 2005-09-21 Ranjit Mathew <rmathew@gcc.gnu.org>
3356
3357 PR java/21418
3358 * class.c (inherits_from_p): Try to lay out super class
3359 if it is not already laid out.
3360 (maybe_layout_super_class): Handle the case where SUPER_CLASS
3361 is a NULL_TREE.
3362
3363 2005-09-18 James A. Morrison <phython@gcc.gnu.org>
3364
3365 * builtins.c (max_builtin, min_builtin, abs_builtin,
3366 java_build_function_call_expr): Use fold_buildN.
3367 * class.c (layout_class_method): Likewise.
3368 * expr.c (java_truthvalue_conversion, build_java_jsr,
3369 build_java_arrayaccess, expand_java_arrayload, expand_iinc,
3370 build_java_binop, build_field_ref, expand_compare,
3371 build_known_method_ref, build_invokevirtual,
3372 process_jvm_instruction): Likewise.
3373 * parse.y (patch_binop, patch_exit_expr): Likewise.
3374 * typeck.c (convert_ieee_real_to_integer): Likewise.
3375 (convert): Don't call fold after convert_ieee_real_to_integer.
3376
3377 2005-09-14 Bryce McKinlay <mckinlay@redhat.com>
3378
3379 PR java/23891
3380 * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
3381 the newly created type. Set import lists here, not in create_class.
3382 (jdep_resolve_class): Set current_class.
3383 (do_resolve_class): Use current_class's TYPE_PACKAGE to determine
3384 the current package context, not ctxp->package.
3385 (cicp_cache): Removed.
3386 (class_in_current_package): Simplify implementation using TYPE_PACKAGE.
3387 * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
3388 * java-tree.h (TYPE_PACKAGE): New macro.
3389 (struct lang_type): New member 'package'.
3390
3391 2005-09-09 Andrew Haley <aph@redhat.com>
3392
3393 PR libgcj/23182
3394 * expr.c (pop_type_0): If the expected type is object or ptr
3395 (i.e. void*), return the type of the object we just popped from
3396 the stack.
3397
3398 2005-09-06 Andrew Pinski <pinskia@physics.uc.edu>
3399
3400 * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
3401 BLOCK_EXPR_BODY before returning the new BIND_EXPR.
3402
3403 2005-09-06 Kazu Hirata <kazu@codesourcery.com>
3404
3405 * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
3406 jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
3407 typos. Follow spelling conventions.
3408
3409 2005-09-05 Ranjit Mathew <rmathew@hotmail.com>
3410
3411 PR java/23431
3412 * typeck.c (lookup_do): Look up interfaces for the original class,
3413 not the base class.
3414 * parse.y (java_check_regular_methods): Fix diagnostic message for
3415 more restrictive overriding of a method from an interface.
3416
3417 2005-08-16 Tom Tromey <tromey@redhat.com>
3418
3419 * class.c (make_class_data): Always emit JV_STATE_PRELOADING for
3420 class' initial state.
3421
3422 2005-08-16 Ranjit Mathew <rmathew@hotmail.com>
3423
3424 PR java/22113
3425 * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
3426 `literal_token' for large numeric input tokens.
3427
3428 2005-08-16 Ranjit Mathew <rmathew@hotmail.com>
3429
3430 PR java/19870
3431 * parse.y (nested_field_access_p): Rename to nested_member_access_p
3432 and expand to handle method accesses across nested classes.
3433 (build_outer_method_access_method): Rename to
3434 build_nested_method_access_method. Minor adjustments to comments.
3435 (resolve_expression_name): Use the newly-renamed
3436 nested_member_access_p method.
3437 (resolve_qualified_expression_name): Likewise.
3438 (patch_method_invocation): Also consider static methods for access
3439 method generation. Minor adjustments to comments.
3440 (maybe_use_access_method): Use the more general
3441 nested_memeber_access_p to determine access across nested class
3442 boundaries. Allow THIS_ARG to be NULL (for static methods).
3443
3444 2005-08-15 Tom Tromey <tromey@redhat.com>
3445
3446 PR java/23300.
3447 * expr.c (build_field_ref): Don't generate otable reference when
3448 DECL_FIELD_OFFSET is 0.
3449 * class.c (maybe_layout_super_class): Pass outer class to
3450 do_resolve_class.
3451
3452 2005-08-15 Tom Tromey <tromey@redhat.com>
3453
3454 * java-tree.h (LABEL_IN_SUBR): Removed.
3455 (LABEL_IN_SUBR): Likewise.
3456 (LABEL_IS_SUBR_START): Likewise.
3457 (LABEL_SUBR_START): Likewise.
3458 (LABEL_SUBR_CONTEXT): Likewise.
3459 (LABEL_CHANGED): Likewise.
3460 (LABEL_RETURN_LABEL): Likewise.
3461 (LABEL_RETURN_TYPE_STATE): Likewise.
3462 (LABEL_RETURN_LABELS): Likewise.
3463 (RETURN_MAP_ADJUSTED): Likewise.
3464 (LABEL_PENDING_CHAIN): Likewise.
3465
3466 2005-08-15 Tom Tromey <tromey@redhat.com>
3467
3468 * Make-lang.in (JAVA_OBJS): Removed verify.o
3469 (java/verify.o): Removed.
3470 * verify.c: Removed.
3471 * lang.c (flag_new_verifier): Removed.
3472 (java_post_options): Updated.
3473 * java-tree.h (flag_new_verifier): Removed.
3474 (verify_jvm_instructions): Removed.
3475 * expr.c (pop_type_0): Assume flag_new_verifier is true.
3476 (build_java_check_indexed_type): Likewise.
3477 (expand_java_arraystore): Likewise.
3478 (expand_java_arrayload): Likewise.
3479 (pop_arguments): Likewise.
3480 (expand_byte_code): Likewise.
3481 (process_jvm_instruction): Likewise.
3482
3483 2005-08-10 Andrew Haley <aph@redhat.com>
3484
3485 * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
3486 type mismatches to make legal GIMPLE.
3487
3488 2005-08-10 Robin Green <greenrd@greenrd.org>
3489
3490 PR java/23230:
3491 * parse.y (maybe_use_access_method): Generalize check from
3492 java.lang.Object to any superclass of current_class
3493
3494 2005-08-08 Nathan Sidwell <nathan@codesourcery.com>
3495
3496 * class.c (build_class_ref): Wrap the primary class type in a
3497 NOP_EXPR.
3498 * parse.y (java_complete_lhs) <COMPONENT_REF case>: Extract the
3499 primary class type from the NOP_EXPR in which it was placed.
3500
3501 2005-07-28 Diego Novillo <dnovillo@redhat.com>
3502
3503 * expr.c (expand_load_internal): Fix missing parens in
3504 predicate.
3505
3506 2005-07-28 Andrew Haley <aph@redhat.com>
3507
3508 * expr.c (expand_load_internal): Convert to destination type.
3509
3510 2005-07-22 Manfred Hollstein <mh@suse.com>
3511
3512 * verify-impl.c (check_class_constant): Fix uninitialised warnings.
3513 (check_constant): Likewise.
3514 (check_wide_constant): Likewise.
3515
3516 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
3517
3518 Make CONSTRUCTOR use VEC to store initializers.
3519 * check-init.c (check_init): Update to cope with VEC in
3520 CONSTRUCTOR_ELTS.
3521 * class.c (make_field_value, make_method_value, get_dispatch_table,
3522 make_class_data, emit_symbol_table, emit_catch_table,
3523 emit_assertion_table): Use build_constructor_from_list instead of
3524 build_constructor.
3525 * constants.c (build_constants_constructor): Likewise.
3526 * java-gimplify.c (java_gimplify_new_array_init): Update to cope with
3527 VEC in CONSTRUCTOR_ELTS.
3528 * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
3529 PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
3530 of a TREE_LIST.
3531 * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
3532 CONSTRUCTOR_ELTS.
3533 * parse.y (build_new_array_init): Use build_constructor_from_list
3534 instead of build_constructor.
3535 (patch_new_array_init): Update to cope with VEC in
3536 CONSTRUCTOR_ELTS.
3537 (array_constructor_check_entry): Likewise.
3538
3539 2005-07-12 Tom Tromey <tromey@redhat.com>
3540
3541 * jvspec.c (lang_specific_driver): Put filelist_filename first on
3542 command line.
3543
3544 2005-07-12 Tom Tromey <tromey@redhat.com>
3545
3546 PR java/19674:
3547 * parse-scan.y (interface_member_declaration): Added
3548 empty_statement.
3549
3550 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
3551
3552 * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
3553 (LABEL_PENDING_CHAIN): Ditto.
3554 (LABEL_PC): Ditto.
3555 (DECL_BIT_INDEX): Ditto.
3556
3557 2005-07-07 Bryce McKinlay <mckinlay@redhat.com>
3558
3559 PR java/18119
3560 * parse.y (inner_class_accessible): New function. Logic moved from
3561 check_inner_class_access.
3562 (check_inner_class_access): Use inner_class_accessible.
3563 (resolve_inner_class): Simplify arguments. Create circularity hash
3564 here. Keep looking for classes if we found one that was inaccessible.
3565 Return the inaccessible class only if there is no other match.
3566 (do_resolve_class): Update for new resolve_inner_class arguments.
3567 Don't create circularity_hash here.
3568
3569 2005-07-07 Bryce McKinlay <mckinlay@redhat.com>
3570
3571 PR java/21045
3572 * parse.y (add_exception_to_throws): New function.
3573 (purge_unchecked_exceptions): Removed.
3574 (get_constructor_super): Renamed from verify_constructor_super. Now
3575 returns the super constructor after verification.
3576 (java_complete_expand_method): Don't use purge_unchecked_exceptions
3577 or save/restore the exception list.
3578 (check_thrown_exceptions): Add uncaught exceptions in anonymous
3579 class initializers and constructors to the throws clause of the method.
3580
3581 2005-07-05 Bryce McKinlay <mckinlay@redhat.com>
3582
3583 PR java/19674
3584 * parse.y (interface_member_declaration): Allow empty statements in
3585 interface declarations.
3586
3587 2005-07-05 Paolo Bonzini <bonzini@gnu.org>
3588
3589 * Makefile.in (parse.o): Adjust dependencies.
3590 * parse.y: Include tree-dump.h.
3591
3592 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
3593
3594 * class.c, decl.c, expr.c: Use '+' flag instead of %J. Use 'q'
3595 flag for quoting.
3596
3597 2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
3598
3599 * parse.y (issue_warning_error_from_context): Call
3600 pp_output_formatted_text to be able to get the buffer.
3601
3602 2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
3603
3604 * parse.y (issue_warning_error_from_context): Update for the
3605 renaming of pp_format_text to pp_format.
3606
3607 2005-06-28 Paul Brook <paul@codesourcery.com>
3608
3609 * decl.c (java_init_decl_processing): Call
3610 default_init_unwind_resume_libfunc.
3611
3612 2005-06-27 Tom Tromey <tromey@redhat.com>
3613
3614 PR java/21540, PR java/13788:
3615 * parse.y (java_complete_lhs) <CASE_EXPR>: Use
3616 fold_constant_for_init.
3617 (patch_binop): Added 'folding' argument. Updated all callers.
3618 (patch_unaryop) <NOP_EXPR>: New case.
3619 (fold_constant_for_init) <NOP_EXPR>: Likewise.
3620 (fold_constant_for_init) <COND_EXPR>: Fix sense of test.
3621
3622 2005-06-25 Jan Hubicka <jh@suse.cz>
3623
3624 * builtins.c (define_builtin): Accept new flags parameter.
3625 (initialize_builtins): Mark the builtins const and nothrow accordingly.
3626
3627 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
3628
3629 * all files: Update FSF address in copyright headers.
3630
3631 2005-06-24 Tom Tromey <tromey@redhat.com>
3632
3633 * verify-impl.c (verify_instructions_0): Correctly handle
3634 situation where PC falls off end.
3635
3636 2005-06-23 Bryce McKinlay <mckinlay@redhat.com>
3637
3638 PR java/20697
3639 * parse.y (find_most_specific_methods_list): Remove special case for
3640 inner classes.
3641
3642 2005-06-15 Tom Tromey <tromey@redhat.com>
3643
3644 PR libgcj/21906:
3645 * class.c (make_method_value): Use soft_abstractmethod_node for
3646 abstract method.
3647 * java-tree.h (soft_abstractmethod_node): New define.
3648 (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
3649 * decl.c (java_init_decl_processing): Initialize
3650 soft_abstractmethod_node.
3651
3652 2005-06-13 Geoffrey Keating <geoffk@apple.com>
3653
3654 * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
3655
3656 2005-06-13 Per Bothner <per@bothner.com>
3657
3658 * expr.c (int highest_label_pc_this_method,
3659 start_label_pc_this_method): New globals.
3660 (lookup_label): Add start_label_pc_this_method to pc for label, and
3661 update highest_label_pc_this_method. This prevents conflicts between
3662 labels from different methods.
3663 * java-tree.h: Declare new globals.
3664 * jcf-parse.c (parse_class_file): If needed bump
3665 start_label_pc_this_method and reset highest_label_pc_this_method.
3666
3667 2005-06-13 Tom Tromey <tromey@redhat.com>
3668
3669 PR java/21844:
3670 * parse.y (nested_field_access_p): Handle case where outer field
3671 is inherited by enclosing class.
3672
3673 2005-06-12 Per Bothner <per@bothner.com>
3674
3675 * class.c (inherits_from_p): Do load_class if needed.
3676
3677 2005-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3678
3679 * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
3680 * java-tree.h (parse_error_context): Move...
3681 * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
3682 * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
3683 * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
3684
3685 2005-06-08 Roger Sayle <roger@eyesopen.com>
3686
3687 * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
3688
3689 2005-06-06 Jakub Jelinek <jakub@redhat.com>
3690
3691 * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
3692 msgid for argument name.
3693 * gjavah.c (error): Likewise.
3694 * java-tree.h (parse_error_context): Likewise.
3695 * parse.y (parse_error_context, parse_warning_context,
3696 issue_warning_error_from_context): Likewise.
3697
3698 2005-06-01 Tom Tromey <tromey@redhat.com>
3699
3700 PR java/21722:
3701 * class.c (build_static_field_ref): Don't fold constant fields if
3702 current class is from a .class file and we're using indirect
3703 dispatch.
3704
3705 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3706
3707 * java/verify-glue.c: Don't include errors.h and include toplev.h.
3708 * java/Make-lang.in: Updates dependencies.
3709
3710 2005-05-26 Ranjit Mathew <rmathew@hotmail.com>
3711
3712 PR java/19870.
3713 * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
3714 NESTED_FIELD_ACCESS_IDENTIFIER_P.
3715 (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
3716 (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
3717 * jcf-write.c (generate_classfile): Use
3718 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
3719 OUTER_FIELD_ACCESS_IDENTIFIER_P.
3720 * parse.y (build_outer_field_access): Rename to
3721 build_nested_field_access. Support static fields and outer-to-inner
3722 class accesses.
3723 (outer_field_access_p): Rename to nested_field_access_p. Support
3724 static fields and generalise to outer-to-inner class and sibling
3725 inner class accesses.
3726 (outer_field_expanded_access_p): Rename to
3727 nested_field_expanded_access_p and support static fields.
3728 (outer_field_access_fix): Rename to nested_field_access_fix and
3729 support static fields.
3730 (build_outer_field_access_expr): Rename to
3731 build_nested_field_access_expr and support static fields.
3732 (build_outer_field_access_methods): Rename to
3733 build_nested_field_access_methods and support static fields. For
3734 static fields, generate accessors without class instance parameters.
3735 (build_outer_field_access_method): Rename to
3736 build_nested_field_access_method and support static fields.
3737 (build_outer_method_access_method): Use
3738 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
3739 OUTER_FIELD_ACCESS_IDENTIFIER_P.
3740 (resolve_expression_name): Consider static field accesses across
3741 nested classes.
3742 (resolve_qualified_expression_name): Likewise.
3743 (java_complete_lhs): Use nested_field_access_fix instead of
3744 outer_field_access_fix.
3745 (patch_unary_op): Rename outer_field_flag to nested_field_flag.
3746 Use nested_field_expanded_access_p instead of
3747 outer_field_expanded_access_p. Use nested_field_access_fix instead
3748 of outer_field_access_fix.
3749 (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
3750 instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
3751
3752 2005-05-26 Bryce McKinlay <mckinlay@redhat.com>
3753
3754 * decl.c (GCJ_BINARYCOMPAT_ADDITION,
3755 GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
3756 (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
3757 MINOR_BINARYCOMPAT_ABI_VERSION): New.
3758 (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
3759 (parse_version): Calculate version ID using new method. Use bit-flags
3760 for flag_indirect_dispatch and flag_bootstrap_classes.
3761
3762 2005-05-25 Richard Henderson <rth@redhat.com>
3763
3764 PR libgcj/21692
3765 * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
3766 * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
3767 DECL_CONTEXT; avoid pushdecl_top_level.
3768 (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
3769 (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
3770 (layout_class_method): Likewise.
3771 * decl.c (java_mark_cni_decl_local): New.
3772 (java_mark_class_local): Use it.
3773 * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
3774 (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
3775 (struct lang_decl_func): Add local_cni;
3776 (struct lang_decl_var): Add class_field, vtable.
3777 (java_mangle_decl): Declare.
3778 * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
3779 * mangle.c: Remove dup obstack.h; include langhooks-def.h.
3780 (mangle_obstack_1): New.
3781 (java_mangle_decl): Remove obstack argument. Call mangle_class_field,
3782 mangle_vtable, and mangle_local_cni_method_decl. Fall back to
3783 lhd_set_decl_assembler_name for things that don't need mangling.
3784 (mangle_class_field): Rename from java_mangle_class_field, make
3785 static, don't call init_mangling or finish_mangling.
3786 (mangle_vtable): Similarly.
3787 (mangle_local_cni_method_decl): New.
3788 (init_mangling): Remove obstack argument. Use &mangle_obstack_1,
3789 gcc_assert, and MANGLE_RAW_STRING.
3790 (finish_mangling): Use gcc_assert, remove if 0 debugging code.
3791
3792 2005-05-25 DJ Delorie <dj@redhat.com>
3793
3794 * class.c (set_constant_value): Move warning control from if() to
3795 warning(OPT_*).
3796
3797 2005-05-24 Richard Henderson <rth@redhat.com>
3798
3799 * builtins.c (define_builtin): Don't call make_decl_rtl.
3800 * constants.c (build_constant_data_ref): Likewise.
3801 * class.c (build_utf8_ref): Likewise.
3802 (build_fieldref_cache_entry, build_static_field_ref): Likewise.
3803 (get_dispatch_table, layout_class_method): Likewise.
3804 (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
3805 by hand.
3806 (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
3807 (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
3808 to determine if we need a non-zero address.
3809 * decl.c (builtin_function): Don't call make_decl_rtl.
3810 (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
3811 * expr.c (build_known_method_ref): Don't call make_decl_rtl.
3812 * resource.c (compile_resource_data): Likewise.
3813 * parse.y (resolve_field_access): Re-word comment to avoid
3814 building DECL_RTL.
3815
3816 2005-05-24 Richard Henderson <rth@redhat.com>
3817
3818 * class.c (registered_class): Take it out of class_roots; turn into
3819 a vec of trees.
3820 (register_class): Make static. Don't duplicate decl node. Use
3821 VEC_safe_push.
3822 (emit_register_classes): Use VEC_iterate. Use output_constant
3823 instead of assemble_integer. Don't call mark_decl_referenced
3824 directly.
3825 * java-tree.h (register_class): Remove decl.
3826
3827 2005-05-19 Paolo Bonzini <bonzini@gnu.org>
3828
3829 PR java/17845
3830
3831 * parse.y (register_package, package_list): Remove.
3832 (package_declaration): Do not call register_package.
3833 (do_resolve_class): Do not use package_list.
3834
3835 2005-05-15 Gerald Pfeifer <gerald@pfeifer.com>
3836
3837 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Remove
3838 unused variable.
3839
3840 2005-05-15 Tom Tromey <tromey@redhat.com>
3841
3842 PR java/21519:
3843 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call
3844 NOTE_PUSH.
3845
3846 2005-05-12 Aaron Luchko <aluchko@redhat.com>
3847
3848 * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
3849
3850 2005-05-11 Tom Tromey <tromey@redhat.com>
3851
3852 * gcj.texi (Code Generation): Document -fbootstrap-classes.
3853 * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
3854 (parse_version): Use it.
3855 * lang.opt (-fbootstrap-classes): New option.
3856
3857 2005-05-10 Paolo Bonzini <bonzini@gnu.org>
3858
3859 PR java/21436
3860 * class.c (maybe_layout_super_class): Look for imports in this_class.
3861 * parse.h (ctxp_for_generation_last): New.
3862 (do_resolve_class): Add a parameter.
3863 * parse.y (ctxp_for_generation_last): New.
3864 (java_pop_parser_context): Add at end of list.
3865 (find_in_imports, find_in_imports_on_demand): Look in ctxp
3866 if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
3867 the given type are NULL.
3868 (do_resolve_class): Look into the imports of the new second parameter.
3869 Adjust recursive calls.
3870 (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
3871 calls to do_resolve_class.
3872 (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
3873 (java_complete_class): Do not do that here.
3874
3875 2005-05-03 Thomas Fitzsimmons <fitzsim@redhat.com>
3876
3877 PR java/20309
3878 * Make-lang.in (java): Add gjnih.
3879 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
3880 (GJNIH_OBJS): New variable.
3881 (gjnih$(exeext)): New target.
3882 (JAVA_MANFILES): Add gjnih.1.
3883 (java.uninstall): Add gjnih.1.
3884 (java.mostlyclean): Add gjnih.
3885 (java.maintainer-clean): Add gjnih.1.
3886 (java/gjavah-jni.o): New target.
3887 (.INTERMEDIATE): Add gjnih.pod.
3888 (gjnih.pod): New target.
3889 * config-lang.in (stagestuff): Add gjnih.
3890 * gcj.texi (Top): Add gjnih node.
3891 (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
3892 -bootclasspath options.
3893 (Invoking gjnih): New node.
3894 * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
3895 (TOOLNAME): New macro.
3896 (error): Replace hard-coded gcjh with TOOLNAME.
3897 (process_file): Likewise.
3898 (usage): Likewise.
3899 (version): Likewise.
3900 (help): Likewise. Add help output for -force, -old, -trace and -J
3901 options.
3902 (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
3903 (options): Add force, old, trace and J fields.
3904 (main): Handle -force, -old, -trace and -J options.
3905
3906 2005-05-03 Tom Tromey <tromey@redhat.com>
3907
3908 PR java/21245:
3909 * gjavah.c (main): Unlink output file on error.
3910
3911 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
3912
3913 * constants.c, jvgenmain.c, lang.opt, resource.c: Update
3914 copyright.
3915
3916 2005-04-29 Tom Tromey <tromey@redhat.com>
3917
3918 * expr.c (build_jni_stub): Updated for change to build_block.
3919
3920 2005-04-29 Andrew Pinski <pinskia@gcc.gnu.org>
3921
3922 * expr.c (force_evaluation_order): Declare 'saved' earlier.
3923
3924 2005-04-28 Andrew Haley <aph@redhat.com>
3925
3926 PR java/19285
3927 * java-tree.h (soft_resolvepoolentry_node): New.
3928 (alloc_constant_fieldref): Declare.
3929 * expr.c (expand_java_field_op): Don't call class_init for
3930 accesses to static fields with indirect dispatch.
3931 * builtins.c (initialize_builtins): Add "__builtin_expect".
3932 * decl.c (soft_resolvepoolentry_node): New variable.
3933 (java_init_decl_processing): Create a decl for
3934 "_Jv_ResolvePoolEntry".
3935 * class.c (build_fieldref_cache_entry): New function.
3936 (build_static_field_ref): Rewrite for indirect dispatch.
3937 * constants.c (find_name_and_type_constant_tree): New function.
3938 (alloc_constant_fieldref): Likewise.
3939 (build_constants_constructor): Handle CONSTANT_Fieldref and
3940 CONSTANT_NameAndType.
3941
3942 PR java/21115
3943 * expr.c (force_evaluation_order): Convert outgoing args smaller
3944 than integer.
3945
3946 2005-04-27 Bryce McKinlay <mckinlay@redhat.com>
3947
3948 * gcj.texi (libgcj Runtime Properties): Remove obsolete
3949 gnu.gcj.runtime.NameFinder.* system properties. Update documentation
3950 for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
3951
3952 2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3953
3954 * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
3955 to `unlock_stream' with `unlock_std_streams'.
3956
3957 2005-04-25 Jakub Jelinek <jakub@redhat.com>
3958
3959 * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
3960 instead of just expr.h.
3961
3962 2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3963
3964 * gjavah.c (main): Unlock the stdio streams.
3965 * jcf-dump.c (main): Likewise.
3966 * jv-scan.c (main): Likewise.
3967 * jvgenmain.c (main): Likewise.
3968
3969 2005-04-23 DJ Delorie <dj@redhat.com>
3970
3971 * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
3972 parse.y: Adjust warning() callers.
3973
3974 2005-04-21 Bryce McKinlay <mckinlay@redhat.com>
3975
3976 * gcj.texi (Object fields): Change "Integer" to "Int" in example
3977 contructor.
3978
3979 2005-04-20 Bryce McKinlay <mckinlay@redhat.com>
3980
3981 * gcj.texi: Fix typos and bogus example.
3982
3983 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
3984
3985 * except.c: Fix a comment typo.
3986
3987 2005-04-19 Julian Brown <julian@codesourcery.com>
3988
3989 * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
3990 indirect dispatch with PIC.
3991
3992 2005-04-18 Andrew Haley <aph@redhat.com>
3993
3994 * java-except.h (struct eh_range.handler): Remove unused field.
3995 (handle_nested_ranges): Remove function declaration.
3996 (sanity_check_exception_range): Add function declaration.
3997 * verify.c (verify_jvm_instructions): Remove call to
3998 handle_nested_ranges.
3999 * verify-glue.c (verify_jvm_instructions_new): Call
4000 sanity_check_exception_range.
4001 * except.c (link_handler, eh_range_freelist, link_handler,
4002 handle_nested_ranges): Remove.
4003 (add_handler): Rewrite.
4004 (sanity_check_exception_range): New function.
4005 (print_ranges): New function.
4006
4007 2005-04-13 Julian Brown <julian@codesourcery.com>
4008
4009 * decl.c (finish_method): Give methods once-only linkage.
4010
4011 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
4012
4013 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
4014
4015 2005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4016
4017 * java-tree.h: Don't use PARAMS().
4018
4019 2005-04-07 Per Bothner <per@bothner.com>
4020
4021 * class.c (push_class): By default, suppress debug output.
4022 (finish_class): Enable debug output for classes we're emitting.
4023
4024 2005-04-07 Andrew Haley <aph@redhat.com>
4025
4026 * gcj.texi: Correct gcj-dbtool instructions.
4027
4028 2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
4029
4030 * gcj.texi: Fix a typo.
4031 * lang.c: Fix a comment typo.
4032
4033 2005-04-01 Thomas Fitzsimmons <fitzsim@redhat.com>
4034
4035 * gcj.texi (Invoking gij): Add descriptions of new -X options.
4036 Mention recognized-and-ignored compatibility options.
4037 (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
4038 JvFree.
4039 (About CNI): Add Memory allocation section.
4040
4041 2005-04-01 Tom Tromey <tromey@redhat.com>
4042
4043 * decl.c (java_init_decl_processing): Fix types of
4044 _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
4045 _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
4046 _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
4047
4048 2005-03-31 Jan Hubicka <jh@suse.cz>
4049
4050 * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
4051 * class.c: Include cgraph.h
4052 (make_local_functoin_alias): Mark aslias as needed.
4053 * resource.c: Include cgraph.h
4054 (compile_resource_data): Go via cgraph interface.
4055
4056 2005-03-30 Ian Lance Taylor <ian@airs.com>
4057
4058 * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
4059
4060 2005-03-30 Tom Tromey <tromey@redhat.com>
4061
4062 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
4063 inner_class_info_index==0 or outer_class_info_index==0.
4064
4065 2005-03-29 Tom Tromey <tromey@redhat.com>
4066
4067 * gcj.texi (libgcj Runtime Properties): Document
4068 gnu.gcj.runtime.endorsed.dirs.
4069
4070 2005-03-24 Anthony Green <green@redhat.com>
4071
4072 * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
4073 'gcj-dbtool -p'.
4074
4075 2005-03-23 Tom Tromey <tromey@redhat.com>
4076
4077 * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
4078 (parse_version): Use it.
4079
4080 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
4081
4082 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
4083
4084 2005-03-18 Andrew Haley <aph@redhat.com>
4085
4086 PR java/20522
4087 * decl.c (update_aliases): Don't update variables that are about
4088 to die.
4089 (maybe_poplevels): Add comment.
4090
4091 2005-03-17 Bryce McKinlay <mckinlay@redhat.com>
4092
4093 PR java/20502
4094 * jcf-parse.c (duplicate_class_warning): New function.
4095 (java_parse_file): Call duplicate_class_warning if
4096 CLASS_FROM_CURRENTLY_COMPILED_P is already set.
4097 (parse_zip_file_entries): Likewise. Also set
4098 CLASS_FROM_CURRENTLY_COMPILED_P.
4099
4100 2005-03-16 Andrew Haley <aph@redhat.com>
4101
4102 * expr.c (expand_java_arrayload): Don't generate a
4103 NullPointerException based on the type of the node.
4104 (build_java_array_length_access): Likewise.
4105
4106 2005-03-15 Zack Weinberg <zack@codesourcery.com>
4107
4108 * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
4109
4110 2005-03-11 Tom Tromey <tromey@redhat.com>
4111
4112 * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
4113 (libgcj Runtime Properties): Document the default .db.
4114
4115 2005-03-10 Ranjit Mathew <rmathew@hotmail.com>
4116
4117 PR java/20312
4118 * parse.y (checks_throws_clauses): Check exceptions list even when
4119 the base class does not come from a source file being compiled.
4120 (java_complete_lhs): Remove unused variable 'wfl'.
4121
4122 2005-03-09 Ranjit Mathew <rmathew@hotmail.com>
4123
4124 PR java/20338
4125 * decl.c (finish_method): Emit _Jv_InitClass for private static
4126 methods inside inner classes as well.
4127
4128 2005-03-08 Julian Brown <julian@codesourcery.com>
4129 * Revert patch from 2005-03-08 for causing bootstrap failure on
4130 ppc-darwin.
4131
4132 2005-03-08 Julian Brown <julian@codesourcery.com>
4133
4134 * decl.c (finish_method): Give methods once-only linkage.
4135
4136 2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
4137
4138 * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
4139
4140 2005-03-07 Bryce McKinlay <mckinlay@redhat.com>
4141
4142 * verify-glue.c (vfy_is_assignable_from): Perform static check using
4143 can_widen_reference_to if the C++ ABI is in use.
4144 (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
4145 * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
4146 type_isresolved, init_state, set_pc, state_get_pc,
4147 _Jv_BytecodeVerifier): Clean up unused and disabled functions.
4148 (verify_fail): Report the current PC from the verifier context.
4149 (free_state): Remove #if 0 block to enable this function.
4150 (free_verifier_context): Call free_state on state_list iterator
4151 values before freeing them.
4152 * expr.c (pop_type_0): Pop correct type for error message when stack
4153 contains a multi-word type.
4154
4155 2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
4156
4157 * expr.c (build_java_array_length_access): Remove !flag_new_verifier
4158 for known NULL array length access.
4159
4160 2005-03-07 Tom Tromey <tromey@redhat.com>
4161
4162 * gcj.texi (Invoking gcj-dbtool): Document '-f'.
4163
4164 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
4165
4166 * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
4167 typeck.c: Update copyright.
4168
4169 2005-03-06 Ranjit Mathew <rmathew@hotmail.com>
4170
4171 Remove xref code.
4172 * xref.c, xref.h: Remove file.
4173 * Make-lang.in (java/xref.o): Remove.
4174 * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
4175 * lang.c (flag_emit_xref): Remove definition.
4176 * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
4177 * typeck.c (convert): Remove use of do_not_fold.
4178 * parse.y (do_not_fold): Remove definition.
4179 (parser grammar): Remove xref code.
4180 (maybe_create_class_interface_decl, create_class): Likewise.
4181 (register_fields, method_header, finish_method_declaration): Likewise.
4182 (declare_local_variables, source_end_java_method): Likewise.
4183 (java_complete_expand_classes): Do not set do_not_fold.
4184 (java_complete_expand_method): Remove xref code.
4185 (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
4186 (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
4187 (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
4188 (patch_synchronized_statement, patch_throw_statement): Likewise.
4189 (maybe_build_class_init_for_field): Likewise.
4190
4191 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
4192
4193 * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
4194 instead of IS_NON_TYPE_CODE_CLASS.
4195
4196 2005-03-04 Andrew Haley <aph@redhat.com>
4197
4198 PR java/18362
4199 * class.c (set_method_index): Don't set method_index if it is
4200 NULL_TREE.
4201 (layout_class_method): Don't complain about "non-static method foo
4202 overrides static method" in the case of indirect dispatch.
4203
4204 2005-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4205
4206 * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
4207 warning.
4208 * Make-lang.in: Don't elide warnings in jcf-io.c.
4209
4210 2005-03-01 Per Bothner <per@bothner.com>
4211
4212 PR java/8608
4213 * check-init.c (wfl): Remove static.
4214 (final_assign_error, check_init): Replace calls to parse_error_context
4215 by plain error.
4216 (check_init): Save, set, and restore input_location for each exp.
4217
4218 2005-03-01 Per Bothner <per@bothner.com>
4219
4220 * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
4221 if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
4222 * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
4223
4224 2005-03-01 Per Bothner <per@bothner.com>
4225
4226 * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
4227
4228 2005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com>
4229
4230 PR libgcj/16923
4231 * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
4232 JvVMOption.
4233
4234 2005-02-22 Tom Tromey <tromey@redhat.com>
4235
4236 PR java/20056:
4237 * verify-impl.c (EITHER): New define.
4238 (types_compatible): Handle it.
4239 (check_field_constant): Use it.
4240
4241 2005-02-18 Tom Tromey <tromey@redhat.com>
4242
4243 PR java/20056:
4244 * verify-impl.c (types_equal): Fixed test.
4245
4246 PR java/20056:
4247 * verify-glue.c (vfy_class_has_field): New function.
4248 * verify.h (vfy_class_has_field): Declare.
4249 * verify-impl.c (check_field_constant): Added 'putfield'
4250 argument.
4251 (verify_instructions_0): Updated.
4252 (types_equal): New function.
4253
4254 2005-02-14 Tom Tromey <tromey@redhat.com>
4255
4256 PR java/19921:
4257 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the
4258 stack effect of multianewarray.
4259
4260 2005-02-14 Andrew Haley <aph@redhat.com>
4261
4262 PR java/19907
4263 * expr.c (expand_byte_code): Call promote_arguments().
4264 (promote_arguments): New function.
4265 * decl.c (check_local_unnamed_variable): Remove special case for
4266 new verifier.
4267 (find_local_variable): Promote all boolean types to int
4268 when searching for local variable decls.
4269
4270 2005-02-12 Kazu Hirata <kazu@cs.umass.edu>
4271
4272 * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
4273 parse-scan.y: Update copyright.
4274
4275 2005-02-11 Per Bothner <per@bothner.com>
4276
4277 PR java/15543
4278 * parse-scan.y (input_location): Remove variable.
4279 (main_input_filename): New - replaces input_filename, which isn't
4280 settable if USE_MAPPED_LOCATION.
4281 * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
4282 so we don't reference input_location or wfl_operator in that case.
4283 * jv-scan.c (expand_location): Remove - no longer used.
4284 (main): Set main_input_filename rather than input_filename.
4285
4286 2005-02-09 Richard Henderson <rth@redhat.com>
4287
4288 * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
4289 * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
4290
4291 2005-02-08 Marcin Dalecki <martin@dalecki.de>
4292
4293 * expr.c (add_type_assertion): Use the proper enumeration type,
4294 since this is what htab_find_slot() is expecting.
4295
4296 2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
4297
4298 * gcj.texi: Update copyright dates.
4299
4300 2005-02-02 Tom Tromey <tromey@redhat.com>
4301
4302 * gcj.texi (libgcj Runtime Properties): Default library_control
4303 to 'cache'.
4304
4305 2005-02-02 Ranjit Mathew <rmathew@hotmail.com>
4306
4307 PR java/15543
4308 * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
4309 (modifiers) when square brackets are present in a declaration for
4310 a final paramter.
4311 * jv-scan.c (main): Set input_filename and input_line.
4312
4313 2005-02-01 Tom Tromey <tromey@redhat.com>
4314
4315 PR java/19742:
4316 * gjavah.c (get_field_name): Don't override name for JNI header.
4317
4318 2005-02-01 Roger Sayle <roger@eyesopen.com>
4319
4320 * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
4321 of unsigned types using iushr and lushr JVM bytecodes.
4322
4323 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
4324
4325 PR java/19738
4326 * gjavah.c (jni_print_float): Do not emit floating-point
4327 initialiser for a static final field.
4328 (jni_print_double): Likewise.
4329
4330 2005-02-01 Mark Mitchell <mark@codesourcery.com>
4331
4332 Revert:
4333 2005-01-31 Mark Mitchell <mark@codesourcery.com>
4334 * gjavah.c (print_field_info): Mark static data members of
4335 floating-point type with "__extension__".
4336
4337 2005-01-31 Mark Mitchell <mark@codesourcery.com>
4338
4339 * gjavah.c (print_field_info): Mark static data members of
4340 floating-point type with "__extension__".
4341
4342 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
4343
4344 PR java/9157
4345 * parse.y (build_string_concatenation): Remove redundant if.
4346 (patch_conditional_expr): Attempt to patch_string() the condition
4347 of a ?: as well, in addition to its other operands.
4348
4349 2005-01-25 Tom Tromey <tromey@redhat.com>
4350
4351 * Make-lang.in (java/java-tree-inline.o): Removed.
4352
4353 2005-01-25 Ranjit Mathew <rmathew@hotmail.com>
4354
4355 PR java/19070
4356 * parse.y (patch_binop): Allow comparisons against NULL only
4357 if the other operand is of a reference type.
4358
4359 2005-01-24 Tom Tromey <tromey@redhat.com>
4360
4361 * java-tree.h (gcj_abi_version): Declare.
4362 * class.c (make_class_data): Push gcj_abi_version into "next"
4363 field. Renamed field.
4364 * decl.c (gcj_abi_version): New global.
4365 (parse_version): New function.
4366 (java_init_decl_processing): Call it. Renamed 'next' field.
4367 Include version.h.
4368 (GCJ_BINARYCOMPAT_ADDITION): New define.
4369
4370 2005-01-24 Roger Sayle <roger@eyesopen.com>
4371
4372 PR java/19295
4373 * jcf-write.c (generate_bytecode_insns): Conversions between
4374 integer types of the same precision shouldn't generate widening
4375 or narrowing conversion bytecodes.
4376
4377 2005-01-22 Kazu Hirata <kazu@cs.umass.edu>
4378
4379 * java-except.h, java-tree.h: Remove unused prototypes.
4380
4381 2005-01-20 Andrew Pinski <pinskia@gcc.gnu.org>
4382
4383 PR java/18091:
4384 * jcf-write.c (perform_relocations): Don't call memcpy if source
4385 and destination are the same.
4386
4387 2005-01-17 Tom Tromey <tromey@redhat.com>
4388
4389 * verify-impl.c (get_short): Sign extend.
4390 (get_int): Likewise.
4391
4392 2005-01-12 Ranjit Mathew <rmathew@hotmail.com>
4393
4394 * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
4395 with TYPE_SIZE.
4396
4397 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
4398
4399 * verify.c: Revert to the version before the BC-ABI merge.
4400
4401 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
4402
4403 PR java/19277
4404 * check-init.c (check_init): Take care of references that do not
4405 have an explicit final variable declaration (e.g. array length
4406 access) for pre/post in/de-crement operators.
4407
4408 2005-01-08 Mark Wielaard <mark@klomp.org>
4409
4410 * parse.y (process_imports): Allocate (and free) original_name only
4411 when not already defined.
4412 * jcf-parse.c (read_class): Free results of find_class() and
4413 lrealpath().
4414 (java_parse_file): Keep pointer to head of file_list and free when
4415 done. Free result of lrealpath().
4416
4417 2005-01-05 Tom Tromey <tromey@redhat.com>
4418
4419 * gcj.texi (Standard Properties): java.ext.dirs is now used.
4420
4421 2004-12-20 Andrew Haley <aph@redhat.com>
4422
4423 * typeck.c: Use fold_convert for ints and booleans.
4424
4425 2004-12-17 Andrew Haley <aph@redhat.com>
4426
4427 PR java/18931
4428 * typeck.c (convert): Use a CONVERT_EXPR when converting to
4429 BOOLEAN_TYPE or CHAR_TYPE.
4430 (convert_to_boolean, convert_to_char) : Remove.
4431 * convert.h (convert_to_boolean, convert_to_char) : Remove.
4432 * expr.c (expand_load_internal): Do type conversion if type is not
4433 as required.
4434
4435 2004-12-13 Danny Smith <dannysmith@users.sourceforge.net>
4436
4437 PR target/18459
4438 * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
4439 Update comment.
4440
4441 2004-12-07 Andrew Haley <aph@redhat.com>
4442
4443 PR java/18811:
4444 * jcf-parse.c (load_class): Remove sanity test for missing inner
4445 class file.
4446
4447 2004-12-06 Tom Tromey <tromey@redhat.com>
4448
4449 * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
4450 (java.uninstall): Likewise.
4451 (java.maintainer-clean): Likewise.
4452 (.INTERMEDIATE): Likewise.
4453 (java.install-man): Likewise.
4454 (gcj-dbtool.pod): New target.
4455 * gcj.texi (Code Generation): Document -findirect-dispatch.
4456 (libgcj Runtime Properties): Document
4457 gnu.gcj.precompiled.db.path.
4458 (Top): Link to "Invoking gcj-dbtool".
4459
4460 2004-12-06 Tom Tromey <tromey@redhat.com>
4461
4462 PR java/14853:
4463 * java-tree.h (extract_field_decl): Declare.
4464 * parse.y (extract_field_decl): Renamed from
4465 strip_out_static_field_access_decl. No longer static.
4466 * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
4467
4468 2004-12-03 Tom Tromey <tromey@redhat.com>
4469
4470 * lang.c (flag_new_verifier): Define.
4471 (java_post_options): Set flag_new_verifier if indirect dispatch
4472 is being used.
4473 * lang.opt (fnew-verifier): Removed.
4474
4475 2004-12-03 Tom Tromey <tromey@redhat.com>
4476
4477 PR bootstrap/14614:
4478 * Make-lang.in (java.install-common): Only install transformed
4479 gcjh if gcj-cross exists.
4480
4481 2004-12-03 Andrew Haley <aph@redhat.com>
4482
4483 PR java/18812
4484 * except.c (link_handler): Patch 'outer' field of siblings of the
4485 range we're demoting.
4486
4487 2004-12-03 Andrew Haley <aph@redhat.com>
4488
4489 PR java/18697
4490 * class.c (layout_class_method): Don't fail to override a method
4491 simply because it has DECL_ARTIFICIAL set.
4492
4493 2004-12-02 Tom Tromey <tromey@redhat.com>
4494
4495 PR java/16675:
4496 * parse.y (craft_constructor): Special case null_pointer_node.
4497
4498 2004-12-02 Tom Tromey <tromey@redhat.com>
4499
4500 PR java/18741:
4501 * java-gimplify.c (java_gimplify_expr): Don't call
4502 SET_EXPR_LOCATION unless wrapped tree is an expression.
4503
4504 2004-11-27 Per Bothner <per@bothner.com>
4505
4506 * jcf-parse.c (set_source_filename): Improvement to Andrew's fix:
4507 Fix fencepost error in 'i', which got executed one too many times.
4508 Also, fold memcpy into explicit loop, as originally intended.
4509 Also, free temporary 'buf' which otherwise leaks.
4510
4511 2004-11-27 Per Bothner <per@bothner.com>
4512
4513 * expr.c (build_expr_wfl): Only declare last_file and last_filenode
4514 local static variables if not USE_MAPPED_LOCATION.
4515
4516 2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
4517
4518 * class.c, decl.c, expr.c: Fix comment typos.
4519
4520 2004-11-26 Andrew Pinski <pinskia@physics.uc.edu>
4521
4522 PR java/18305
4523 * decl.c (end_java_method): Call
4524 attach_init_test_initialization_flags on all the init_decls.
4525 * parse.y (attach_init_test_initialization_flags): Move to ...
4526 * expr.c (attach_init_test_initialization_flags): here and
4527 support BIND_EXPR also.
4528 * java-tree.h (attach_init_test_initialization_flags): Prototype.
4529 * jcf-parse.c (parse_class_file): Don't disable class init
4530 optimization.
4531
4532 2004-11-25 Joseph S. Myers <joseph@codesourcery.com>
4533
4534 * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
4535 in diagnostics.
4536
4537 2004-11-24 Richard Henderson <rth@redhat.com>
4538
4539 * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
4540 vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
4541
4542 2004-11-24 Tom Tromey <tromey@redhat.com>
4543
4544 * verify.c (defer_merging): Don't use C++-style comment.
4545 * verify.h (java_opcode): Added java_opcode_end.
4546 * class.c (build_class_ref): Remove C++ comment and old FIXME.
4547
4548 * verify-impl.c (vfy_push_type): Removed bogus "return".
4549 (initialize_stack): Use vfy_alloc and vfy_free.
4550 (verify_instructions_0): Likewise.
4551
4552 * Merged gcj-abi-2-dev-branch to trunk.
4553
4554 2004-11-24 Andrew Haley <aph@redhat.com>
4555
4556 * jcf-parse.c (parse_class_file): Set file_start_location.
4557
4558 2004-11-10 Tom Tromey <tromey@redhat.com>
4559
4560 * class.c (make_field_value): Don't call build_static_field_ref.
4561 (build_static_field_ref): Don't emit direct references when using
4562 indirect dispatch.
4563
4564 * gcj.texi (Invoking gij): Document -verbose. Put -verbose and
4565 -verbose:class into man page synopsis.
4566
4567 2004-11-09 Tom Tromey <tromey@redhat.com>
4568
4569 * expr.c (build_java_arraystore_check): Still generate check if
4570 element type is itself an array.
4571
4572 2004-11-08 Tom Tromey <tromey@redhat.com>
4573
4574 * java-tree.h (soft_check_assignment_node): Removed.
4575 (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
4576 * decl.c (java_init_decl_processing): Don't initialize
4577 soft_check_assignment_node.
4578
4579 2004-11-05 Tom Tromey <tromey@redhat.com>
4580
4581 * class.c (layout_class_methods): Don't add Miranda methods when
4582 using indirect dispatch.
4583
4584 2004-11-05 Bryce McKinlay <mckinlay@redhat.com>
4585
4586 * class.c (make_class_data): Call emit_assertion_table to set the
4587 'assertion_table' field.
4588 (build_signature_for_libgcj): Move here from expr.c.
4589 (add_assertion_table_entry): New function. Callback for assertion
4590 hashtable traversal.
4591 (emit_assertion_table): New. Take class argument, and generate
4592 assertion table DECL based on the TYPE_ASSERTIONS hashtable.
4593 * decl.c (init_decl_processing): Define assertion_entry_type record.
4594 Push 'assertion_table' class field instead of 'verify'.
4595 * expr.c (type_assertion_eq): Compare 'assertion_code' field.
4596 (type_assertion_hash): Include 'assertion_code' in hash.
4597 (add_type_assertion): Rewritten. Take class and assertion_code
4598 arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
4599 (can_widen_reference_to): Use new add_type_assertion() arguments.
4600 * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
4601 JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
4602 (verify_identifier_node): Removed.
4603 (assertion_entry_type, assertion_table_type): New.
4604 (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
4605 assertion code definitions.
4606 (struct type_assertion): Add assertion_code. Rename 'source_type' and
4607 'target_type' to 'op1' and 'op2'.
4608 (add_type_assertion): Declare.
4609 (lang_printable_name_wls): Remove unused definition.
4610 * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
4611 to emit runtime assertion.
4612 (vfy_note_stack_type): Clean up non-C90 declarations.
4613 (vfy_note_local_type): Likewise.
4614 * verify.h (vfy_is_assignable_from): Declare.
4615 * verify-impl.c (is_assignable_from_slow): Remove unused function.
4616 (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
4617 instead of is_assignable_from_slow().
4618 (types_compatible): Reinstate ref_compatible() call.
4619
4620 2004-11-04 Tom Tromey <tromey@redhat.com>
4621
4622 * class.c (build_static_field_ref): Reverted previous patch.
4623
4624 * class.c (build_static_field_ref): Don't emit direct references
4625 when using indirect dispatch.
4626
4627 2004-11-03 Tom Tromey <tromey@redhat.com>
4628
4629 * expr.c (expand_java_arrayload): Set lhs_type_node.
4630 (expand_java_arraystore): Set rhs_type_node.
4631
4632 2004-11-02 Tom Tromey <tromey@redhat.com>
4633
4634 * jcf-parse.c (compute_class_name): Use filename length from zip
4635 directory, not strlen.
4636
4637 * expr.c (expand_invoke): Mark new interface methods as abstract.
4638
4639 2004-11-01 Tom Tromey <tromey@redhat.com>
4640
4641 * verify-impl.c (push_jump): Removed check for uninitialized
4642 objects.
4643 (push_exception_jump): Likewise.
4644 (handle_ret_insn): Likewise.
4645 (handle_jsr_insn): Likewise.
4646 (state_check_no_uninitialized_objects): Removed.
4647
4648 * decl.c (check_local_unnamed_variable): Recognize
4649 promoted-to-int parameters when using the new verifier.
4650 * expr.c (expand_java_arraystore): Explicitly request array type
4651 when using new verifier.
4652 (expand_java_arrayload): Likewise.
4653 (invoke_build_dtable): Don't pass object_type_node as
4654 expression argument to build_java_indirect_ref.
4655 (build_java_check_indexed_type): Do nothing.
4656 (build_java_arraystore_check): Handle case where array doesn't
4657 have array type.
4658 (build_java_array_length_access): Likewise.
4659 (expand_invoke): Handle case where interface overrides a method
4660 from Object.
4661 (pop_type_0): Always succeed for reference types.
4662 (process_jvm_instruction): Don't pop a value in a dead
4663 exception handler.
4664 (pop_arguments): Convert arguments to correct types.
4665
4666 2004-10-29 Andrew Haley <aph@redhat.com>
4667
4668 * jcf-parse.c (give_name_to_class): Remove line that was
4669 incorrectly merged.
4670
4671 2004-10-29 Andrew Haley <aph@redhat.com>
4672
4673 * jcf-parse.c (set_source_filename): Add code to build new sfname.
4674
4675 2004-10-20 Andrew Haley <aph@redhat.com>
4676
4677 * decl.c (end_java_method): Don't expand if flag_syntax_only.
4678
4679 2004-10-26 Tom Tromey <tromey@redhat.com>
4680
4681 * verify.h (vfy_notify_verified): Removed.
4682 * verify-glue.c (vfy_notify_verified): Removed.
4683
4684 2004-10-26 Tom Tromey <tromey@redhat.com>
4685
4686 * verify-impl.c (debug_print_state): Declare `i' before code.
4687 (merge_types): Modify `t' when it is null_type.
4688
4689 2004-10-26 Tom Tromey <tromey@redhat.com>
4690
4691 * verify-impl.c (type_print): Renamed from print. Now static and
4692 takes an argument.
4693 (debug_print_state): Use type_print.
4694
4695 2004-10-25 Tom Tromey <tromey@redhat.com>
4696
4697 * expr.c (build_invokeinterface): Compute correct offset for
4698 index into interface methods.
4699
4700 2004-10-20 Tom Tromey <tromey@redhat.com>
4701
4702 * java-tree.h (verify_jvm_instructions_new): Declare.
4703
4704 * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
4705 command line.
4706
4707 * verify-impl.c (verify_instructions): Correctly handle wide
4708 types on the stack.
4709 * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
4710 (vfy_get_component_type): Strip pointer types.
4711 (vfy_find_class): Use get_type_from_signature. Strip pointer
4712 types.
4713 Include java-except.h.
4714
4715 2004-10-20 Bryce McKinlay <mckinlay@redhat.com>
4716
4717 * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
4718 vfy_push_type_t, set_variable, add_new_state, merge_into,
4719 handle_jsr_insn, branch_prepass, check_class_constant,
4720 check_wide_constant, get_one_type, compute_static_types,
4721 verify_instructions_0): Clean up C99 declarations after statements.
4722
4723 2004-10-20 Tom Tromey <tromey@redhat.com>
4724
4725 * verify-impl.c (merge_refs): Compare reference against iterator,
4726 not ref2.
4727
4728 * verify-glue.c (vfy_tag): Mask off resolved flag.
4729
4730 2004-10-19 Tom Tromey <tromey@redhat.com>
4731
4732 * verify-impl.c (verify_instructions): Call vfy_note_local_type.
4733 (init_state_with_stack): Initialize `this_type' in state.
4734 (verify_method): Use debug_print.
4735 * verify-glue.c (vfy_is_primitive): Removed debugging print.
4736 (vfy_note_stack_depth): Reverted last patch.
4737 (vfy_note_stack_type): Note pointer to Object, not Object.
4738 (vfy_note_local_type): Likewise.
4739
4740 * verify.h (vfy_note_instruction_seen): Declare.
4741 * verify-glue.c (verify_jvm_instructions_new): Set
4742 BCODE_EXCEPTION_TARGET on target instruction.
4743 (vfy_note_instruction_seen): New function.
4744 * verify-impl.c (FLAG_INSN_SEEN): New define.
4745 (verify_instructions_0): Set flag on instruction. Save state for
4746 PC=0 later.
4747 (verify_instructions): Call vfy_note_instruction_seen.
4748
4749 * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
4750 (verify_jvm_instructions_new): Call method_init_exceptions,
4751 add_handler, and handle_nested_ranges.
4752 * verify-impl.c (verify_method): Return 1 on success.
4753 (verify_instructions_0): Save the state at PC=0.
4754
4755 * verify-impl.c (init_type_from_class): Set is_resolved and
4756 ref_next on new ref_intersection.
4757 (init_type_from_string): Likewise.
4758
4759 2004-10-15 Bryce McKinlay <mckinlay@redhat.com>
4760
4761 * expr.c (expand_bytecode): Use verify_jvm_instructions_new
4762 if flag_new_verifier is set.
4763 * java-tree.h (flag_new_verifier): Declare.
4764 * lang.opt (fnew-verifier): New option.
4765 * verify-impl.c: Work around namespace pollution by undef'ing
4766 'current_class'.
4767 (struct verifier_context): Make 'bytecode' const.
4768 (verify_fail_pc): Pass -1 PC argument to vfy_fail.
4769 (types_compatible): For the BC-ABI, always consider reference types
4770 compatible.
4771 (check_class_constant): Use vfr->current_class.
4772 (check_constant): Likewise.
4773 (check_wide_constant): Likewise.
4774 (check_field_constant): Check for 'L' at start of type name.
4775 (get_one_type): Return pointer instead of type. Set type result in
4776 caller via passed type pointer.
4777 (compute_argument_types): Update to use new get_one_type arguments.
4778 (compute_return_type): Likewise.
4779 (make_verifier_context): New. Allocate and initialize 'vfr'.
4780 (free_verifier_context): New. Free 'vfr' and its contents.
4781 (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
4782 and free_verifier_context.
4783
4784 2004-10-15 Tom Tromey <tromey@redhat.com>
4785
4786 * verify-glue.c (vfy_note_local_type): Mark argument as unused.
4787 * verify.h (vfy_fail): Fixed formatting.
4788
4789 * verify-impl.c (vfr): Fixed comment formatting.
4790 (collapse_type): New function.
4791 (verify_instructions): Notify compiler about type map.
4792 * verify.h (vfy_note_stack_depth): Updated.
4793 (vfy_note_stack_type): Likewise.
4794 (vfy_note_local_type): Likewise.
4795 (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
4796 Declare.
4797 * verify-glue.c (vfy_note_stack_depth): Correctly size type
4798 state. Added `method' argument.
4799 (vfy_note_stack_type): Renamed from vfy_note_type. Added `method'
4800 argument.
4801 (vfy_note_local_type): New function.
4802 (vfy_unsuitable_type): Likewise.
4803 (vfy_return_address_type): Likewise.
4804 (vfy_null_type): Likewise.
4805
4806 * verify.h (VFY_IN_GCC): Removed.
4807 (VFY_WANT_TYPEMAP): Removed.
4808 * verify-impl.c (verify_instructions_0): Removed useless "\".
4809 (struct state) <next>: Uncomment.
4810
4811 2004-10-13 Bryce McKinlay <mckinlay@redhat.com>
4812
4813 * verify-impl.c: Formatting fixes. Reformat C++-style comments to
4814 C-style.
4815
4816 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
4817
4818 * Make-lang.in (verify.o): Re-enabled this target.
4819 * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
4820 (vfy_get_interface): Likewise.
4821 (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
4822 * verify.h (verify_jvm_instructions_new): Declare.
4823 * verify-impl.c (free_state): Temporarily comment out unused
4824 function.
4825
4826 2004-10-06 Tom Tromey <tromey@redhat.com>
4827
4828 * java-tree.h (JV_STATE_READ): New enum value.
4829
4830 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
4831
4832 * verify.h: New file.
4833
4834 2004-10-05 Bryce McKinlay <mckinlay@redhat.com>
4835
4836 * verify-impl.c, verify-glue.c, verify.h: New files.
4837 * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
4838
4839 2004-09-24 Andrew Haley <aph@redhat.com>
4840
4841 * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
4842 for a slot if it's of pointer type.
4843
4844 2004-09-14 Tom Tromey <tromey@redhat.com>
4845
4846 * class.c (make_class_data): Correctly initialize "state" field.
4847 Initialize "engine" field.
4848 * decl.c (java_init_decl_processing): Add "engine" field.
4849
4850 2004-09-10 Andrew Haley <aph@redhat.com>
4851
4852 PR java/12760
4853 * expr.c (build_invokeinterface): Use fast method for interface
4854 dispatch.
4855 * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
4856 JTI_ITABLE_PTR_TYPE.
4857 (struct lang_type): Add itable_methods, itable_decl, itable_syms_decl.
4858 (emit_symbol_table): Add new arg, element_size.
4859 * decl.c (java_init_decl_processing): Initialize Class.itable.
4860 * class.c (GEN_TABLE): New macro.
4861 (gen_indirect_dispatch_tables): Use it. Add itable.
4862 (make_class_data): Add new arg for emit_symbol_table().
4863 Emit itable.
4864 (add_miranda_methods): Make sure search_class has been parsed.
4865 (emit_symbol_table): Add new arg, element_size.
4866
4867 2004-09-06 Andrew Haley <aph@redhat.com>
4868
4869 * verify.c (merge_types): Return Object for all merges of
4870 interfaces.
4871 * expr.c (add_type_assertion): Don't generate assertions when
4872 source type is array of Object.
4873
4874 2004-09-03 Andrew Haley <aph@redhat.com>
4875
4876 * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
4877
4878 * lang.c (java_post_options): Force flag_verify_invocations if
4879 we're not using indirect dispatch.
4880
4881 * expr.c (pop_type_0): Move test for interfaces before call to
4882 can_widen_reference_to().
4883 (build_signature_for_libgcj): Remove generation of canonical array
4884 type.
4885 (add_type_assertion): Canonicalize both arrays.
4886 Don't assert that type X can be assigned to Object.
4887 Don't assert that type X an be assigned to type X.
4888 Don't assert that Object can be assigned to type X.
4889 (can_widen_reference_to): Warn whenever we generate an assertion.
4890 (process_jvm_instruction): Use throwable_type_node for the type of
4891 an exception class.
4892
4893 2004-09-01 Andrew Haley <aph@redhat.com>
4894
4895 * decl.c (java_init_decl_processing): Change
4896 verify_identifier_node to "__verify".
4897 * expr.c (add_type_assertion): Use verify_identifier_node for name.
4898 * java-tree.h (verify_identifier_node): Change to "__verify".
4899
4900 * expr.c (build_signature_for_libgcj): New function.
4901 (add_type_assertion): Use it to construct signatures for
4902 source_type and target_type.
4903
4904 2004-08-27 Andrew Haley <aph@redhat.com>
4905
4906 * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
4907 (verify_identifier_node): New.
4908 (TYPE_VERIFY_METHOD): New.
4909 (struct type_assertion): New type.
4910 * expr.c (type_assertion_eq): New function.
4911 (type_assertion_hash): New function.
4912 (add_type_assertion): New function.
4913 (can_widen_reference_to): Call add_type_assertion().
4914 * decl.c (java_init_decl_processing): Add verify_identifier_node.
4915 * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
4916 (finish_class): Output TYPE_VERIFY_METHOD (type).
4917
4918 * decl.c (end_java_method): Nullify unused fields.
4919
4920 2004-08-17 Andrew Haley <aph@redhat.com>
4921
4922 * verify.c (defer_merging): Quieten.
4923 * jcf-parse.c (load_class): Only try to open a class file if it's
4924 java.lang.Object or if it's part of the current compilation.
4925 Check that the class we just tried to load is the class we just
4926 loaded. Quieten.
4927 (java_parse_file): Set flag_verify_invocations off if we're
4928 compiling from .class.
4929 (parse_zip_file_entries): Abort if we try to read a dummy class.
4930 * expr.c (can_widen_reference_to): Quieten.
4931 (build_invokevirtual): Abort if we try to invokevirtual an
4932 interface.
4933 (expand_invoke): Don't build a non-interface call to an interface.
4934 (build_instanceof): Don't do premature optimization if
4935 flag_verify_invocations is not set.
4936 * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
4937 from superclass.
4938 (build_static_field_ref): Add correct type conversion for
4939 field_address.
4940 (add_miranda_methods): Disable generation of Miranda methods for
4941 dummy classes.
4942 (layout_class_method): Don't complain about non-static method
4943 overrides static method with dummy classes.
4944
4945 2004-08-13 Tom Tromey <tromey@redhat.com>
4946
4947 * class.c (build_static_field_ref): Re-enable atable lookups for
4948 static fields.
4949
4950 * parse.y (strip_out_static_field_access_decl): Indentation fix.
4951
4952 2004-08-11 Tom Tromey <tromey@redhat.com>
4953
4954 * gcj.texi (libgcj Runtime Properties): Document new properties.
4955
4956 2004-08-06 Andrew Haley <aph@redhat.com>
4957
4958 * jcf-parse.c (load_class): Check that we really have loaded the
4959 class we're looking for.
4960
4961 2004-07-19 Andrew Haley <aph@redhat.com>
4962
4963 * verify.c (verify_jvm_instructions): Comment change only.
4964
4965 * typeck.c (build_java_array_type): Add size field to array name.
4966
4967 * java-tree.h (LOCAL_SLOT_P): New.
4968 (update_aliases): Add PC argument.
4969 (pushdecl_function_level): New function.
4970
4971 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
4972 MODIFY_EXPR, and SAVE_EXPR.
4973 (java_gimplify_modify_expr): New function.
4974
4975 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
4976 (expand_iinc): Pass PC to update_aliases().
4977 (STORE_INTERNAL): Likewise.
4978 (process_jvm_instruction): Likewise.
4979
4980 * decl.c (base_decl_map): New variable.
4981 (uniq): New variable.
4982 (update_aliases): Rewrite with more thorough checking.
4983 (debug_variable_p): New function.
4984 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
4985 (check_local_named_variable): Delete whole function.
4986 (initialize_local_variable): New function.
4987 (check_local_unnamed_variable): Add checks and comments.
4988 (find_local_variable): Rewrite.
4989 (java_replace_reference): New function.
4990 (function_binding_level): New variable.
4991 (pushdecl_function_level): New function.
4992 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
4993 (maybe_pushlevels): Call pushdecl() on each of the new decls.
4994 (start_java_method): Reset uniq. Create base_decl_map. Set
4995 function_binding_level.
4996 (end_java_method): Null unused fields to save memory.
4997
4998 2004-06-29 Andrew Haley <aph@redhat.com>
4999
5000 * except.c (expand_start_java_handler): Push a new binding level.
5001 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
5002 register_exception_range() to register where we'll do it.
5003 (expand_end_java_handler): Remove old bogus code. Replace with
5004 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
5005 the top of the expression we're curently building.
5006 (maybe_end_try): Delete.
5007 * decl.c (binding_level.exception_range): New field.
5008 (clear_binding_level): Add field exception_range. Reformat.
5009 (poplevel): Call expand_end_java_handler().
5010 (poplevel): Call java_add_stmt only if functionbody is false.
5011 (maybe_poplevels): Don't call maybe_end_try() from here.
5012 (end_java_method): Clear no longer used trees in function decl.
5013 (register_exception_range): New function.
5014 * java-tree.h (register_exception_range, struct eh_range): Declare.
5015
5016 2004-06-22 Andrew Haley <aph@redhat.com>
5017
5018 * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
5019 the otable.
5020 * check-init.c (get_variable_decl): Teach check-init about
5021 FIELD_DECLs addressed via the otable.
5022 * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
5023 CLASS_PARSED_P.
5024
5025 2004-05-28 Andrew Haley <aph@redhat.com>
5026
5027 * jcf-parse.c (load_class): Don't try to read a class that we've
5028 already read.
5029
5030 * expr.c (build_invokeinterface): Use the old-fashioned way of
5031 doing indirect dispatch: look up interfaces by name.
5032 * java-tree.h (enum java_tree_index): Add
5033 JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
5034 * decl.c (java_init_decl_processing): Add
5035 soft_lookupinterfacemethodbyname_node.
5036
5037 * gjavah.c (print_method_info): Final methods have vtable entries,
5038 so gjavah needs to output them.
5039 * class.c (layout_class_method): Generate vtable entries for final
5040 methods.
5041 * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
5042 dispatch, even if a method is final.
5043
5044 2004-05-25 Andrew Haley <aph@redhat.com>
5045
5046 * class.c (build_symbol_entry): Convert the names of constructors
5047 to init_identifier_node when generating an entry for the indirect
5048 dispatch table.
5049
5050 * expr.c (build_known_method_ref): Generate indirect calls for
5051 all methods marked DECL_EXTERNAL or TREE_PUBLIC.
5052
5053 2004-05-24 Andrew Haley <aph@redhat.com>
5054
5055 * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
5056 atable element is of the right type.
5057
5058 * class.c (build_static_field_ref): Cast pointer to correct type
5059 for field.
5060
5061 2004-04-20 Bryce McKinlay <mckinlay@redhat.com>
5062
5063 * Merged with HEAD as of 20040514. Diff against
5064 gcj-abi-2-merge-20040514.
5065
5066 2004-04-16 Andrew Haley <aph@redhat.com>
5067
5068 * verify.c (check_pending_block): Disable subroutine checks.
5069 (defer_merging): New function.
5070 (merge_types): If types are dummy, use defer_merging to combine them.
5071 (verify_jvm_instructions): If invocation is invokeinterface and
5072 target is dummy, assume target really is an interface.
5073
5074 * parse.y (patch_invoke): Break out call to java_create_object.
5075
5076 * lang.c (flag_verify_invocations): New.
5077
5078 * jcf-parse.c (load_class): If we've already failed to load a
5079 class, don't try again.
5080 (load_class): If we can't find a .class file, don't fail, but emit
5081 a warning.
5082 (parse_class_file): Don't act on dummy methods.
5083
5084 * java-tree.h (flag_verify_invocations): New.
5085 (TYPE_DUMMY): New.
5086 (lang_type.dummy_class): New field.
5087 (java_create_object): New function.
5088 (METHOD_DUMMY): New.
5089
5090 * expr.c (build_field_ref): Widen field offset.
5091 (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
5092 that each of its elements is compatible with the one we're
5093 popping.
5094 (pop_type_0): Issue a warning to say that we need to generate a
5095 runtime check.
5096 (java_create_object): New function.
5097 (build_field_ref): Only generate hard refs if we're not using
5098 indirect dispatch.
5099 (expand_java_field_op): If we're using !verify_invocations and we
5100 see a missing field, generate a decl for it.
5101
5102 (expand_invoke): If a class doesn't have the method we seek and
5103 we're using !flag_verify_invocations, generate a decl for the
5104 method now.
5105
5106 (build_known_method_ref): Always use indirect dispatch via the
5107 atable for static methods.
5108
5109 (expand_java_NEW): Break out object creation into new function,
5110 java_create_object.
5111
5112 (can_widen_reference_to): Issue a warning to say that we need to
5113 generate a runtime check.
5114
5115 * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
5116 (make_method_value): Also use index for interfaces.
5117 (make_class_data): Skip dummy field for inherited data.
5118 Don't build method array for dummy methods.
5119 Set size_in_byte to -1 when using inirect dispatch
5120 Don't build a hard class ref if we don't have a hard ref to our
5121 superclass, or if we're using inirect dispatch.
5122 Null out dispatch tables.
5123
5124 (layout_class_method): Don't complain about non-static method
5125 overrides static method is method is artificial.
5126
5127 (build_static_field_ref): Disable atable references to static
5128 fields for the time being.
5129
5130 (layout_class_methods): Check for CLASS_INTERFACE as
5131 well as CLASS_ABSTRACT.
5132
5133 2004-11-24 Steven Bosscher <stevenb@suse.de>
5134
5135 * class.c (make_class_data): Don't check flag_inline_functions.
5136 * lang.c (flag_really_inline): Remove unused flag.
5137 (java_handle_option): Don't set it here. Remove special handling
5138 of flag_inline_functions for Java.
5139 (java_init): Don't set flag_inline_trees here. Already done...
5140 (java_post_options): ...here. Don't clear flag_inline_functions.
5141
5142 2004-11-24 Steven Bosscher <stevenb@suse.de>
5143
5144 * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
5145 (java_gimplify_exit_block_expr): New function.
5146 (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
5147 LABELED_BLOCK_EXPR.
5148 * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
5149 (EXIT_BLOCK_EXPR): Likewise.
5150 * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
5151 (LABELED_BLOCK_BODY): Likewise.
5152 (EXIT_BLOCK_LABELED_BLOCK): Likewise.
5153 * jcf-write.c (generate_bytecode_insns): Don't handle the unused
5154 EXIT_BLOCK_RETURN operand. Use EXIT_BLOCK_LABELED_BLOCK instead of
5155 TREE_OPERAND.
5156 * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
5157 (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
5158 EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. Don't handle the
5159 second operand of EXIT_BLOCK_EXPR.
5160 * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
5161 TREE_OPERAND.
5162 (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
5163
5164 2004-11-23 Ben Elliston <bje@au.ibm.com>
5165
5166 * xref.h (xref_flag_value): Remove.
5167 (xref_set_data, xref_get_data): Likewise.
5168 (xref_set_current_fp): Likewise.
5169 (XREF_NONE): Likewise.
5170 (XREF_GET_DATA): Likewise.
5171 * xref.c (xref_flag_value): Remove.
5172 (xref_set_data, xref_get_data): Likewise.
5173 (xref_set_current_fp): Likewise.
5174
5175 2004-11-23 Ben Elliston <bje@au.ibm.com>
5176
5177 * gjavah.c (output_directory): Make static.
5178 (temp_directory): Likewise.
5179
5180 2004-11-15 Tom Tromey <tromey@redhat.com>
5181
5182 * decl.c (instn_ptr_type_node): Removed.
5183 (lineNumbers_ptr_type_node): Removed.
5184 (jint_type): Removed.
5185 (jint_ptr_type): Removed.
5186
5187 2004-11-09 Andrew Pinski <pinskia@physics.uc.edu>
5188
5189 PR java/15576
5190 * check-init.c (check_init): Ignore DECL_EXPR.
5191 * expr.c (always_initialize_class_p): Reenable.
5192 (build_class_init): Use a variable to store the decl. Also use
5193 boolean_false_node instead of integer_zero_node.
5194 * parse.y (attach_init_test_initialization_flags): Add a decl_expr
5195 to the block.
5196
5197 2004-11-08 Tom Tromey <tromey@redhat.com>
5198
5199 PR java/16843:
5200 * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
5201 generating a JNI header.
5202 (print_field_info): Handle JNI headers.
5203 (jni_print_float): Likewise.
5204 (jni_print_double): Likewise.
5205
5206 2004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
5207
5208 * decl.c (end_java_method): Remove duplicated code.
5209
5210 2004-11-06 Zack Weinberg <zack@codesourcery.com>
5211 Gerald Pfeifer <gerald@pfeifer.com>
5212
5213 * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
5214 as well.
5215
5216 2004-11-02 Bryce McKinlay <mckinlay@redhat.com>
5217
5218 PR java/17265
5219 * class.c: Reinstate 2004-08-18 patch.
5220 (make_local_function_alias): Don't create an alias for extern (native)
5221 functions.
5222
5223 2004-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
5224
5225 PR java/17265
5226 * class.c (make_local_function_alias): Revert 2004-08-18 change.
5227 (make_method_value): Likewise.
5228
5229 2004-10-21 Andrew Haley <aph@redhat.com>
5230
5231 PR java/18091:
5232 * jcf-parse.c (set_source_filename): Add code to build new sfname.
5233
5234 2004-10-20 Andrew Haley <aph@redhat.com>
5235
5236 * decl.c (end_java_method): Don't expand if flag_syntax_only.
5237 Remove duplicated code block.
5238
5239 2004-10-18 Steven Bosscher <stevenb@suse.de>
5240
5241 * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
5242 New rules to work around old Bison warnings.
5243
5244 2004-10-17 Steven Bosscher <stevenb@suse.de>
5245
5246 * class.c (ident_subst): Always alloca buffer.
5247 * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
5248 opcode after including javaop.def.
5249 * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
5250 conditional expression that exits, to avoid warnings.
5251 * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
5252 a user of an extension.
5253 * win32-host.c: Move check down to have non-empty file when
5254 WIN32 is not defined.
5255
5256 * Make-lang.in (java-warn): Add STRICT_WARN.
5257 (java/jcf-io.o-warn): Don't have Werror for this file.
5258 * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
5259
5260 2004-10-16 Hans-Peter Nilsson <hp@bitrange.com>
5261
5262 * expr.c (expr_add_location): Move declaration to before all
5263 statements.
5264 * parse.y (java_expand_classes): Ditto.
5265 * lex.c (java_peek_unicode): Ditto.
5266
5267 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
5268
5269 * check-init.c: Use %<, %> and %q for quoting in diagnostics,
5270 if possible, else convert `foo' to 'foo'.
5271 * class.c: Likewise.
5272 * decl.c: Likewise.
5273 * expr.c: Likewise.
5274 * jcf-io.c: Likewise.
5275 * jcf-parse.c: Likewise.
5276 * lang.c: Likewise.
5277 * lex.c: Likewise.
5278 * parse.h: Likewise.
5279
5280 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
5281
5282 * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
5283 rename parameter 'msg' to 'msgid' in function declaration.
5284 (issue_warning_error_from_context): Likewise.
5285 (yyerror): Rename parameter 'msg' to 'msgid'.
5286 (all over): Use new quoting style for diagnostics.
5287
5288 2004-10-15 Kazu Hirata <kazu@cs.umass.edu>
5289
5290 * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
5291 jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
5292 Update copyright.
5293
5294 2004-10-14 Matt Austern <austern@apple.com>
5295
5296 * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
5297 pointer_set_t* now.
5298
5299 2004-10-13 Tom Tromey <tromey@redhat.com>
5300
5301 PR java/15578:
5302 * lang.opt (--extdirs): Document.
5303 * jvspec.c (lang_specific_driver): Recognize -encoding and
5304 -extdirs.
5305
5306 2004-10-06 Ulrich Weigand <uweigand@de.ibm.com>
5307
5308 * parse.y (issue_warning_error_from_context): Use va_list *
5309 instead of va_list parameter.
5310 (parse_error_context): Update call.
5311 (parse_warning_context): Likewise.
5312
5313 2004-10-05 Zack Weinberg <zack@codesourcery.com>
5314
5315 * parse.y, parse-scan.y: Add list of diagnostic messages to
5316 insulate translation template from version of yacc/bison used
5317 to compile the grammar.
5318
5319 2004-10-05 Ranjit Mathew <rmathew@hotmail.com>
5320
5321 Prepare for %q, %< and %> in diagnostic message strings.
5322 * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
5323 Name second parameter 'msgid'.
5324 * parse.y: Additionally include pretty-print.h and diagnostic.h.
5325 (issue_warning_error_from_context): Use pretty-printer functions
5326 instead of vsprintf for constructing formatted messages. Rename
5327 parameter 'msg' to 'msgid'.
5328 (parse_error_context): Rename parameter 'msg' to 'msgid'.
5329 (parse_warning_context): Likewise.
5330
5331 2004-10-05 Andrew Haley <aph@redhat.com>
5332
5333 PR java/17779
5334 * jcf-parse.c (parse_zip_file_entries): If a class has a
5335 superclass and a TYPE_SIZE of zero, lay it out.
5336
5337 2004-09-30 Andrew Haley <aph@redhat.com>
5338
5339 PR java/17733
5340 * jcf-parse.c (compute_class_name): Rewrite.
5341
5342 2004-10-01 Jan Hubicka <jh@suse.cz>
5343
5344 * java.c (java_expand_body): Update call of tree_rest_of_compilation.
5345
5346 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
5347
5348 * lex.c: Fix a comment typo.
5349
5350 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
5351
5352 * java-tree.h: Fix a comment typo.
5353
5354 2004-09-30 Per Bothner <per@bothner.com>
5355
5356 Simplify lexer. Implement --enable-mapped-location support.
5357 * jcf-parse.c (parse_class_file): Use linemap_line_start.
5358 (parse_source_file_1): Pass filename as extra parameter, so we can call
5359 linemap_add and set input_location here, rather than in both callers.
5360 (read_class): Pass copied filename to parse_source_file_1.
5361 Don't initialize wfl_operator - only needed for source compilation.
5362 (read_class, jcf_parse): Call linemap_add with LC_LEAVE.
5363 * lex.h: Remove a bunch of debugging macros.
5364 * lex.h (struct_java_line, struct java_error): Remove types.
5365 (JAVA_COLUMN_DELTA): Remove - use java_lexer.next_colums instead.
5366 (struct java_lc_s): Remove prev_col field.
5367 (struct java_lexer): New fields next_unicode, next_columns, and
5368 avail_unicode. New position field, and maybe token_start field.
5369 Don't need hit_eof field - use next_unicode == -1 instead.
5370 (JAVA_INTEGERAL_RANGE_ERROR): Rename to JAVA_RANGE_ERROR.
5371 (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR): Update accordingly.
5372 * parse.h: Various changes for USE_MAPPED_LOCATION.
5373 (EXPR_WFL_EMIT_LINE_NOTE): XXX
5374 (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
5375 (struct parser_ctxt): New file_start_location field.
5376 Remove p_line, c_line fields since we no longer save lines.
5377 Remove elc, lineno, and current_jcf fields - no longer used.
5378 * parse.y: Updates for USE_MAPPED_LOCATION and new lexer.
5379 Don't use EXPR_WFL_ADD_COL since that isn't trivial with
5380 source_location and is probably not needed anymore anyway.
5381 Use new expr_add_Location function.
5382 (SET_EXPR_LOCATION_FROM_TOKEN): New convenience macro.
5383 (java_pop_parser_context): Minor cleanup.
5384 (java_parser_context_save_global, java_parser_context_restore_global,
5385 java_pop_parser_context): Save/restore input_location as a unit.
5386 (issue_warning_error_from_context): If USE_MAPPED_LOCATION take
5387 a source_location instead of a wfl context node.
5388 (check_class_interface_creation): input_filename is not addressable.
5389 (create_artificial_method): Calling java_parser_context_save_global
5390 and java_parser_context_restore_global is overkill. Instead,
5391 temporarily set input_location from class decl.
5392 (java_layout_seen_class_methods): Set input_location from method decl.
5393 (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
5394 (finish_loop_body): Likewise.
5395 * lex.c: Updates for USE_MAPPED_LOCATION. Use build_unknwon_wfl.
5396 (java_sprint_unicode): Take a character, not index in line.
5397 (java_sneak_uncode): Replaced by java_peek_unicode.
5398 (java_unget_unicode): No longer used.
5399 (java_allocate_new_line. java_store_unicode): Removed, since we
5400 no longer remember "lines".
5401 (java_new_lexer): Update for new data structures.
5402 (java_read_char): Move unget_value checking to java_read_unicode.
5403 (java_get_unicode, java_peek_unicode, java_next_unicode): New more
5404 efficient functions that are used directly when lexing.
5405 (java_read_unicode_collapsing_terminators): No longer needed.
5406 (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
5407 Re-organize to use java_peek_unicode to avoid java_unget_unicode.
5408 (java_parse_escape_sequence): Rewrite to be simpler / more efficient.
5409 (do_java_lex): Lots of movings around to avoid java_unget_unicode,
5410 combine switch branches, and test for common token kinds earlier.
5411 (java_lex_error): Rewrite.
5412 * jv-scan.c (expand_location): New function, copied from tree.c.
5413 (main): Set ctxp->filename instead of setting input_filename directly.
5414
5415 2004-09-30 Per Bothner <per@bothner.com>
5416
5417 More cleanup for --enable-mapped-location.
5418 * class.c (push_class): If USE_MAPPED_LOCATION don't set
5419 input_location here. Instead do it in give_name_to_class.
5420 (build_class_ref): Set DECL_ARTIFICIAL, for the sake of dwarf2out.
5421 * expr.c (expand_byte_code): Call linemap_line_start.
5422 * expr.c (build_expr_wfl): If USE_MAPPED_LOCATION, change final
5423 parameters to a source_location. Don't need EXPR_WFL_FILENAME_NODE.
5424 (expr_add_location): New function, if USE_MAPPED_LOCATION.
5425 * class.c (maybe_layout_super_class): Adjust build_expr_wfl call
5426 to USE_MAPPED_LOCATION case.
5427
5428 * java-tree.h (JAVA_FILE_P, ZIP_FILE_P): Remove unused macros.
5429 * jcf-parse.c (java_parse_file): Don't set input_filename.
5430 Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
5431 Create a list of TRANSLATION_UNIT_DECL.
5432 (current_file_list): Is now a TRANSLATION_UNIT_DECL chain. The
5433 reason is so we can set a DECL_SOURCE_LOCATION for each file.
5434 (java_parse_file): Don't set unused ZIP_FILE_P, JAVA_FILE_P..
5435 Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
5436 (file_start_location): New static.
5437 (set_source_filename): Avoid extra access to input_filename macro.
5438 Concatenate new name with class's package prefix.
5439 (set_source_filename, give_name_to_class): Update.
5440 (give_name_to_class): Set class's "line 0" input_location here.
5441 (parse_class_file): Set input_location as a unit.
5442
5443 * jcf-parse.c (load_class): Sanity test if missing inner class file.
5444
5445 2004-09-29 Per Bothner <per@bothner.com>
5446
5447 * java-tree.h: Redefine some macros and add some declaration
5448 to handle the USE_MAPPED_LOCATION case.
5449 * parse.h (EXPR_WFL_QUALIFICATION): Use operand 1, not 2.
5450 * java-tree.h (EXPR_WFL_FILENAME_NODE): Use operand 2, not 1.
5451 * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
5452 USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
5453
5454 * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
5455 * decl.c (finish_method, java_add_stmt): Likewise.
5456 * java-gimplify.c (java-gimplify.c): Likewise.
5457 * jcf-write.c (generate_bytecode_insns): Likewise.
5458 * lang.c (java_post_options): Likewise - call linemap_add.
5459
5460 2004-09-29 Andrew Haley <aph@redhat.com>
5461
5462 PR java/17007
5463 * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
5464 result of TRUNC_MOD_EXPR.
5465 (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
5466 * decl.c (java_init_decl_processing): Mark
5467 soft_lookupinterfacemethod_node and soft_instanceof_node pure.
5468
5469 2004-09-28 Tom Tromey <tromey@redhat.com>
5470
5471 PR java/15710:
5472 * class.c (add_miranda_methods): Load superinterface if not
5473 already loaded.
5474
5475 2004-09-28 Andrew Haley <aph@redhat.com>
5476
5477 PR java/17586
5478 * jcf-parse.c (load_class): Don't try to read a class that we've
5479 already read.
5480
5481 2004-09-28 Andrew Haley <aph@redhat.com>
5482
5483 * jcf-parse.c (load_class): Back out previous broken patch.
5484
5485 2004-09-28 Andrew Haley <aph@redhat.com>
5486
5487 PR java/17586
5488 * jcf-parse.c (load_class): Don't try to read a class that we've
5489 already read.
5490 Check that we really did read the right class.
5491
5492 2004-09-25 Tom Tromey <tromey@redhat.com>
5493
5494 PR java/17500:
5495 * parse.y (create_artificial_method): Use add_method_1.
5496
5497 2004-09-25 Kazu Hirata <kazu@cs.umass.edu>
5498
5499 * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
5500 comment typos.
5501 * gcj.texi: Fix typos.
5502
5503 2004-09-24 Tom Tromey <tromey@redhat.com>
5504
5505 PR java/15656:
5506 * parse.y (class_instance_creation_expression): Set `$$' to NULL
5507 in error parts of rule.
5508 (unary_expression): Don't call error_if_numeric_overflow when $1
5509 is NULL.
5510
5511 2004-09-24 Tom Tromey <tromey@redhat.com>
5512
5513 PR java/16789:
5514 * parse.y (resolve_qualified_expression_name): Set
5515 CAN_COMPLETE_NORMALLY on first call when chaining static calls.
5516 * expr.c (force_evaluation_order): Check for empty argument list
5517 after stripping COMPOUND_EXPR.
5518
5519 2004-09-23 Andrew Haley <aph@redhat.com>
5520
5521 PR java/16927:
5522 * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
5523 COND_EXPRs.
5524
5525 2004-09-23 Tom Tromey <tromey@redhat.com>
5526
5527 PR java/17329:
5528 * java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case
5529 where operand is null.
5530
5531 2004-09-23 Tom Tromey <tromey@redhat.com>
5532
5533 PR java/17380:
5534 * parse.y (not_accessible_p): Allow access to protected members
5535 even when class is not static.
5536
5537 2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
5538
5539 * Make-lang.in: Revert the gcc-none.o change.
5540
5541 2004-09-22 Nathan Sidwell <nathan@codesourcery.com>
5542
5543 * parse.y (patch_anonymous_class): VEC_space returns true if there
5544 is space.
5545
5546 2004-09-21 Matt Austern <austern@apple.com>
5547
5548 Fix bootstrap.
5549 * gjavah.c (free_method_name_list): Fix function definition so
5550 it's a proper C prototype.
5551
5552 2004-09-21 Tom Tromey <tromey@redhat.com>
5553
5554 PR java/17575:
5555 * gjavah.c (free_method_name_list): New method.
5556 (main): Call it.
5557
5558 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
5559 Zack Weinberg <zack@codesourcery.com>
5560
5561 * java-tree.def: Use tree_code_class enumeration constants
5562 instead of code letters.
5563 * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
5564 new tree-class enumeration constants.
5565
5566 2004-09-13 Tom Tromey <tromey@redhat.com>
5567
5568 PR java/17216:
5569 * class.c (layout_class_method): Put synthetic methods into the
5570 vtable.
5571
5572 2004-09-11 Andrew Pinski <apinski@apple.com>
5573
5574 * Make-lang.in (java/ggc-none.c): Change dependency
5575 for ggc.h into $(GGC_H).
5576
5577 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
5578
5579 * Make-lang.in (java/win32-host.o): Add dependency on
5580 coretypes.h.
5581 * win32-host.c: Add includes for coretypes.h, jcf.h
5582
5583 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
5584
5585 * Make-lang.in (GCJH_OBJS): Change dependency from
5586 ggc-none.o to java/ggc-none.o
5587 (JCFDUMP_OBJS): Likewise.
5588 (java/ggc-none.o): New target.
5589
5590 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
5591
5592 * boehm.c (get_boehm_type_descriptor): Adjust build_int_cst calls.
5593 * class.c (build_utf8_ref, build_static_field_ref,
5594 make_field_value, make_method_value, get_dispatch_table,
5595 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
5596 * constants.c (get_tag_node, build_ref_from_constant_pool,
5597 build_constants_constructor): Likewise.
5598 * decl.c (java_init_decl_processing): Likewise.
5599 * expr.c (build_java_array_length_access, build_newarray,
5600 expand_java_multianewarray, expand_java_pushc, expand_iinc,
5601 build_java_binop, build_field_ref, expand_java_add_case,
5602 expand_java_call, build_known_method_ref, build_invokevirtual,
5603 build_invokeinterface, build_jni_stub): Likewise.
5604 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5605 * jcf-parse.c (get_constant): Likewise.
5606 * lex.c (do_java_lex): Likewise.
5607 * parse.y (patch_binop, patch_unaryop, patch_cast,
5608 build_newarray_node, patch_newarray): Likewise.
5609 * resource.c (compile_resource_data): Likewise.
5610 * typeck.c (build_prim_array_type): Likewise.
5611
5612 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
5613
5614 * decl.c (java_init_decl_processing): Adjust
5615 initialize_sizetypes call.
5616
5617 2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
5618
5619 * jv-scan.c (fancy_abort): Add.
5620
5621 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
5622
5623 * expr.c (build_java_arrayaccess): Use convert to change
5624 len's type.
5625
5626 2004-08-19 Bryce McKinlay <mckinlay@redhat.com>
5627
5628 * class.c (make_local_function_alias): Allocate extra space for 'L'
5629 in name buffer. Reported by Thomas Neumann.
5630
5631 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
5632
5633 * parse.h (JAVA_RADIX10_FLAG): Rename to ...
5634 (JAVA_NOT_RADIX10_FLAG): ... here. Invert meaning.
5635 * lex.c (do_java_lex): Adjust.
5636 (error_if_numeric_overflow): Likewise.
5637
5638 2004-08-18 Andrew Pinski <apinski@apple.com>
5639
5640 * class.c (make_local_function_alias): Only make a new decl if we
5641 support alias attribute on all decls.
5642
5643 2004-08-18 Bryce McKinlay <mckinlay@redhat.com>
5644
5645 * class.c (make_local_function_alias): New function. Create local
5646 alias for public method DECL.
5647 (make_method_value): Use make_local_function_alias.
5648 * parse.y (craft_constructor): Don't special-case anonymous classes.
5649 Always set ctor_name to init_identifier_node.
5650 (lookup_method_invoke): Call layout_class_method when creating
5651 anonymous class constructor.
5652
5653 2004-08-18 Richard Henderson <rth@redhat.com>
5654
5655 * java-gimplify.c (java_gimplify_expr): Move '2' handling into
5656 default case. Treat '<' similarly. Update for
5657 is_gimple_formal_tmp_var name change.
5658
5659 2004-08-17 Andrew Haley <aph@redhat.com>
5660
5661 * lang.c (lang_printable_name): Obey verbose flag.
5662 * parse.y (constructor_circularity_msg): Set VERBOSE arg for
5663 lang_printable_name().
5664 (verify_constructor_circularity, get_printable_method_name,
5665 check_abstract_method_definitions, java_check_regular_methods,
5666 java_check_abstract_methods, check_inner_class_access,
5667 fix_constructors, patch_method_invocation, patch_return):
5668 Likewise.
5669 * expr.c (pop_type_0): Likewise.
5670
5671 * java-tree.h (lang_printable_name_wls): Delete.
5672
5673 2004-08-16 Tom Tromey <tromey@redhat.com>
5674
5675 PR java/8473:
5676 * parse.y (primary): Changed for initialized and uninitialized
5677 array creations.
5678 (array_access): Handle array_creation_initialized.
5679 (array_creation_expression): Split into
5680 array_creation_initialized and array_creation_uninitialized.
5681
5682 2004-08-16 Andrew Haley <aph@redhat.com>
5683
5684 * jcf-write.c (find_constant_index): Canonicalize NaNs when
5685 generating bytecode.
5686
5687 2004-08-16 Elliot Lee <sopwith@redhat.com>
5688
5689 PR java/9677
5690 * jcf-parse.c (java_parse_file): Handle filenames with embedded
5691 spaces, and quoted filelists.
5692
5693 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
5694
5695 * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
5696 * class.c (build_utf8_ref, build_static_field_ref,
5697 make_field_value, make_method_value, get_dispatch_table,
5698 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
5699 * constants.c (get_tag_node, build_ref_from_constant_pool,
5700 build_constants_constructor): Likewise.
5701 * decl.c (java_init_decl_processing): Likewise.
5702 * expr.c (build_java_array_length_access, build_newarray,
5703 expand_java_multianewarray, expand_java_pushc, expand_iinc,
5704 build_java_binop, build_field_ref, expand_java_add_case,
5705 expand_java_call, build_known_method_ref, build_invokevirtual,
5706 build_invokeinterface, build_jni_stub): Likewise.
5707 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5708 * jcf-parse.c (get_constant): Likewise.
5709 * lex.c (do_java_lex): Likewise.
5710 * parse.y (patch_binop, patch_unaryop, patch_cast,
5711 build_null_of_type, patch_newarray): Likewise.
5712 * resource.c (compile_resource_data): Likewise.
5713 * typeck.c (build_prim_array_type): Likewise.
5714
5715 2004-08-10 Bryce McKinlay <mckinlay@redhat.com>
5716
5717 * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
5718 Don't create BLOCK here or call java_gimplify_block.
5719
5720 2004-08-09 H.J. Lu <hongjiu.lu@intel.com>
5721
5722 * java-tree.h (flag_deprecated): Removed.
5723 * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
5724 * parse.y (check_deprecation): Check warn_deprecated instead of
5725 flag_deprecated.
5726
5727 2004-08-06 Kelley Cook <kcook@gcc.gnu.org>
5728
5729 * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
5730 flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
5731 flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
5732 flag_check_references, flag_extraneous_semicolon, flag_deprecated,
5733 flag_force_classes_archive_check, flag_optimize_sci,
5734 flag_indirect_dispatch): Remove explicit declarations.
5735 * lang.opt: Add implicit declare/define/assign. Remove obsolete
5736 final comment.
5737
5738 2004-08-05 Michael Chastain <mec.gnu@mindspring.com>
5739
5740 PR bootstrap/14893
5741 * Make-lang.in (java.install-man): Install from either build
5742 tree or source tree, whichever has the file first.
5743
5744 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
5745
5746 * jcf-parse.c (get_constant): Adjust force_fit_type call.
5747 * lex.h (SET_LVAL_NODE_TYPE): Remove.
5748 * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
5749 (do_java_lex): Likewise. Adjust force_fit_type call.
5750
5751 2004-08-04 Roger Sayle <roger@eyesopen.com>
5752 Andrew Haley <aph@redhat.com>
5753
5754 * typeck.c (convert_ieee_real_to_integer): Call fold on the range
5755 checking trees as they're being built.
5756 (convert): Call convert_ieee_real_to_integer if we're
5757 converting a constant, even if we're writing a class file.
5758
5759 2004-08-02 Bryce McKinlay <mckinlay@redhat.com>
5760
5761 PR java/16701
5762 * parse.y (fold_constant_for_init): Call resolve_field_access with
5763 correct current_class context.
5764
5765 2004-08-01 Roger Sayle <roger@eyesopen.com>
5766
5767 * decl.c (update_aliases, initialize_local_variable): Replace calls
5768 to build with calls to buildN.
5769 * java-gimplify.c (java_gimplify_modify_expr): Likewise.
5770 * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
5771 * parse.h (BUILD_THROW): Likewise.
5772 * parse.y (switch_expression, synchronized_statement,
5773 catch_clause_parameter, array_creation_expression,
5774 conditional_expression, make_qualified_name,
5775 resolve_qualified_expression_name, patch_method_invocation,
5776 patch_invoke, build_method_invocation, build_new_invocation,
5777 build_assignment, patch_assignment, build_binop, patch_binop,
5778 build_string_concatenation, build_incdec, patch_unaryop,
5779 patch_cast, build_array_ref, build_newarray_node, patch_newarray,
5780 patch_return, build_if_else_statement, build_labeled_block,
5781 build_new_loop, build_loop_body, build_bc_statement,
5782 build_assertion, encapsulate_with_try_catch, build_try_statement,
5783 build_try_finally_statement, patch_synchronized_statement,
5784 emit_test_initialization): Likewise, replace build with buildN.
5785
5786 2004-07-28 Eric Christopher <echristo@redhat.com>
5787
5788 * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
5789 (java_unsafe_for_reeval): Ditto.
5790
5791 2004-07-26 <hp@bitrange.com>
5792
5793 * parse.y (build_super_invocation): Adjust declaration order to
5794 avoid declaration after statement.
5795
5796 2004-07-25 Bernardo Innocenti <bernie@develer.com>
5797
5798 * decl.c: Rename all identifiers named `class' to `cl'.
5799
5800 2004-07-25 Richard Henderson <rth@redhat.com>
5801
5802 * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
5803
5804 2004-07-23 Mike Stump <mrs@apple.com>
5805
5806 * boehm.c (set_bit): Improve type safety wrt unsignedness.
5807 * gjavah.c (throwable_p, decode_signature_piece,
5808 print_full_cxx_name, print_include, add_namelet, add_class_decl,
5809 process_file): Likewise.
5810 * jcf-dump.c (main): Likewise.
5811 * jcf-io.c (read_zip_member): Likewise.
5812 * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
5813 give_name_to_class, get_class_constant): Likewise.
5814 * jcf-write.c (find_constant_wide, push_long_const,
5815 generate_classfile): Likewise.
5816 * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
5817 * parse.y (read_import_dir): Likewise.
5818 * typeck.c (parse_signature_type): Likewise.
5819 * verify.c (verify_jvm_instructions): Likewise.
5820 * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
5821
5822 2004-07-23 Thomas Fitzsimmons <fitzsim@redhat.com>
5823
5824 * Make-lang.in: Replace rmic and rmiregistry references with
5825 grmic and grmiregistry.
5826 * gcj.texi: Likewise.
5827
5828 2004-07-20 Andrew Haley <aph@redhat.com>
5829
5830 PR java/16431.
5831 * verify.c (verify_jvm_instructions): Comment change only.
5832
5833 * typeck.c (build_java_array_type): Add size field to array name.
5834
5835 * java-tree.h (LOCAL_SLOT_P): New.
5836 (update_aliases): Add PC argument.
5837 (pushdecl_function_level): New function.
5838
5839 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
5840 MODIFY_EXPR, and SAVE_EXPR.
5841 (java_gimplify_modify_expr): New function.
5842
5843 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
5844 (expand_iinc): Pass PC to update_aliases().
5845 (STORE_INTERNAL): Likewise.
5846 (process_jvm_instruction): Likewise.
5847
5848 * decl.c (base_decl_map): New variable.
5849 (uniq): New variable.
5850 (update_aliases): Rewrite with more thorough checking.
5851 (debug_variable_p): New function.
5852 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
5853 (check_local_named_variable): Delete whole function.
5854 (initialize_local_variable): New function.
5855 (check_local_unnamed_variable): Add checks and comments.
5856 (find_local_variable): Rewrite.
5857 (java_replace_reference): New function.
5858 (function_binding_level): New variable.
5859 (pushdecl_function_level): New function.
5860 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
5861 (maybe_pushlevels): Call pushdecl() on each of the new decls.
5862 (start_java_method): Reset uniq. Create base_decl_map. Set
5863 function_binding_level.
5864 (end_java_method): Null unused fields to save memory.
5865
5866 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
5867
5868 * class.c (add_interface_do): Remove.
5869 (set_super_info, interface_of_p, maybe_add_interface,
5870 add_interface, make_class_data, layout_class,
5871 add_miranda_methods): Adjust BINFO accessors and addition.
5872 * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
5873 accessors.
5874 * jcf-write.c (generate_classfile): Likewise.
5875 * parse.y (patch_anonymous_class, check_inner_circular_reference,
5876 check_circular_reference, java_complete_class,
5877 check_abstract_method_definitions,
5878 java_check_abstract_method_definitions,
5879 check_interface_throws_clauses, java_check_abstract_methods,
5880 lookup_java_interface_method2,
5881 find_applicable_accessible_methods_list): Adjust BINFO accessors
5882 and addition.
5883 * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
5884
5885 2004-07-18 Roger Sayle <roger@eyesopen.com>
5886
5887 * builtins.c (max_builtin, min_builtin,
5888 java_build_function_call_expr): Replace calls to build with buildN.
5889 * class.c (build_class_ref, build_static_field_ref,
5890 get_dispatch_table, make_class_data, layout_class_method): Likewise.
5891 * constants.c (build_ref_from_constant_pool): Likewise.
5892 * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
5893 add_stmt_to_compound): Likewise.
5894 * except.c (build_exception_object_ref, expand_end_java_handler):
5895 Likewise.
5896 * java-gimplify.c (java_gimplify_case_expr,
5897 java_gimplify_default_expr, java_gimplify_block,
5898 java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
5899 * jcf-write.c (generate_bytecode_insns): Likewise.
5900 * typeck.c (convert_ieee_real_to_integer): Likewise.
5901
5902 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
5903
5904 * java-tree.h (builtin_function): Declare.
5905
5906 2004-07-16 Steven Bosscher <stevenb@suse.de>
5907
5908 * parse.y (java_complete_expand_methods, java_expand_classes): Don't
5909 abuse restore_line_number_status.
5910
5911 2004-07-15 Frank Ch. Eigler <fche@redhat.com>
5912
5913 g++/15861
5914 * jcf-parse.c (java_emit_static_constructor): Specify default
5915 priority.
5916
5917 2004-07-13 Per Bothner <per@bothner.com>
5918
5919 * java-tree.h (all_class_filename): Remove useless macro.
5920 (enum java_tree_index): Remove JTI_ALL_CLASS_FILENAME constant.
5921 (BUILD_FILENAME_IDENTIFIER_NODE): Remove useless macro.
5922 * parse.y (java_parser_context_restore_global): Replace
5923 BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
5924 * jcf-parse.c (read_class, java_parse_file): Likewise.
5925
5926 2004-07-12 Bryce McKinlay <mckinlay@redhat.com>
5927
5928 PR java/16474
5929 gjavah.c (print_field_info): Emit constant only if field is static.
5930
5931 2004-07-11 Roger Sayle <roger@eyesopen.com>
5932
5933 * expr.c (java_truthvalue_conversion, flush_quick_stack,
5934 java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
5935 build_java_ret, build_java_throw_out_of_bounds_exception,
5936 build_java_array_length_access, java_check_reference,
5937 build_java_arrayaccess, build_java_arraystore_check, build_newarray,
5938 build_anewarray, expand_java_multianewarray, expand_java_arraystore,
5939 expand_java_arrayload, build_java_monitor, expand_java_return,
5940 expand_load_internal, expand_java_NEW, build_get_class,
5941 build_instanceof, expand_java_CHECKCAST, expand_iinc,
5942 build_java_soft_divmod, build_java_binop, build_field_ref,
5943 expand_compare, expand_java_goto, expand_java_switch,
5944 expand_java_add_case, build_class_init, build_known_method_ref,
5945 invoke_build_dtable, build_invokevirtual, build_invokeinterface,
5946 expand_invoke, build_jni_stub, expand_java_field_op,
5947 java_expand_expr, expand_byte_code, STORE_INTERNAL,
5948 force_evaluation_order, emit_init_test_initialization): Convert
5949 calls to "build" into calls to the prefered "buildN" functions.
5950
5951 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
5952
5953 * java-tree.h (set_block): Remove.
5954 * lang.c (java_clear_binding_stack): New.
5955 (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
5956 * decl.c (struct binding_level): Remove this_block.
5957 (clear_binding_level): Likewise.
5958 (poplevel): Don't handle this_block.
5959 (set_block): Remove.
5960
5961 2004-07-10 Bryce McKinlay <mckinlay@redhat.com>
5962
5963 * class.c (common_enclosing_context_p): Remove statement with no
5964 side-effects.
5965
5966 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
5967
5968 PR java/8618
5969 * parse.y (create_anonymous_class): Remove 'location' argument. Use
5970 the WFL from TYPE_NAME to get line number for the decl. Fix comment.
5971 (craft_constructor): Inherit access flags for implicit constructor
5972 from the enclosing class.
5973 (create_class): Fix comment typo.
5974 (resolve_qualified_expression_name): Pass type of qualifier to
5975 not_accessible_p, not the type in which target field was found.
5976 (not_accessible_p): Handle inner classes. Expand protected
5977 qualifier-subtype check to enclosing instances, but don't apply this
5978 check to static members. Allow protected access to inner classes
5979 of a subtype. Allow private access within common enclosing context.
5980 (build_super_invocation): Get WFL line number info from current
5981 class decl.
5982 (build_incomplete_class_ref): Update for new create_anonymous_class
5983 signature.
5984 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
5985 common_enclosing_instance_p.
5986 * class.c (common_enclosing_context_p): New. Determine if types
5987 share a common enclosing context, even across static contexts.
5988 (common_enclosing_instance_p): Renamed from
5989 common_enclosing_context_p. Determines if types share a common
5990 non-static enclosing instance.
5991 * java-tree.h (common_enclosing_instance_p): Declare.
5992 * jcf-write.c (get_method_access_flags): New. Surpress private flag
5993 for inner class constructors.
5994 (generate_classfile): Use get_method_access_flags.
5995
5996 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
5997
5998 * class.c (interface_of_p): Check for null TYPE_BINFO.
5999
6000 2004-07-09 Nathan Sidwell <nathan@codesourcery.com>
6001
6002 * class.c (make_class): Do not create binfo here.
6003 (set_super_info): Create it here.
6004 * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
6005
6006 2004-07-08 Richard Henderson <rth@redhat.com>
6007
6008 * expr.c (case_identity, get_primitive_array_vtable,
6009 java_expand_expr, emit_init_test_initialization): Remove.
6010 * java-tree.h (java_expand_expr): Remove.
6011 * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
6012
6013 2004-07-07 Per Bothner <per@bothner.com>
6014
6015 * class.c (build_static_field_ref): Add a NOP_EXPR; otherwise we
6016 get internal error due to mismatched types.
6017
6018 * gcj.texi (Invoking gij): Document new -verbose:class flag.
6019
6020 * gcj.texi (Linking): New node. Document -lgij usage.
6021
6022 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
6023
6024 * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
6025 (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
6026 * java/class.c (set_super_info, class_depth, interface_of_p,
6027 maybe_add_interface, add_interface, make_class_data,
6028 layout_class, add_miranda_methods): Adjust BINFO macros.
6029 * expr.c (can_widen_reference_to, lookup_field): Likewise.
6030 * jcf-write.c (generate_classfile): Likewise.
6031 * parse.y (patch_anonymous_class,
6032 check_inner_circular_reference, check_circular_reference,
6033 java_complete_class, check_abstract_method_definitions,
6034 java_check_abstract_method_definitions,
6035 check_interface_throws_clauses, java_check_abstract_methods,
6036 lookup_java_interface_method2,
6037 find_applicable_accessible_methods_list): Likewise.
6038 * typeck.c (find_method_in_interface): Likewise.
6039 * verify.c (merge_types): Likewise.
6040
6041 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
6042
6043 * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
6044 * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
6045
6046 2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
6047
6048 * class.c (make_class): Use make_tree_binfo.
6049 (set_super_info, add_interface_do): Likewise.
6050 * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
6051
6052 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
6053
6054 * verify.c: Correct array element access formatting thinko.
6055
6056 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
6057
6058 * verify.c: Insert a short blurb at the start referring to the JVMS.
6059 (merge_type_state): Remove redundant nested if statement.
6060 (verify_jvm_instructions): Ensure current_subr is initialised to
6061 NULL_TREE.
6062 Minor formatting fixes all over the place.
6063
6064 2004-07-02 Richard Henderson <rth@redhat.com>
6065
6066 * jcf-write.c (generate_bytecode_insns <case SAVE_EXPR>): Rewrite.
6067
6068 2004-07-01 Richard Henderson <rth@redhat.com>
6069
6070 * class.c (registerClass_libfunc): Remove.
6071 (init_class_processing): Don't set it.
6072 (emit_register_classes): Take list_p parameter. Fill it in
6073 with _Jv_RegisterClass calls.
6074 * decl.c (java_init_decl_processing): Don't call
6075 init_resource_processing.
6076 * jcf-parse.c (java_emit_static_constructor): New.
6077 (java_parse_file): Call it.
6078 * resource.c (registerResource_libfunc): Remove.
6079 (init_resource_processing): Remove.
6080 (write_resource_constructor): Take list_p parameter. Fill it in
6081 with _Jv_RegisterResource calls.
6082 * java-tree.h: Update prototypes.
6083
6084 2004-06-29 Bryce McKinlay <mckinlay@redhat.com>
6085
6086 PR java/1262
6087 * class.c (layout_class_method): Do not override package-private
6088 method if its in a different package.
6089 (split_qualified_name): Move here from parse.y. Rename from
6090 breakdown_qualified. Add comment.
6091 (in_same_package): Move here from parse.y. Add comment.
6092 * java-tree.h (break_down_qualified, in_same_package): Declare.
6093 (in_same_package): Likewise.
6094 * parse.y (breakdown_qualified, in_same_package): Moved to class.c.
6095 Callers updated.
6096
6097 2004-06-29 Andrew Haley <aph@redhat.com>
6098
6099 * except.c (expand_start_java_handler): Push a new binding level.
6100 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
6101 register_exception_range() to register where we'll do it.
6102 (expand_end_java_handler): Remove old bogus code. Replace with
6103 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
6104 the top of the expression we're curently building.
6105 (maybe_end_try): Delete.
6106 * decl.c (binding_level.exception_range): New field.
6107 (clear_binding_level): Add field exception_range. Reformat.
6108 (poplevel): Call expand_end_java_handler().
6109 (poplevel): Call java_add_stmt only if functionbody is false.
6110 (maybe_poplevels): Don't call maybe_end_try() from here.
6111 (end_java_method): Clear no longer used trees in function decl.
6112 (register_exception_range): New function.
6113 * java-tree.h (register_exception_range, struct eh_range): Declare.
6114
6115 2004-06-28 Bryce McKinlay <mckinlay@redhat.com>
6116
6117 * jcf-write.c (get_classfile_modifiers): Formatting fixes.
6118
6119 2004-06-27 Ranjit Mathew <rmathew@hotmail.com>
6120
6121 Formatting fixes.
6122 * expr.c (class_has_finalize_method): Fix method name indentation.
6123 (expand_java_call): Remove K&R style parameter declaration.
6124 (expand_invoke): Fix statement indentation.
6125 (expand_java_field_op): Likewise.
6126 * parse-scan.y: Fix typo.
6127 (reset_report): Fix method name indentation.
6128 * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
6129 line. Fix typos.
6130 * verify.c (verify_jvm_instructions): Document parameters, insert
6131 page break.
6132 * lang.c (lang_init_source): Fix method name indentation.
6133 * class.c (common_enclosing_context_p): Likewise.
6134 (emit_symbol_table): Fix parameter list indentation.
6135 * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
6136 parameter declaration.
6137 * constants.c: Fix copyright notice indentation.
6138 * typeck.c (find_method_in_superclasses): Fix parameter list
6139 indentation.
6140 (find_method_in_interfaces): Likewise.
6141 * zextract.c (makelong): Fix method name indentation.
6142
6143 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
6144
6145 PR java/15715.
6146 * parse.y (create_interface): Set correct access modifiers for
6147 interfaces.
6148 * jcf-write.c (get_classfile_modifiers): New function.
6149 (generate_classfile): Use get_classfile_modifiers, not
6150 get_access_flags.
6151
6152 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
6153
6154 * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super"
6155 dependency to current parser context, not NULL_TREE, for top-level
6156 classes.
6157 (jdep_resolve_class): Enable member access check for all inner
6158 class dependencies.
6159
6160 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
6161
6162 * parse.y (qualify_and_find): Pass type decl, not identifier, to
6163 load_class.
6164
6165 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
6166
6167 PR java/15734
6168 * expr.c (expand_java_field_op): Ensure that target class for static
6169 field access has been loaded.
6170
6171 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
6172 Ranjit Mathew <rmathew@hotmail.com>
6173
6174 PR java/1207, java/16178
6175 * jcf-parse.c (load_class): Return immediately if passed a type decl
6176 where CLASS_FROM_SOURCE_P is set. Remove FIXME.
6177 * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P
6178 before calling load_class.
6179 (qualify_and_find): Likewise.
6180 (find_in_imports_on_demand): Likewise.
6181 (find_applicable_accessible_methods_list): Likewise.
6182
6183 2004-06-24 Bryce McKinlay <mckinlay@redhat.com>
6184
6185 * parse.y (java_layout_seen_class_methods): Don't call load_class
6186 on class defined by source parser.
6187
6188 2004-06-23 Bryce McKinlay <mckinlay@redhat.com>
6189
6190 * parse.y (set_nested_class_simple_name_value): Removed.
6191 (java_complete_expand_class): Remove calls to
6192 set_nested_class_simple_name_value.
6193
6194 2004-06-22 Andrew Haley <aph@redhat.com>
6195 Ranjit Mathew <rmathew@hotmail.com>
6196
6197 Fixes PR java/16113.
6198 * decl.c (force_poplevels): Remove call to expand_end_bindings.
6199
6200 2004-06-22 Ranjit Mathew <rmathew@hotmail.com>
6201
6202 * parse.y (create_class): Correct diagnostic message about
6203 java.lang.Object extending anything else.
6204
6205 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6206
6207 * class.c (build_class_ref): Add new operand for COMPONENT_REF.
6208 (build_static_field_ref): Likewise and add new operands for ARRAY_REF.
6209 * constants.c (build_ref_from_constant_pool): Likewise.
6210 * expr.c (build_java_array_length_access): Likewise.
6211 (build_get_class, build_field_ref, build_known_method_ref): Likewise.
6212 (invoke_build_dtable, build_invokevirtual): Likewise.
6213 (build_invokeinterface, java_expand_expr): Likewise.
6214 (emit_init_test_initialization): Likewise.
6215 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
6216 * parse.y (make_qualifed_name, build_array_ref): Likewise.
6217
6218 2004-06-21 Andrew Haley <aph@redhat.com>
6219
6220 * java-gimplify.c (java_gimplify_block): set TREE_USED on the new
6221 block.
6222
6223 2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
6224
6225 * jcf.h (struct JCF): Change java_source, right_zip and finished
6226 to unsigned int.
6227 * lex.h (struct java_lexer): Change hit_eof, read_anything,
6228 byte_swap and use_fallback to unsigned int.
6229 * parse.h (struct _jdep): Change flag0 to unsigned int.
6230
6231 2004-06-17 Ranjit Mathew <rmathew@hotmail.com>
6232
6233 Fixes PR java/13948
6234 * parse.y (java_layout_seen_class_methods): Ensure class is loaded
6235 before trying to lay out its methods.
6236 * jcf-parse.c (read_class): Track parsed files using canonical paths
6237 obtained via lrealpath from libiberty.
6238 (java_parse_file): Likewise.
6239 (parse_source_file_1): Rename formal parameter to reflect its
6240 modified purpose. Minor formatting fix.
6241
6242 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
6243
6244 * class.c (emit_register_classes): Make the function uninlinable,
6245 do not set current_function_cannot_inline.
6246 * resource.c (write_resource_constructor): Do not reset
6247 flag_inline_functions around rest_of_compilation.
6248
6249 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
6250
6251 PR java/15769
6252 * expr.c (java_truthvalue_conversion): Handle
6253 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
6254 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
6255 i.e. return the expression.
6256
6257 2004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
6258
6259 * gjavah.c: Include version.h
6260
6261 2004-05-31 Bryce McKinlay <mckinlay@redhat.com>
6262
6263 * jcf-write.c (generate_bytecode_conditional): Correct handling
6264 of unordered conditionals. Add comment.
6265
6266 2004-05-29 Ranjit Mathew <rmathew@hotmail.com>
6267 Per Bothner <per@bothner.com>
6268
6269 * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a
6270 local variable was initialised upon declaration.
6271 * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if
6272 variable was final and initialised upon declaration.
6273 * check-init.c (check_final_reassigned): Give error only if a blank
6274 final is not definitely unassigned or if an initialised final is
6275 reassigned.
6276 (check_bool_init): Respect JLS2 16.1.7 requirements for boolean
6277 assignment expressions. Remove case MODIFY_EXPR, label do_default.
6278 (check_init): Perform initialised-variable-removing-optimisation
6279 only on non-final local variables.
6280
6281 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
6282
6283 * jcf-write.c (generate_bytecode_conditional): Handle binops
6284 UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
6285 and LTGT_EXPR.
6286 (generate_bytecode_insns): Likewise.
6287
6288 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
6289
6290 * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR,
6291 UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR.
6292
6293 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
6294
6295 * gcj.texi (Object allocation): Remove _Jv_AllocBytes.
6296 (Mixing with C++): Document JvAllocBytes and RawDataManaged.
6297
6298 2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
6299
6300 * decl.c (struct binding_level): Add GTY marker. Compile
6301 binding_depth unconditionally.
6302 (current_binding_level, free_binding_level, global_binding_level):
6303 Likewise.
6304 (clear_binding_level): Unconditionally set binding_depth.
6305 (make_binding_level): Use ggc_alloc_cleared, not xmalloc.
6306
6307 2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
6308
6309 * lex.c (java_new_lexer): Set 'encoding'.
6310 (java_read_char): Improve error message for unrecognized characters.
6311 * lex.h (struct java_lexer): New field 'encoding'.
6312
6313 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
6314
6315 * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
6316
6317 2004-05-21 Mark Wielaard <mark@klomp.org>
6318
6319 * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not
6320 extern.
6321
6322 2004-05-19 Paolo Bonzini <bonzini@gnu.org>
6323
6324 * typeck.c: Remove non-printable character 160.
6325
6326 2004-05-17 Ranjit Mathew <rmathew@hotmail.com>
6327
6328 * check-init.c: Correct minor typos.
6329
6330 2004-05-13 Diego Novillo <dnovillo@redhat.com>
6331
6332 * Make-lang.in, expr.c, java-gimplify.c: Rename
6333 tree-simple.[ch] to tree-gimple.[ch].
6334
6335 2004-05-14 Ranjit Mathew <rmathew@hotmail.com>
6336
6337 * java-gimplify.c (java_gimplify_expr): Correct minor typos.
6338
6339 2004-05-13 Diego Novillo <dnovillo@redhat.com>
6340
6341 Merge from tree-ssa-20020619-branch. See
6342 ChangeLog.tree-ssa for details.
6343
6344 * Make-lang.in, builtins.c, check-init.c, class.c,
6345 constants.c, decl.c, except.c, expr.c, java-except.h,
6346 java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c,
6347 lang.c, lang.opt, parse.y, resource.c: Merged.
6348 * java-gimplify.c: New file.
6349
6350 2004-05-10 Andrew Haley <aph@redhat.com>
6351
6352 * parse.y (create_class): Set TYPE_VFIELD.
6353 * decl.c (java_init_decl_processing): Likewise.
6354
6355 * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
6356 * class.c (make_method_value): Replace DECL_VINDEX with call to
6357 get_method_index().
6358 (get_dispatch_vector): Likewise.
6359 (layout_class_method): Likewise.
6360 Replace set of DECL_VINDEX with call to set_method_index().
6361 (set_method_index): New function.
6362 (get_method_index): New function.
6363 * java-tree.h (set_method_index): New function decl.
6364 (get_method_index): New function decl.
6365
6366 2004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
6367
6368 * parse.y (check_pkg_class_access): Add new argument
6369 and use it when cl is NULL to call lookup_cl on it.
6370 (parser_check_super_interface): Do not call lookup_cl.
6371 Pass this_decl to check_pkg_class_access and NULL
6372 instead of lookup_cl.
6373 (parser_check_super): Update for change in
6374 check_pkg_class_access.
6375 (do_resolve_class): Likewise.
6376 (process_imports): Likewise.
6377 (find_in_imports_on_demand): Likewise.
6378 (resolve_qualified_expression_name): Likewise.
6379
6380 2004-05-06 Ranjit Mathew <rmathew@hotmail.com>
6381
6382 Fixes PR java/9685, PR java/15073
6383 * parse.y (accessibility_string): New method.
6384 (not_accessible_field_error): Use accessibility_string()
6385 instead of java_accstring_lookup().
6386 (resolve_qualified_expression_name): Check with
6387 check_pkg_class_access() before allowing access using
6388 qualified names.
6389 Fix comment typo.
6390 Use check_pkg_class_access() instead of not_accessible_p()
6391 for unqualified types.
6392 (not_accessible_p): Use DECL_CONTEXT (member) instead of
6393 REFERENCE for package-private access checking.
6394 (patch_method_invocation): Use accessibility_string() instead
6395 of java_accstring_lookup().
6396
6397 2004-04-30 Ranjit Mathew <rmathew@hotmail.com>
6398
6399 Fixes PR java/15133
6400 * gjavah.c (struct method_name): Add member is_native.
6401 (overloaded_jni_method_exists_p): Match candidate method only if
6402 it is native.
6403 (print_method_info): Initialise is_native flag from the method's
6404 access flags.
6405
6406 2004-04-30 Roger Sayle <roger@eyesopen.com>
6407
6408 * builtins.c (java_builtins): Add acos, asin, ceil and floor.
6409 (initialize_builtins): Likewise, define acos, asin, ceil and floor.
6410
6411 2004-04-22 Roger Sayle <roger@eyesopen.com>
6412
6413 * resource.c (write_resource_constructor): Guard call to possibly
6414 NULL targetm.asm_out.constructor with targetm.have_ctors_dtors.
6415
6416 2004-04-19 Bryce McKinlay <mckinlay@redhat.com>
6417
6418 * class.c (make_class_data): Add new field aux_info.
6419 * decl.c (java_init_decl_processing): Push type and decl for
6420 `aux_info'.
6421
6422 2004-04-15 Bryce McKinlay <mckinlay@redhat.com>
6423
6424 * expr.c (expand_java_NEW): Don't use size argument for
6425 _Jv_AllocObject calls.
6426 * parse.y (patch_invoke): Likewise.
6427
6428 2004-04-12 Bryce McKinlay <mckinlay@redhat.com>
6429
6430 * expr.c (build_invokeinterface): Remove unused variables to
6431 fix warnings.
6432
6433 2004-04-12 Bryce McKinlay <mckinlay@redhat.com>
6434
6435 * class.c (get_interface_method_index): New function. Return dispatch
6436 index for interface method.
6437 (make_method_value): For interface methods, set index field to
6438 iface dispatch index, not DECL_VINDEX.
6439 * expr.c (build_invokeinterface): Use get_interface_method_index.
6440
6441 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6442
6443 * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
6444
6445 2004-03-31 Andrew Haley <aph@redhat.com>
6446
6447 PR java/14104
6448 * jcf-io.c (opendir_in_zip): Tidy up error handling.
6449
6450 2004-03-30 Zack Weinberg <zack@codesourcery.com>
6451
6452 * builtins.c, expr.c, jcf.h, parse.h: Use new shorter
6453 form of GTY markers.
6454
6455 2004-03-25 Marcus Meissner <meissner@suse.de>
6456
6457 PR java/14689:
6458 * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir.
6459
6460 2004-03-23 Tom Tromey <tromey@redhat.com>
6461
6462 PR java/14315:
6463 * jcf-write.c (make_class_file_name): Don't report if mkdir
6464 failed with EEXIST.
6465
6466 2004-03-23 Tom Tromey <tromey@redhat.com>
6467
6468 * gcj.texi (Extensions): Document GCJ_PROPERTIES.
6469
6470 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
6471
6472 * class.c, gjavah.c, lang.c: Fix comment typos.
6473 * gcj.texi: Fix typos.
6474
6475 2004-03-19 Per Bothner <per@bothner.com>
6476
6477 * gcj.texi (Code Generation): Document new flags and assert defaults.
6478
6479 * class.c (assume_compiled_node_struct): Rename type to
6480 class_flag_node_struct, as it is now also used for enable_assertions.
6481 Rename assume_compiled_node typedef. Rename excludep field to value.
6482 (find_assume_compiled_node): Rename function to find_class_flag_node.
6483 Minor optimization - avoid needless strlen.
6484 (add_assume_compiled): Some tweaking and optimization.
6485 Rename and generalize to add_class_flag takem an extra parameter.
6486 (add_assume_compled): New just calls add_class_flag.
6487 (add_enable_assert, enable_assertions): New functions.
6488 (enable_assert_tree): New static.
6489 * java-tree.h (add_enable_assert, enable_assertions): New declarations.
6490 * lang.opt (fenable-assertions, fenable-assertions=,
6491 fdisable-assertions, fdisable-assertions=): New options.
6492 * lang.c (java_handle_option): Handle new options.
6493 * parse.y (build_incomplete_class_ref): Handle class$ in an inner
6494 class in an interface - create helper class nested in outer interface.
6495 (build_assertion): Short-circuit if enable_assertions is false.
6496
6497 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6498
6499 * java-tree.h: Changes throughout to add checking to macros
6500 and numerous whitespace changes.
6501 (VAR_OR_FIELD_CHECK): New macro.
6502 * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
6503 FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
6504
6505 2004-03-16 Per Bothner <per@bothner.com>
6506
6507 * jcf-jump.c (options): New --print-constants option.
6508 * gcj.texi (Invoking jcf-dump): Document --print-constants.
6509
6510 * jcf-dump.c (flag_print_constant_pool): Default to off.
6511 (print_constant_terse_with_index): New helper function.
6512 (various places): Check flag_print_constant_pool where missing.
6513 (main): If verbose set flag_print_constant_pool.
6514 (HANDLE_INNERCLASSES_ATTRIBUTE): Null inner class name is anonymous.
6515
6516 2004-03-15 Andrew Haley <aph@redhat.com>
6517
6518 PR java/14581
6519 * parse.y (java_complete_lhs): Check that final variable has an
6520 initializer.
6521
6522 2004-03-12 Andrew Haley <aph@redhat.com>
6523
6524 PR java/14551
6525 * typeck.c (convert): Clear TREE_OVERFLOW after an integer
6526 conversion.
6527
6528 2004-02-29 Roger Sayle <roger@eyesopen.com>
6529
6530 * jcf-parse.c (java_parse_file): Handle the case that input_filename
6531 is NULL.
6532
6533 2004-02-27 Per Bothner <per@bothner.com>
6534
6535 * parse.y (build_assertion): Re-do 02-25 change following Jeff Sturm
6536 suggestion: Use build_incomplete_class_ref.
6537 This fixes PR java/13508, java/11714.
6538
6539 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
6540
6541 * java/parse.h: Update copyright.
6542
6543 2004-02-26 Andrew Haley <aph@redhat.com>
6544
6545 PR java/14231:
6546 * parse.y (check_interface_throws_clauses): Check for
6547 !METHOD_INVISIBLE (iface_method).
6548 * class.c (layout_class_methods): Check for CLASS_INTERFACE as
6549 well as CLASS_ABSTRACT.
6550
6551 2004-02-25 Per Bothner <per@bothner.com>
6552
6553 * parse.y (build_assertion): If we're in an inner class, create the
6554 class$ helper routine in the outer class.
6555
6556 2004-02-19 Richard Henderson <rth@redhat.com>
6557
6558 * parse.y (switch_label): Use make_node for DEFAULT_EXPR.
6559
6560 2004-02-16 Geoffrey Keating <geoffk@apple.com>
6561
6562 * Make-lang.in (java.install-man): Add extra dependencies.
6563
6564 2004-02-13 Geoffrey Keating <geoffk@apple.com>
6565
6566 * Make-lang.in: Install man pages under the same names
6567 (possibly transformed) as the program they document.
6568
6569 2004-02-10 Joseph S. Myers <jsm@polyomino.org.uk>
6570
6571 * gjavah.c: Include "intl.h".
6572 (error): New function.
6573 (main): Call gcc_init_libintl.
6574 (get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
6575 print_stub_or_jni, process_file, main): Use error rather than
6576 fprintf.
6577 (print_method_info, usage, help, version, main): Mark strings for
6578 translation with _. Avoid splitting up sentences. Send
6579 information messages to stdout.
6580 * jcf-dump.c: Include "intl.h".
6581 (main): Call gcc_init_libintl.
6582 (process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
6583 Mark error, usage and version messages for translation with _.
6584 Avoid splitting up sentences.
6585 * jv-scan.c: Include "intl.h".
6586 (fatal_error, warning): Change parameter s to msgid. Translate
6587 messages.
6588 (main): Call gcc_init_libintl.
6589 (usage, help, version): Mark error, usage and version messages for
6590 translation with _. Avoid splitting up sentences.
6591 * jvgenmain.c: Include "intl.h".
6592 (main): Call gcc_init_libintl.
6593 (usage, main): Mark error messages for translation with _.
6594 * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
6595 JVGENMAIN_OBJS): Add intl.o.
6596 (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
6597 java/jvgenmain.o): Update dependencies.
6598
6599 2004-02-08 Per Bothner <per@bothner.com>
6600
6601 * parse.y (resolve_qualified_expression_name): In case of inaccessible
6602 class don't use not_accessible_field_error, which can get confused.
6603
6604 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
6605
6606 Make-lang.in (po-generated): Delete.
6607
6608 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
6609
6610 * Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
6611 Depend on target.h.
6612 * decl.c: Include target.h.
6613 (start_java_method): Replace PROMOTE_PROTOTYPES with
6614 targetm.calls.promote_prototypes.
6615 * expr.c: Include target.h.
6616 (pop_arguments): Replace PROMOTE_PROTOTYPES with
6617 targetm.calls.promote_prototypes.
6618 * parse.y: Include target.h.
6619 (start_complete_expand_method): Replace PROMOTE_PROTOTYPES
6620 with targetm.calls.promote_prototypes.
6621
6622 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
6623
6624 * typeck.c: Update copyright.
6625
6626 2004-02-02 Tom Tromey <tromey@redhat.com>
6627
6628 * decl.c (java_init_decl_processing): Remove duplicate
6629 gnu/gcj/RawData.
6630
6631 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
6632
6633 * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir).
6634
6635 2004-01-28 Andrew Pinski <pinskia@physics.uc.edu>
6636
6637 * expr.c (build_field_ref): Move variable
6638 definition up.
6639
6640 2004-01-28 Andrew Haley <aph@redhat.com>
6641
6642 * expr.c (build_field_ref): Widen field offset.
6643
6644 2004-01-27 Andrew Haley <aph@redhat.com>
6645
6646 java/13273
6647 * parse.y (check_interface_throws_clauses): Make sure class_decl
6648 has been loaded.
6649
6650 2004-01-22 Jeff Sturm <jsturm@one-point.com>
6651
6652 PR java/13733
6653 * parse.y (patch_assignment): Don't modify lhs_type for
6654 reference assignments.
6655
6656 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
6657
6658 * Make-lang.in: Replace $(docdir) with doc.
6659 (java.info, java.srcinfo, java.man, java.srcman): New rules.
6660 (java.install-man): Revamp rule.
6661
6662 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
6663
6664 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
6665 GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
6666 instead of deferred backquote.
6667
6668 2004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
6669
6670 * typeck.c (find_method_in_interfaces): Move variable
6671 definition up.
6672
6673 2004-01-16 Andrew Haley <aph@redhat.com>
6674
6675 PR java/13273:
6676 * typeck.c (shallow_find_method): New.
6677 (find_method_in_superclasses): New.
6678 (find_method_in_interfaces): New.
6679 (lookup_do): Rewrite.
6680 * java-tree.h (SEARCH_ONLY_INTERFACE): Delete.
6681
6682 * jcf-parse.c (read_class): Save and restore output_class.
6683 * decl.c (java_expand_body): Set output_class from fndecl.
6684
6685 2004-01-15 Michael Chastain <mec.gnu@mindspring.com>
6686
6687 * class.c (gen_indirect_dispatch_tables): Fix string length
6688 calculations.
6689
6690 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
6691
6692 * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
6693 (java.srcextra): Copy above back to source directory if requested.
6694 (po-generated): Delete reference to $(parsedir).
6695 (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
6696 Use implicit rule.
6697
6698 2004-01-14 Jan Hubicka <jh@suse.cz>
6699
6700 * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
6701 estimation.
6702
6703 2004-01-09 Mark Mitchell <mark@codesourcery.com>
6704
6705 * java-tree.h (java_expand_expr): Change prototype.
6706 * expr.c (java_expand_expr): Add alt_rtl parameter.
6707
6708 2004-01-09 Andrew Haley <aph@redhat.com>
6709
6710 PR java/12755:
6711 * parse.y (java_fix_constructors): Set output_class.
6712 (java_reorder_fields): Likewise.
6713 (java_layout_classes): Likewise.
6714 (java_expand_classes): Generate indirect dispatch tables.
6715 (java_expand_classes): Set output_class.
6716 (java_finish_classes): Likewise.
6717 * lang.c (java_init): Turn on always_initialize_class_p if we're
6718 using indirect dis[atch.
6719 (java_decl_ok_for_sibcall): Use output_class, not current_class.
6720 (java_get_callee_fndecl): Use class local atable.
6721 * jcf-parse.c
6722 (always_initialize_class_p): Decl moved to java-tree.h.
6723 (HANDLE_CLASS_INFO): Set output_class.
6724 (read_class): Likewise.
6725 (parse_class_file): Call gen_indirect_dispatch_tables.
6726 (parse_zip_file_entries): Set output_class.
6727 (java_parse_file): Set output_class. Don't emit symbol tables.
6728 * java-tree.h (output_class): New.
6729 Remove global declarations for otable, atable, and ctable.
6730 (always_initialize_class_p): moved here from decl.c.
6731 (DECL_OWNER): New.
6732 (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
6733 TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
6734 TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
6735 (struct lang_type): Add otable_methods, otable_decl,
6736 otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
6737 ctable_decl, catch_classes, type_to_runtime_map.
6738 * expr.c (build_field_ref): Make otable, atable, and ctable class
6739 local rather than global.
6740 (build_known_method_ref): Likewise.
6741 (build_invokeinterface): Likewise.
6742 (java_expand_expr): Pass runtime type (rather than actual type) to
6743 expand_start_catch.
6744 * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
6745 this class. Look up each class in that map to delete duplicates.
6746 (expand_end_java_handler): Pass runtime type (rather than actual
6747 type) to expand_start_catch.
6748 * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
6749 (do_nothing): New.
6750 (java_init_decl_processing): Rearrange things. Remove global
6751 declarations of otable, atable, and ctable.
6752 (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
6753 (java_expand_body): Set output_class.
6754 * constants.c (build_constant_data_ref): Use output_class, not
6755 current_class.
6756 (alloc_name_constant): Likewise.
6757 * class.c (gen_indirect_dispatch_tables): New.
6758 (build_class_ref): Generate hard reference to superclass, even if
6759 using indirect dispatch.
6760 (build_static_field_ref): Use class local atable.
6761 (make_class_data): Generate hard reference to superclass, even if
6762 using indirect dispatch.
6763 Generate symbolic references to interfaces when using indirect
6764 dispatch.
6765 (make_class_data): Emit otable, atable, and ctable.
6766 Make otable, atable, and ctable class local rather than global.
6767 (emit_catch_table): Make otable, atable, and ctable class local
6768 rather than global.
6769
6770 2003-12-25 Andrew Pinski <pinskia@physics.uc.edu>
6771
6772 * parse.y (catch_clause_parameter): Fix typo.
6773
6774 PR java/13404
6775 * parse.y: (catch_clause_parameter): Return early if $3, aka
6776 formal_parameter, is null.
6777
6778 2003-12-20 Kazu Hirata <kazu@cs.umass.edu>
6779
6780 * class.c: Remove uses of "register" specifier in
6781 declarations of arguments and local variables.
6782 * decl.c: Likewise.
6783 * expr.c: Likewise.
6784 * gjavah.c: Likewise.
6785 * jcf-dump.c: Likewise.
6786 * jcf-io.c: Likewise.
6787 * jcf-parse.c: Likewise.
6788 * jcf-write.c: Likewise.
6789 * keyword.h: Likewise.
6790 * parse.y: Likewise.
6791 * typeck.c: Likewise.
6792 * verify.c: Likewise.
6793
6794 2003-12-06 Kelley Cook <kcook@gcc.gnu.org>
6795
6796 * Make-lang.in (GCJ_CROSS_NAME): Delete.
6797 (java.install_common, java.install-man): Adjust for above.
6798 (java.uninstall): Likewise.
6799
6800 2003-12-03 Michael Koch <konqueror@gmx.de>
6801
6802 * class.c (make_class_data):
6803 Push field value to 'hack_signers' instead of 'signers'.
6804 * decl.c (java_init_decl_processing):
6805 Push field 'hack_signers' instead of 'signers'.
6806
6807 2003-12-03 Zack Weinberg <zack@codesourcery.com>
6808
6809 * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
6810 including iconv.h.
6811
6812 2003-12-03 Ralph Loader <rcl@ihug.co.nz>
6813
6814 PR java/12374:
6815 * parse.y (qualify_ambiguous_name): Remove lots of broken
6816 field access processing - there's no need to do that here,
6817 because we have resolve_field_access. Remove
6818 RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
6819 * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
6820 used.
6821
6822 2003-12-01 Jeff Sturm <jsturm@one-point.com>
6823
6824 Fix PR java/13237
6825 * parse.y (java_complete_lhs): Save location prior to patching
6826 CALL_EXPR.
6827
6828 2003-11-25 Mohan Embar <gnustuff@thisiscool.com>
6829
6830 PR java/12548
6831 * resource.c (write_resource_constructor): Append
6832 "_resource" to constructor identifier name.
6833
6834 2003-11-25 Jeff Sturm <jsturm@one-point.com>
6835
6836 Fix PR java/13183.
6837 * constants.c (cpool_for_class): New function.
6838 (outgoing_cpool): Remove global variable.
6839 (alloc_name_constant): Use cpool_for_class.
6840 (build_constants_constructor): Likewise.
6841 * decl.c (java_expand_body): Set current_class.
6842 * java-tree.h (outgoing_cpool) Remove declaration.
6843 (init_outgoing_cpool): Likewise.
6844 * jcf-parse.c (init_outgoing_cpool): Remove function.
6845 (parse_class_file): Don't call init_outgoing_cpool.
6846 * parse.y (java_complete_expand_methods): Don't call
6847 init_outgoing_cpool. Don't save outgoing_cpool.
6848 (java_expand_classes): Don't restore outgoing_cpool.
6849 (java_finish_classes): Likewise.
6850
6851 2003-11-24 Mohan Embar <gnustuff@thisiscool.com>
6852
6853 * Make-lang.in: (java.install-common) Add
6854 symlink for $(target_noncanonical)-gcjh for
6855 native builds.
6856
6857 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
6858
6859 * Make-lang.in (java.extraclean): Delete.
6860
6861 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
6862
6863 * Make-lang.in (check-java): Add.
6864
6865 2003-11-19 Jeff Sturm <jsturm@one-point.com>
6866
6867 Fix PR java/13024.
6868 * except.c (prepare_eh_table_type): Allocate variable-sized
6869 buffer `buf' with alloca.
6870
6871 2003-11-17 Jeff Sturm <jsturm@one-point.com>
6872
6873 Fix PR java/12857.
6874
6875 decl.c (java_init_decl_processing): Don't initialize
6876 class_not_found_type_node, no_class_def_found_type_node.
6877
6878 java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
6879 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
6880 (class_not_found_type_node, no_class_def_found_type_node):
6881 Don't define.
6882
6883 parse.y (build_dot_class_method_invocation): Add this_class
6884 argument. Qualify method invocations to a different class.
6885 (create_new_parser_context): Initialize saved_data_ctx to 0.
6886 (java_parser_context_save_global): Initialize saved_data_ctx to 1.
6887 (build_dot_class_method): Don't load classes. Register
6888 incomplete types.
6889 (build_incomplete_class_ref): Special cases for interfaces
6890 and inner classes. Move build_dot_class_method call to here...
6891 (patch_incomplete_class_ref): ...from here. Pass current_class
6892 to build_dot_class_method_invocation.
6893 (build_assertion): Pass class_type to
6894 build_dot_class_method_invocation.
6895 (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
6896
6897 2003-11-17 Jeff Sturm <jsturm@one-point.com>
6898
6899 Fix PR java/12739.
6900 * java-tree.h (BLOCK_EMPTY_P): Define.
6901 * parse.y (java_complete_lhs): Check for empty blocks
6902 in TRY_FINALLY_EXPR case.
6903
6904 2003-11-17 Andrew Haley <aph@redhat.com>
6905
6906 * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
6907 (struct lang_decl_var:freed): New variable.
6908 * decl.c (poplevel): Mark local vars that have gone out of scope.
6909 (push_jvm_slot): Don't use the RTL of a var that has gone out of
6910 scope.
6911
6912 2003-11-16 Jason Merrill <jason@redhat.com>
6913
6914 * Make-lang.in (java.tags): Create TAGS.sub files in each directory
6915 and TAGS files that include them for each front end.
6916
6917 2003-11-15 Tom Tromey <tromey@redhat.com>
6918
6919 * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
6920
6921 2003-11-12 Jason Merrill <jason@redhat.com>
6922
6923 PR optimization/12547
6924 * lang.c (java_tree_inlining_walk_subtrees): Just walk
6925 BLOCK_EXPR_BODY directly.
6926
6927 2003-11-12 Andrew Haley <aph@redhat.com>
6928
6929 PR java/11045
6930 * parse.y (fold_constant_for_init): Check that we really do have a
6931 constant.
6932
6933 PR java/11533
6934 * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
6935 init_test_decls being inlined.
6936
6937 PR java/12890:
6938 * parse.y (do_resolve_class): Check return value from
6939 breakdown_qualified().
6940
6941 2003-11-11 Tom Tromey <tromey@redhat.com>
6942
6943 PR java/12915:
6944 * parse.y (merge_string_cste): Handle case where we have a
6945 pointer that happens to be zero, not null_pointer_node.
6946
6947 2003-11-10 Tom Tromey <tromey@redhat.com>
6948
6949 * jcf-parse.c (classify_zip_file): Correctly compare
6950 filename_length against length of manifest file's name.
6951
6952 2003-11-08 Tom Tromey <tromey@redhat.com>
6953
6954 PR java/12894:
6955 * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
6956
6957 2003-11-06 Andrew Haley <aph@redhat.com>
6958
6959 * expr.c (java_stack_swap): Make sure destination stack slots are
6960 of the correct type.
6961
6962 2003-11-03 Kelley Cook <kcook@gcc.gnu.org>
6963
6964 * Make-lang.in (dvi): Move targets to $(docobjdir).
6965 (gcj.dvi): Simplify rule and adjust target.
6966 (gcj.info): Simplify rule.
6967 (gcj.pod): New intermediate rule.
6968 (gcjh.pod): Likewise.
6969 (jv-scan.pod): Likewise.
6970 (jcf-dump.pod): Likewise.
6971 (gij.pod): Likewise.
6972 (jv-convert.pod): Likewise.
6973 (rmic.pod): Likewise.
6974 (rmiregistry.pod): Likewise.
6975 (gcj.1): Delete.
6976 (gcjh.1): Delete.
6977 (jv-scan.1): Delete.
6978 (jcf-dump.1): Delete.
6979 (gij.1): Delete.
6980 (jv-convert.1): Delete.
6981 (rmic.1): Delete.
6982 (rmiregistry.1): Delete.
6983
6984 2003-11-02 Jeff Sturm <jsturm@one-point.com>
6985
6986 Fixes PR java/12866.
6987 * parse.y (resolve_qualified_expression_name): Move test
6988 for outer field access methods from here...
6989 (check_thrown_exceptions) ...to here.
6990
6991 2003-11-01 Kelley Cook <kcook@gcc.gnu.org>
6992
6993 * .cvsignore: Delete.
6994
6995 2003-10-28 Frank Ch. Eigler <fche@redhat.com>
6996
6997 * verify.c (verify_jvm_instructions): Don't warn about legal
6998 eh binding regions generated for example by jdk 1.4.1.
6999
7000 2003-10-24 David S. Miller <davem@redhat.com>
7001
7002 * jcf-parse.c (jcf_parse): Fix args to fatal_error().
7003
7004 2003-10-22 Andrew Haley <aph@redhat.com>
7005
7006 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
7007 (java_get_callee_fndecl): New.
7008
7009 * jcf-parse.c (java_parse_file): Call emit_catch_table().
7010
7011 * java-tree.h (ctable_decl): New.
7012 (catch_classes): New.
7013 (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
7014
7015 * decl.c (java_init_decl_processing): Add catch_class_type.
7016 Add ctable_decl.
7017 Add catch_classes field.
7018
7019 * class.c (build_indirect_class_ref): Break out from
7020 build_class_ref.
7021 (make_field_value): Check flag_indirect_dispatch.
7022 (make_class_data): Ditto.
7023 Tidy uses of PUSH_FIELD_VALUE.
7024 Add field catch_classes.
7025 (make_catch_class_record): New.
7026
7027 * java-tree.h (PUSH_FIELD_VALUE): Tidy.
7028
7029 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
7030
7031 * jcf-write.c: Follow spelling conventions.
7032 * parse.y: Likewise.
7033
7034 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
7035
7036 * ChangeLog: Fix typos.
7037 * expr.c: Fix comment typos.
7038 * jcf-write.c: Likewise.
7039 * lang.c: Likewise.
7040 * lex.c: Likewise.
7041 * mangle.c: Likewise.
7042 * parse-scan.y: Likewise.
7043 * parse.y: Likewise.
7044
7045 2003-10-22 Tom Tromey <tromey@redhat.com>
7046
7047 * expr.c (expand_byte_code): Only warn about dead bytecode when
7048 extra_warnings is set.
7049
7050 2003-10-22 Bryce McKinlay <bryce@mckinlay.net.nz>
7051
7052 Fix for PR java/12586.
7053 * mangle.c (find_compression_record_match): Don't iterate through
7054 package namespace elements unless they all match compression_table
7055 entries.
7056
7057 2003-10-20 Kelley Cook <kcook@gcc.gnu.org>
7058
7059 * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
7060 (generate-manpages): Likewise.
7061 (java.maintainer-clean): Likewise.
7062 (gcj.info): Likewise.
7063 (gcj.1): Likewise.
7064 (gcjh.1): Likewise.
7065 (jv-scan.1): Likewise.
7066 (jcf-dump.1): Likewise.
7067 (gij.1): Likewise.
7068 (jv-convert.1): Likewise.
7069 (rmic.1): Likewise.
7070 (rmiregistry.1): Likewise.
7071 (java.install-man): Likewise.
7072 (parse-scan.o): Move and define complete compile line.
7073 (parse.o): Likewise.
7074 (jcf-tree-inline.o): Move.
7075
7076 2003-10-20 Mark Mitchell <mark@codesourcery.com>
7077
7078 * Make-lang.in (info): Update dependencies.
7079 (java.install-info): Remove.
7080 ($(srcdir)/java/gcj.info): Replace with ...
7081 ($(docobjdir)/gcj.info): ... this.
7082
7083 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
7084
7085 * Make-lang.in: Replace uses of $(target_alias) with
7086 $(target_noncanonical).
7087
7088 2003-10-09 Tom Tromey <tromey@redhat.com>
7089
7090 * decl.c (java_init_decl_processing): Declare signers field.
7091 * class.c (make_class_data): Set signers field.
7092
7093 2003-10-09 Jason Merrill <jason@redhat.com>
7094
7095 * parse.y (patch_assignment): Use make_node to create a BLOCK.
7096 * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
7097 POINTER_TYPE.
7098
7099 2003-10-06 Mark Mitchell <mark@codesourcery.com>
7100
7101 * Make-lang.in (java.info): Replace with ...
7102 (info): ... this.
7103 (java.dvi): Replace with ...
7104 (dvi): ... this.
7105 (java.generated-manpages): Replace with ...
7106
7107 2003-10-03 Kelley Cook <kelleycook@wideopenwest.com>
7108
7109 * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
7110
7111 2003-10-01 Andrew Haley <aph@redhat.com>
7112
7113 * jcf-parse.c (java_parse_file): Write otable and atable.
7114 * java-tree.h (atable_methods): New.
7115 (atable_decl): New.
7116 (atable_syms_decl): New.
7117 (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
7118 JTI_ATABLE_SYMS_DECL. Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
7119 (symbol_*type): Rename method_symbol* to symbol*type.
7120 (emit_offset_symbol_table): Delete.
7121 (emit_symbol_table): New.
7122 (get_symbol_table_index): New.
7123 (atable_type): New.
7124 * expr.c (build_field_ref): Handle flag_indirect_dispatch.
7125 (build_known_method_ref): Likewise.
7126 (get_symbol_table_index): Rename from get_offset_table_index.
7127 Parameterize to allow re-use by differing types of symbol table.
7128 (build_invokevirtual): Pass table to get_offset_table_index.
7129 * decl.c (java_init_decl_processing): Push types and decls for
7130 atable and atable_syyms.
7131 * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
7132 (make_class_data): Add new fields atable and atable_syms.
7133 (emit_symbol_table): Rename from emit_offset_symbol_table.
7134 Parameterize to allow re-use by different types of symbol table.
7135 (build_symbol_entry): Renamed from build_method_symbols_entry.
7136
7137 2003-09-30 Roger Sayle <roger@eyesopen.com>
7138
7139 * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
7140 semantics for SAVE_EXPR, by caching the result in a temporary.
7141
7142 2003-09-28 Richard Henderson <rth@redhat.com>
7143
7144 * check-init.c (check_init): Save and restore input_location
7145 instead of file and line separately.
7146 * decl.c (java_expand_body): Likewise.
7147 * jcf-write.c (generate_bytecode_insns): Likewise.
7148 * parse.y (safe_layout_class): Likewise.
7149 * jcf-parse.c (read_class, parse_class_file): Likewise.
7150 (java_parse_file): Use %H for warning locator.
7151
7152 2003-09-28 Roger Sayle <roger@eyesopen.com>
7153
7154 * expr.c (java_check_reference): Use the semantics of COND_EXPRs
7155 with void-type branches instead of using a COMPOUND_EXPR.
7156
7157 2003-09-28 Jeff Sturm <jsturm@one-point.com>
7158
7159 * decl.c (java_optimize_inline, dump_function): Remove.
7160 * java-tree.h (java_optimize_inline): Remove declaration.
7161 * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
7162 * parse.y (source_end_java_method, java_expand_classes):
7163 Likewise. Remove dead code.
7164
7165 2003-09-27 Roger Sayle <roger@eyesopen.com>
7166
7167 * lang.c (java_init_options): Set flag_evaluation_order.
7168 * expr.c (force_evaluation_order): Don't attempt to force
7169 evaluation order of binary operations using save_expr.
7170 * parse.y (java_complete_lhs): No longer need to call
7171 force_evaluation_order when constructing binary operators.
7172
7173 2003-09-27 Alexandre Petit-Bianco <apbianco@redhat.com>
7174 Bryce McKinlay <bryce@mckinlay.net.nz>
7175
7176 PR java/1333:
7177 * parse.y (not_accessible_field_error): New function.
7178 (resolve_expression_name): Check field access permissions.
7179 (resolve_qualified_expression_name): Use
7180 not_accessible_field_error.
7181 (resolve_qualified_expression_name): Likewise.
7182
7183 2003-09-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7184
7185 * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
7186
7187 2003-09-23 Roger Sayle <roger@eyesopen.com>
7188
7189 * jcf-write.c (generate_bytecode_insns): Optimize binary operations
7190 with equal operands without side-effects.
7191
7192 2003-09-22 Jeff Sturm <jsturm@one-point.com>
7193
7194 * decl.c (java_init_decl_processing): Don't emit otable decls
7195 if flag_indirect_dispatch is not set.
7196
7197 2003-09-21 Richard Henderson <rth@redhat.com>
7198
7199 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
7200 resource.c: Revert.
7201
7202 2003-09-21 Richard Henderson <rth@redhat.com>
7203
7204 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
7205 resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
7206
7207 2003-09-20 Richard Henderson <rth@redhat.com>
7208
7209 * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
7210
7211 2003-09-18 Roger Sayle <roger@eyesopen.com>
7212
7213 * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
7214 * check-init.c (check_init): Likewise.
7215
7216 2003-09-18 Roger Sayle <roger@eyesopen.com>
7217
7218 * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
7219
7220 2003-09-16 Andrew Haley <aph@redhat.com>
7221
7222 * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
7223
7224 2003-09-17 Ranjit Mathew <rmathew@hotmail.com>
7225
7226 Fixes PR java/9577
7227 * mangle.c (find_compression_record_match): Skip
7228 over a "6JArray" (the array template mangled string)
7229 IDENTIFIER_NODE.
7230 (mangle_array_type): Correct minor typo.
7231 (atms): Move definition to the beginning.
7232
7233 2003-09-16 Bryce McKinlay <bryce@mckinlay.net.nz>
7234
7235 * class.c (add_miranda_methods): Ensure super-interfaces are laid
7236 out. Fix for PR java/12254.
7237
7238 2003-09-11 Richard Henderson <rth@redhat.com>
7239
7240 * parse.y (source_end_java_method): Update for new
7241 cgraph_finalize_function argument.
7242
7243 2003-09-09 Richard Henderson <rth@redhat.com>
7244
7245 * parse.y (source_end_java_method): Update call to
7246 cgraph_finalize_function.
7247
7248 2003-09-03 Jeff Sturm <jsturm@one-point.com>
7249
7250 * decl.c (java_expand_body): New function.
7251 * expr.c (build_class_init): Set DECL_IGNORED_P.
7252 * java-tree.h (start_complete_expand_method,
7253 java_expand_body): Declare.
7254 * jcf-parse.c (cgraph.h): Include.
7255 (java_parse_file): Handle flag_unit_at_a_time.
7256 * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
7257 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
7258 (java_estimate_num_insns): Use walk_tree_without_duplicates.
7259 (java_start_inlining): New function.
7260 * parse.h (java_finish_classes): Declare.
7261 * parse.y: Include cgraph.h.
7262 (block): Don't special-case empty block production.
7263 (craft_constructor): Set DECL_INLINE.
7264 (source_end_java_method): Handle flag_unit_at_a_time.
7265 Replace inline code with call to java_expand_body.
7266 (start_complete_expand_method): Remove static modifier.
7267 (java_expand_method_bodies): Patch function tree for
7268 class initialization and/or synchronization as needed.
7269 Don't begin RTL expansion yet.
7270 (java_expand_classes): Check flag_unit_at_a_time before
7271 calling finish_class.
7272 (java_finish_classes): New function.
7273 (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
7274 (patch_assignment): Set DECL_CONTEXT on temporary variable.
7275 (emit_test_initialization): Set DECL_IGNORED_P.
7276
7277 2003-09-03 Roger Sayle <roger@eyesopen.com>
7278
7279 * builtins.c (enum builtin_type): Delete unused enumeration.
7280 * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
7281
7282 2003-08-28 Tom Tromey <tromey@redhat.com>
7283
7284 * gcj.texi (Extensions): Document gcjlib URLs.
7285
7286 2003-08-20 Tom Tromey <tromey@redhat.com>
7287
7288 * gcj.texi (Extensions): Added xref.
7289 (libgcj Runtime Properties): Document
7290 gnu.gcj.runtime.VMClassLoader.library_control.
7291
7292 2003-08-20 Andrew Haley <aph@redhat.com>
7293
7294 * except.c (prepare_eh_table_type): Use new encoding for exception
7295 handlers when using -fno-assume-compiled.
7296
7297 2003-08-13 Tom Tromey <tromey@redhat.com>
7298
7299 * gcj.texi (Invoking gij): Document -X and -?.
7300
7301 2003-08-13 Mohan Embar <gnustuff@thisiscool.com>
7302
7303 * Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
7304 GCJH_OBJS, JCFDUMP_OBJS
7305 * win32-host.c: Removed the unnecessary and broken dependency
7306 on jcf.h
7307
7308 2003-08-11 Tom Tromey <tromey@redhat.com>
7309
7310 * parse.y (java_check_regular_methods): Typo fixes. Call
7311 check_interface_throws_clauses. Use
7312 check_concrete_throws_clauses.
7313 (check_interface_throws_clauses): New function.
7314 (check_concrete_throws_clauses): New function.
7315 (hack_is_accessible_p): New function.
7316 (find_most_specific_methods_list): Added FIXME.
7317 * typeck.c (lookup_do): Use `flags' argument to decide what to
7318 do. Reimplemented.
7319 (lookup_argument_method_generic): New function.
7320 (lookup_argument_method2): Removed.
7321 * jcf.h (ACC_INVISIBLE): New define.
7322 * jcf-write.c (generate_classfile): Skip invisible methods.
7323 * class.c (add_miranda_methods): New function.
7324 (layout_class_methods): Use it.
7325 (get_access_flags_from_decl): Use ACC_INVISIBLE.
7326 * java-tree.h (METHOD_INVISIBLE): New define.
7327 (lang_decl_func) [invisible]: New field.
7328 (lookup_argument_method_generic): Declare.
7329 (SEARCH_INTERFACE): New define.
7330 (SEARCH_SUPER): Likewise.
7331 (SEARCH_ONLY_INTERFACE): Likewise.
7332 (SEARCH_VISIBLE): Likewise.
7333 (lookup_argument_method2): Removed declaration.
7334
7335 2003-08-05 Tom Tromey <tromey@redhat.com>
7336
7337 Fix for PR java/11600:
7338 * parse.y (java_complete_lhs): See whether we're calling a method
7339 on an array.
7340 (check_thrown_exceptions): Added `is_array_call' argument;
7341 fixed `clone' checking; updated all callers.
7342
7343 2003-08-05 Steven Bosscher <steven@gcc.gnu.org>
7344
7345 * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h).
7346
7347 2003-08-03 Tom Tromey <tromey@redhat.com>
7348
7349 * java-tree.h (METHOD_TRANSIENT): Removed.
7350 * decl.c (pushdecl): Removed some dead code.
7351 * class.c (get_access_flags_from_decl): Can't have transient
7352 method.
7353 (add_method_1): Can't have a transient method.
7354
7355 2003-07-28 Andreas Jaeger <aj@suse.de>
7356
7357 * jvspec.c: Convert to ISO C90 prototypes.
7358
7359 2003-07-25 Nathan Sidwell <nathan@codesourcery.com>
7360
7361 * decl.c (force_poplevels): Fix warning call.
7362
7363 2003-07-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
7364
7365 * expr.c (expand_java_field_op): Don't use xxx_with_decl
7366 (expand_java_field_op): Likewise.
7367 * class.c (layout_class_method): Likewise
7368 (emit_register_classes): Likewise.
7369 * decl.c (pushdecl): Likewise.
7370 (poplevel): Likewise.
7371 (force_poplevels): Likewise.
7372 (give_name_to_locals): Likewise.
7373 * check-init.c (check_for_initialization): Likewise.
7374
7375 2003-07-24 Jason Merrill <jason@redhat.com>
7376
7377 * java-tree.h: Move boolean_type_node et al to the back end.
7378
7379 2003-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7380
7381 * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary
7382 casts.
7383
7384 2003-07-19 Neil Booth <neil@daikokuya.co.uk>
7385
7386 * lang.opt: Don't show -MD_ and -MDD_.
7387
7388 2003-07-18 Neil Booth <neil@daikokuya.co.uk>
7389
7390 * lang-options.h: Remove.
7391 * lang.opt: Add help text.
7392
7393 2003-07-15 Kazu Hirata <kazu@cs.umass.edu>
7394
7395 * expr.c: Remove the last argument to expand_assignment().
7396
7397 2003-07-09 Jan Hubicka <jh@suse.cz>
7398
7399 * java-tree.h (DECL_NUM_STMTS): Rename to...
7400 (DECL_ESTIMATED_INSNS): ... this.
7401 * lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
7402 New static functions.
7403 (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
7404 * parser.y (add_stmt_to_compound): Do not account statements.
7405
7406 2003-07-08 Mark Wielaard <mark@klomp.org>
7407
7408 * gcj.texi: CNI now expands to Compiled Native Interface.
7409
7410 2003-07-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7411
7412 * Make-lang.in (java/gcj.dvi): Use PWD_COMMAND.
7413
7414 2003-07-07 Nathan Sidwell <nathan@codesourcery.com>
7415
7416 * expr.c (expand_byte_code): Adjist emit_line_note call.
7417
7418 2003-07-06 Neil Booth <neil@daikokuya.co.uk>
7419
7420 * lang.c (java_handle_option): Don't handle filenames.
7421
7422 2003-07-02 Zack Weinberg <zack@codesourcery.com>
7423
7424 * jcf-path.c: Don't default-define PATH_SEPARATOR nor
7425 DIR_SEPARATOR.
7426 Use FILENAME_CMP.
7427 * jcf-write.c: Don't default-define DIR_SEPARATOR.
7428 * jcf.h: Delete COMPARE_FILENAMES definition.
7429
7430 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
7431
7432 * lang.c (java_init_options): Update prototype.
7433
7434 2003-07-01 Nathan Sidwell <nathan@codesourcery.com>
7435
7436 * decl.c (poplevel): Adjust define_label call.
7437
7438 2003-06-27 Zack Weinberg <zack@codesourcery.com>
7439
7440 * gjavah.c (flag_jni): Make non-static.
7441 * parse-scan.y (ctxp): Make non-static.
7442
7443 * class.c (build_method_symbols_entry)
7444 * expr.c (get_offset_table_index)
7445 * jcf-parse.c (jcf_parse):
7446 Mark the definition static, matching the forward declaration.
7447
7448 2003-06-26 Neil Booth <neil@daikokuya.co.uk>
7449
7450 * lang.c (java_handle_option): Don't check for missing arguments.
7451
7452 2003-06-20 Nathan Sidwell <nathan@codesourcery.com>
7453
7454 * class.c (push_class): Use a location_t to save place.
7455 (emit_register_classes): Set input_location. Adjust
7456 expand_function_end call.
7457 * resource.c (write_resource_constructor): Likewise.
7458 * decl.c (end_java_method): Adjust expand_function_end call.
7459 * parse.y (source_end_java_method): Likewise.
7460
7461 2003-06-17 Robert Abeles <rabeles@archaelogic.com>
7462
7463 * lang.c (java_handle_option): Likewise.
7464
7465 2003-06-16 Neil Booth <neil@daikokuya.co.uk>
7466
7467 * lang.c (java_handle_option): Special-casing of optional
7468 joined arguments no longer needed.
7469 * lang.opt: Update switches that take optional argument.
7470
7471 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
7472
7473 * lang.opt: Declare Java.
7474 * lang.c (java_init_options): Update.
7475
7476 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
7477
7478 * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
7479
7480 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
7481
7482 * lang-specs.h: Rewrite -MD and -MMD to append an underscore.
7483 * lang.c (java_handle_option): -MD and -MMD have an underscore.
7484 * lang.opt: -MD and -MMD have an underscore.
7485
7486 2003-06-14 Nathan Sidwell <nathan@codesourcery.com>
7487
7488 * class.c (emit_register_classes): Adjust init_function_start
7489 call.
7490 * decl.c (complete_start_java_method): Likewise.
7491 * resource.c (write_resource_constructor): Likewise.
7492
7493 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
7494
7495 * Make-lang.in: Update to use options.c and options.h.
7496 * lang.c: Include options.h not j-options.h.
7497 (java_handle_option): Abort on unrecognized option.
7498 (java_init_options): Request Java switches.
7499
7500 2003-06-11 Neil Booth <neil@daikokuya.co.uk>
7501
7502 * Make-lang.in: Handle mostlyclean.
7503
7504 2003-06-11 Tom Tromey <tromey@redhat.com>
7505
7506 * lang.c (java_handle_option): Update dependency_tracking for
7507 OPT_MF case.
7508
7509 * lang.c (java_handle_option): OPT_fbootclasspath_ can take an
7510 empty argument.
7511
7512 2003-06-10 Andrew Haley <aph@redhat.com>
7513
7514 * resource.c (write_resource_constructor): Use expand_expr to
7515 generate the address of the label attached to a resource.
7516 * Make-lang.in (java/resource.o): Add expr.h
7517
7518 2003-06-10 Andrew Haley <aph@redhat.com>
7519
7520 * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
7521 (java_decl_ok_for_sibcall): New.
7522
7523 2003-06-09 Neil Booth <neil@daikokuya.co.uk>
7524
7525 * Make-lang.in (JAVA_OBJS, java/lang.o): Update.
7526 (java/j-options.c, java/j-options.h): New.
7527 * java-tree.h (resource_name, compile_resource_file,
7528 compile_resource_data): Constify.
7529 * jcf-write.c (jcf_write_base_directory): Similarly.
7530 * jcf.h (jcf_write_base_directory): Similarly.
7531 * lang.c: Include j-options.h.
7532 (cl_options_count, cl_options, string_option, java_decode_option,
7533 lang_f_options, lang_W_options, LANG_HOOKS_DECODE_OPTION,
7534 process_option_with_no): Remove.
7535 (resource_name): Constify.
7536 (LANG_HOOKS_HANDLE_OPTION): Override.
7537 (java_handle_option): New.
7538 (java_init): Don't call jcf_path_init.
7539 (java_init_options): Call jcf_path_init.
7540 * lang.opt: New.
7541 * resource.c (compile_resource_data, compile_resource_file): Constify.
7542
7543 2003-06-09 Nathan Sidwell <nathan@codesourcery.com>
7544
7545 * java-tree.h (DECL_FUNCTION_LAST_LINE): New.
7546 (struct lang_decl_func): Add last_line field.
7547 * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
7548 DECL_SOURCE_LINE_LAST): Remove.
7549 * parse.y (missing_return_error, finish_method_declaration,
7550 lookup_cl, start_artificial_method_body, source_end_java_method,
7551 start_complete_expand_method): Adjust.
7552
7553 2003-06-08 Tom Tromey <tromey@redhat.com>
7554
7555 * jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and
7556 fno-assume-compiled.
7557
7558 2003-06-08 Roger Sayle <roger@eyesopen.com>
7559
7560 * builtins.c (define_builtin_type, builtin_types): Delete.
7561 (define_builtin): Rewritten to take just the built-in code,
7562 the function's name, type and fallback library function name.
7563 All built-ins used by Java are implicit and BUILT_IN_NORMAL.
7564 (initialize_builtins): Overhaul to define the GCC builtins
7565 used by gcj manually, providing the Java run-time's
7566 implementations as the fallback library function.
7567
7568 2003-06-08 Anthony Green <green@redhat.com>
7569
7570 * parse.y (patch_cast): Fix conversions from floating-point to
7571 integral types.
7572
7573 2003-06-08 Neil Booth <neil@daikokuya.co.uk>
7574
7575 * Make-lang.in: Update.
7576 * lang.c: Include opts.h. Define cl_options_count and cl_options.
7577
7578 2003-06-07 Neil Booth <neil@daikokuya.co.uk>
7579
7580 * lang.c (java_init_options): Update.
7581
7582 2003-06-05 Jan Hubicka <jh@suse.cz>
7583
7584 * Make-lang.in: Add support for stageprofile and stagefeedback
7585
7586 2003-05-31 Roger Sayle <roger@eyesopen.com>
7587
7588 * lang.c (java_init_options): Prescribe wrap-around two's
7589 complement arithmetic overflow by setting flag_wrapv.
7590
7591 2003-05-29 Roger Sayle <roger@eyesopen.com>
7592
7593 * builtins.c (cos_builtin, sin_builtin, sqrt_builtin): Delete.
7594 (builtin_record): Add an additional builtin_code field to
7595 record which GCC built-in corresponds to the Java function.
7596 (java_builtins): Add new entries for atan, atan2, exp, log,
7597 pow and tan.
7598 (max_builtin, min_builtin, abs_builtin): Perform constant
7599 folding on the resulting tree.
7600 (java_build_function_call_expr): Likewise, perform constant
7601 folding on the resulting tree.
7602 (initialize_builtins): The NULL creators are now allowed in
7603 the java_builtins table, which is now terminated by an entry
7604 with builtin_code == END_BUILTINS.
7605 (check_for_builtin): Likewise. If the matching creator is
7606 NULL, construct the call using java_build_function_call_expr
7607 directly with the decl for the corresponding builtin_code.
7608
7609 2003-05-23 Nathanael Nerode <neroden@gcc.gnu.org>
7610
7611 * win32-host.c: Normalize copyright boilerplate.
7612
7613 2003-05-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7614
7615 * parse.y (print_int_node): Use string concatentation on
7616 HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
7617 function calls into one.
7618
7619 2003-05-13 Zack Weinberg <zack@codesourcery.com>
7620
7621 * jcf-parse.c, jcf-write.c, lex.c: Replace all calls to
7622 fatal_io_error with calls to fatal_error; add ": %m" to the end of
7623 all the affected error messages.
7624
7625 2003-05-13 Richard Henderson <rth@redhat.com>
7626
7627 * class.c (layout_class_method): Set DECL_EXTERNAL.
7628 * decl.c (java_mark_decl_local, java_mark_class_local): New.
7629 * java-tree.h (java_mark_class_local): Declare.
7630 * jcf-parse.c (parse_class_file): Use it.
7631 * parse.y (java_expand_classes): Likewise.
7632
7633 2003-05-04 Nathan Sidwell <nathan@codesourcery.com>
7634
7635 * Make-lang.in (java/parse.o, java/parse-scan.o): Depend on input.h.
7636 * lex.h: #include input.h.
7637 * jv-scan.c (input_filename): Remove.
7638
7639 2003-05-02 Tom Tromey <tromey@redhat.com>
7640
7641 PR java/10491:
7642 * gjavah.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
7643 (handle_inner_classes): New function.
7644
7645 2003-05-01 Tom Tromey <tromey@redhat.com>
7646
7647 PR java/10459:
7648 * parse.y (finish_for_loop): Do nothing if update expression is a
7649 EXPR_WFL_NODE wrapping nothing.
7650 (java_complete_lhs) <COMPOUND_EXPR>: Likewise.
7651
7652 2003-05-02 Nathan Sidwell <nathan@codesourcery.com>
7653
7654 * lex.h (input_lineno): Remove declaration.
7655 * parse-scan.y: #include input.h.
7656 (input_filename): Remove declaration.
7657 (input_location): Add definition.
7658 (input_line): Remove definition.
7659
7660 2003-05-01 Nathan Sidwell <nathan@codesourcery.com>
7661
7662 * lex.h (lineno): Rename to ...
7663 (input_line): ... here
7664 * parse-scan.y (lineno): Rename to ...
7665 (input_line): ... here.
7666 (reset_report): Rename lineno to input_line.
7667 * check-init.c (check_init): Likewise.
7668 * class.c (push_class): Likewise.
7669 * decl.c (complete_start_java_method, end_java_method): Likewise.
7670 * expr.c (expand_byte_code): Likewise.
7671 * jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
7672 * jcf-write.c (generate_bytecode_insns): Likewise.
7673 * lex.c (java_init_lex, java_allocate_new_line,
7674 do_java_lex): Likewise.
7675 * parse.h (YYNOT_TWICE): Likewise.
7676 * parse.y (empty_statement, expression_statement,
7677 java_pop_parser_context, java_parser_context_save_global,
7678 yyerror, register_fields, method_header, safe_layout_class,
7679 find_in_imports_on_demand, create_artificial_method,
7680 source_end_java_method, start_complete_expand_method,
7681 build_thisn_assign, java_complete_lhs,
7682 maybe_absorb_scoping_block): Likewise.
7683
7684 2003-04-20 Mohan Embar <gnustuff@thisiscool.com>
7685
7686 * jcf-io.c (find_class): use DIR_SEPARATOR instead of
7687 '/' when computing java source filename
7688
7689 2003-04-13 Tom Tromey <tromey@redhat.com>
7690
7691 * gjavah.c (print_c_decl): Indentation fix.
7692
7693 2003-04-12 Zack Weinberg <zack@codesourcery.com>
7694
7695 * class.c (make_field_value, make_method_value, get_dispatch_table)
7696 (make_class_data, emit_offset_symbol_table)
7697 * constants.c (build_constants_constructor)
7698 * java-tree.h (START_RECORD_CONSTRUCTOR)
7699 * parse.y (maybe_build_array_element_wfl):
7700 Use build_constructor.
7701
7702 2003-04-10 Eric Blake <ebb9@email.byu.edu>
7703
7704 PR java/10253:
7705 * parse.y (string_convert_int_cst): Always use at least one digit
7706 in string conversion. Remove ASCII dependence.
7707 (merge_string_cste): Fix merging of 3-byte UTF-8 characters.
7708
7709 2003-03-16 Mohan Embar <gnustuff@thisiscool.com>
7710
7711 * Make-lang.in: added win32-host.c
7712 * jcf.h: defined macro JCF_OPEN_EXACT_CASE which
7713 resolves to open() on non-Win32 platforms and
7714 Win32-specific jcf_open_exact_case() on Win32
7715 * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE
7716 when trying .java and .class files
7717 * win32-host.c: added to repository. Defines
7718 Win32-specific jcf_open_exact_case()
7719
7720 2003-04-10 Andrew Haley <aph@redhat.com>
7721
7722 * jcf-write.c (struct jcf_partial): num_jsrs: new field.
7723 (maybe_free_localvar): Renamed from localvar_free.
7724 Add new arg, really.
7725 (generate_bytecode_insns): Set new variable, jsrs.
7726 Only free local vars if no jsr insns have been emittted.
7727 Call maybe_free_localvar, not localvar_free.
7728
7729 2003-03-30 Joseph S. Myers <jsm@polyomino.org.uk>
7730
7731 * gcj.texi: Remove @ at start of file.
7732
7733 2003-03-25 Tom Tromey <tromey@redhat.com>
7734
7735 * parse.y (create_interface): Call CHECK_DEPRECATED.
7736
7737 2003-03-23 Zack Weinberg <zack@codesourcery.com>
7738
7739 * Make-lang.in: Link jcf-dump against $(LDEXP_LIB).
7740
7741 2003-03-21 Zack Weinberg <zack@codesourcery.com>
7742
7743 * javaop.h (jfloat, jdouble): Make them structures mirroring
7744 the bit fields of IEEE float and double respectively.
7745 (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
7746 JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
7747 (union Word, union DWord): Delete.
7748 (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
7749
7750 * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
7751 D_NAN_MASK): Delete.
7752 (jni_print_float, jni_print_double): New. Generate
7753 hexadecimal floating constants.
7754 (print_field_info): Use jni_print_float/double.
7755
7756 * jcf-dump.c: Include math.h. Use ldexp/frexp to assemble
7757 finite floating point numbers for output; special case
7758 non-finite floats.
7759
7760 2003-03-19 Nathanael Nerode <neroden@gcc.gnu.org>
7761
7762 * lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
7763 Replace 0 and 1 with true and false in return statements.
7764
7765 2003-03-19 Tom Tromey <tromey@redhat.com>
7766
7767 * lex.c (do_java_lex): Renamed from java_lex.
7768 (java_lex): New function.
7769 Include timevar.h.
7770
7771 2003-03-13 Tom Tromey <tromey@redhat.com>
7772
7773 * parse.y (resolve_inner_class): Error if qualifier is a primitive
7774 type.
7775
7776 2003-03-04 Andrew Haley <aph@redhat.com>
7777
7778 * gjavah.c (is_first_data_member): New global variable.
7779 (print_c_decl): If it's the first data member, align it as the
7780 superclass.
7781 (process_file): Set is_first_data_member.
7782
7783 2003-03-11 Tom Tromey <tromey@redhat.com>
7784
7785 * parse.y (resolve_field_access): Initialize class if field is
7786 found in another static field.
7787 * expr.c (build_class_init): Don't optimize out initialization of
7788 implemented interface.
7789
7790 2003-03-11 Andrew Haley <aph@redhat.com>
7791
7792 * jcf-io.c (caching_stat): Initialize origsep to remove compiler
7793 warning.
7794
7795 2003-03-10 Ranjit Mathew <rmathew@hotmail.com>
7796
7797 * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR
7798 and DIR_SEPARATOR_2 for a target.
7799 Correct minor typos.
7800
7801 * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR
7802 and DIR_SEPARATOR_2 for a target into account.
7803
7804 2003-03-08 Neil Booth <neil@daikokuya.co.uk>
7805
7806 * lang.c (java_init): Update prototype, move code to java_post_options.
7807 (java_post_options): Similarly.
7808
7809 2003-03-05 Ranjit Mathew <rmathew@hotmail.com>
7810
7811 * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
7812 compare file name components depending on the case-sensitivity
7813 or otherwise of the host file system.
7814
7815 * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
7816 "strcmp" to compare file name components.
7817 Use IS_DIR_SEPARATOR instead of comparing directly against
7818 DIR_SEPARATOR.
7819 (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
7820 comparing directly against DIR_SEPARATOR.
7821
7822 2003-03-04 Tom Tromey <tromey@redhat.com>
7823
7824 * Make-lang.in (java.tags): New target.
7825
7826 2003-03-01 Roger Sayle <roger@eyesopen.com>
7827
7828 * java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
7829 (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.
7830
7831 2003-03-01 Tom Tromey <tromey@redhat.com>
7832
7833 * parse.y (jdep_resolve_class): Only check deprecation if we found
7834 a decl.
7835
7836 2003-02-28 Tom Tromey <tromey@redhat.com>
7837
7838 PR java/9695:
7839 * class.c (maybe_layout_super_class): Always pass a WFL to
7840 do_resolve_class.
7841 * parse.y (do_resolve_class): Updated comment to explain
7842 parameters.
7843
7844 2003-02-26 Tom Tromey <tromey@redhat.com>
7845
7846 * jcf-write.c (generate_classfile): Check whether class is
7847 deprecated before writing attribute count.
7848
7849 2003-02-25 Roger Sayle <roger@eyesopen.com>
7850
7851 * java/decl.c (java_init_decl_processing): Get soft_fmod_node from
7852 built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.
7853
7854 2003-02-23 Tom Tromey <tromey@redhat.com>
7855
7856 * lang-options.h: Added -Wdeprecated.
7857 * gcj.texi (Warnings): Document -Wdeprecated.
7858 * java-tree.h (flag_deprecated): Declare.
7859 * lang.c (lang_W_options): Added deprecated.
7860 (flag_deprecated): New global.
7861 * chartables.h: Rebuilt.
7862 * gen-table.pl (process_one): Look at whitespace.
7863 (print_tables): Define LETTER_SPACE, LETTER_MASK.
7864 * parse.h (CLEAR_DEPRECATED): New macro.
7865 (CHECK_DEPRECATED_NO_RESET): New macro.
7866 * jcf-parse.c (handle_deprecated): New function.
7867 (HANDLE_DEPRECATED_ATTRIBUTE): New define.
7868 * jcf-reader.c (get_attribute): Handle Deprecated attribute.
7869 * parse.y (resolve_type_during_patch): Check deprecation.
7870 (jdep_resolve_class): Likewise.
7871 (process_imports): Likewise.
7872 (resolve_expression_name): Likewise.
7873 (check_deprecation): Strip arrays from decl. Check
7874 flag_deprecated.
7875 (patch_method_invocation): Also check the particular constructor
7876 for deprecation.
7877 (register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
7878 * jcf-write.c (append_deprecated_attribute): New function.
7879 (generate_classfile): Generate deprecated attribute when
7880 appropriate.
7881 * lex.c (java_parse_doc_section): Return type now void. Rewrote.
7882 (java_lex) [case '*']: Simplify logic.
7883 (java_start_char_p): Use LETTER_MASK.
7884 (java_part_char_p): Likewise.
7885 (java_space_char_p): New function.
7886
7887 2003-02-20 Nathan Sidwell <nathan@codesourcery.com>
7888
7889 Change base class access representation.
7890 * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
7891 (add_interface_do): Likewise.
7892
7893 2003-02-12 Ranjit Mathew <rmathew@hotmail.com>
7894
7895 * decl.c (java_init_decl_processing): Change
7896 soft_lookupjnimethod_node to reflect the change in
7897 signature of _Jv_LookupJNIMethod in libjava/jni.cc
7898 * expr.c (build_jni_stub): Calculate and pass the size
7899 on the stack of the arguments to a JNI function. Use
7900 new target macro MODIFY_JNI_METHOD_CALL to allow a
7901 target to modify the call to a JNI method.
7902
7903 2003-02-08 Roger Sayle <roger@eyesopen.com>
7904
7905 * jcf-io.c (java_or_class_file): Use libiberty's lbasename
7906 instead of basename to avoid compiler warnings on Tru64.
7907
7908 2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
7909
7910 * gcj.texi: Update to GFDL 1.2.
7911
7912 2003-01-31 Andrew Haley <aph@redhat.com>
7913
7914 * parse.y (java_expand_classes): Scan the whole class list looking
7915 for access methods that haven't yet been expanded.
7916
7917 2003-01-31 Adrian Bunk <bunk@fs.tum.de>
7918
7919 Fix for java/4269:
7920
7921 * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO
7922 to fix bootstrap on sparc-unknown-netbsdelf1.5.
7923 * jcf-parse.c: Likewise.
7924
7925 2003-01-31 Mark Wielaard <mark@klomp.org>
7926
7927 * gjavah.c (throwable_p): Allocate 1 more byte for string.
7928
7929 2003-01-31 Nathan Sidwell <nathan@codesourcery.com>
7930
7931 * class.c (make_class): Use BINFO_ELTS.
7932 (set_super_info): Likewse.
7933 (add_interface_do): Likewise.
7934
7935 2003-01-30 Tom Tromey <tromey@redhat.com>
7936
7937 * jcf-parse.c (read_class): Update identifier's class value if it
7938 changed during parsing.
7939
7940 2003-01-30 Loren James Rittle <ljrittle@acm.org>
7941
7942 * Make-lang.in (po-generated): Find the targets in $(parsedir).
7943 Propagate change to all other rules as required.
7944 (java/parse-scan.o): Add explicit dependency on
7945 $(parsedir)/java/parse-scan.c .
7946
7947 2003-01-29 Tom Tromey <tromey@redhat.com>
7948
7949 * parse.y (patch_assignment): Only transform the rhs of an
7950 assignment when compiling to native.
7951
7952 2003-01-28 Tom Tromey <tromey@redhat.com>
7953
7954 * jcf-write.c (generate_bytecode_conditional): Typo fixes.
7955
7956 2003-01-28 Tom Tromey <tromey@redhat.com>
7957
7958 * lex.c (java_lex): Don't include UEOF as part of token.
7959 (java_read_unicode): Error if \u sequence prematurely terminated.
7960
7961 2003-01-27 Tom Tromey <tromey@redhat.com>
7962
7963 * parse.y (java_check_regular_methods): Check for construct after
7964 checking types in throws clause.
7965
7966 2003-01-24 Tom Tromey <tromey@redhat.com>
7967
7968 * class.c (build_static_field_ref): Only a String or numeric field
7969 can fold to a constant.
7970
7971 2003-01-23 Tom Tromey <tromey@redhat.com>
7972
7973 * jcf-parse.c (parse_zip_file_entries): Overwrite trailing \0 of
7974 file name in resource buffer.
7975
7976 2003-01-23 Tom Tromey <tromey@redhat.com>
7977
7978 * expr.c (build_known_method_ref): Use method's context to find
7979 method table index.
7980
7981 2003-01-23 Tom Tromey <tromey@redhat.com>
7982
7983 * constants.c (set_constant_entry): Allocated cleared memory.
7984
7985 2003-01-22 Tom Tromey <tromey@redhat.com>
7986
7987 * java-tree.h: Don't use PARAMS.
7988 * resource.c: Add prototypes for all functions.
7989 (write_resource_constructor): Use `const char *' to avoid
7990 warning.
7991
7992 2003-01-22 Nathanael Nerode <neroden@gcc.gnu.org>
7993
7994 * jcf-parse.c (process_zip_dir): Remove unused variable.
7995
7996 2003-01-22 Tom Tromey <tromey@redhat.com>
7997
7998 * expr.c (build_invokeinterface): Abort if method's context is not
7999 an interface.
8000
8001 2003-01-22 Tom Tromey <tromey@redhat.com>
8002
8003 * gcj.texi (Input and output files): Mention non-class entries.
8004 * decl.c (java_init_decl_processing): Call
8005 init_resource_processing.
8006 * java-tree.h (compile_resource_data, write_resource_constructor,
8007 compile_resource_file, init_resource_processing): Declare.
8008 * config-lang.in (gtfiles): Added resource.c.
8009 * Make-lang.in (gt-java-resource.h): New target.
8010 (JAVA_OBJS): Added resource.o.
8011 (java/resource.o): New target.
8012 * resource.c: New file.
8013 * class.c (compile_resource_file): Moved to resource.c.
8014 (registerResource_libfunc): Likewise.
8015 (utf8_decl_list): Mark with GTY; now static.
8016 * jcf-parse.c (classify_zip_file): New function.
8017 (parse_zip_file_entries): Use it; compile .properties files.
8018 (process_zip_dir): Use classify_zip_file and compute_class_name.
8019 Don't write class name into zip directory.
8020 (java_parse_file): Call write_resource_constructor.
8021 (compute_class_name): New function.
8022 * jcf-io.c (read_zip_member): Reindented.
8023
8024 2003-01-21 Tom Tromey <tromey@redhat.com>
8025
8026 * class.c (supers_all_compiled): New function.
8027 (make_class_data): Use it.
8028
8029 2003-01-21 Tom Tromey <tromey@redhat.com>
8030
8031 * parse.y (method_header): Native method can't be strictfp.
8032 No method can be transient or volatile.
8033
8034 2003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8035
8036 Make-lang.in (jvspec.o-warn): Add -Wno-error.
8037
8038 2003-01-18 Kazu Hirata <kazu@cs.umass.edu>
8039
8040 * check-init.c: Fix comment typos.
8041 * class.c: Likewise.
8042 * constants.c: Likewise.
8043 * decl.c: Likewise.
8044 * except.c: Likewise.
8045 * expr.c: Likewise.
8046 * java-except.h: Likewise.
8047 * java-tree.h: Likewise.
8048 * javaop.h: Likewise.
8049 * jcf-dump.c: Likewise.
8050 * jcf-io.c: Likewise.
8051 * jcf-parse.c: Likewise.
8052 * jcf-write.c: Likewise.
8053 * lang.c: Likewise.
8054 * mangle.c: Likewise.
8055 * typeck.c: Likewise.
8056 * verify.c: Likewise.
8057
8058 2003-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8059
8060 * Make-lang.in (java/jcf-write.o): Depend on $(TM_P_H).
8061 * jcf-write.c: Include "tm_p.h".
8062
8063 2003-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8064
8065 * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*.
8066
8067 2003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8068
8069 * builtins.c (java_build_function_call_expr): Renamed from
8070 build_function_call_expr. All callers changed.
8071
8072 * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H).
8073 * jcf-parse.c: Include tm_p.h.
8074
8075 * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
8076 warning.
8077
8078 2003-01-14 Tom Tromey <tromey@redhat.com>
8079
8080 * class.c (make_class_data): Check that super is compiled before
8081 building class reference to it.
8082
8083 2003-01-14 Andrew Haley <aph@redhat.com>
8084
8085 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
8086 varargs function -- correct.
8087
8088 2003-01-14 Andrew Haley <aph@redhat.com>
8089
8090 * decl.c (java_init_decl_processing): Temporarily back out previous patch.
8091
8092 2003-01-14 Andrew Haley <aph@redhat.com>
8093
8094 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
8095 varargs function -- correct.
8096
8097 * parse.y (patch_assignment): Copy the rhs of an assignment into a
8098 temporary if the RHS is a reference.
8099
8100 2003-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8101
8102 * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
8103 * keyword.h: Regenerated.
8104
8105 * All Files: Convert to ISO C style function definitions.
8106
8107 2003-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
8108
8109 * parse.y (check_pkg_class_access): ANSIfy definition.
8110
8111 2003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8112
8113 * decl.c, parse-scan.y, parse.y: Don't cast return value of
8114 xmalloc et al.
8115
8116 * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
8117
8118 2003-01-09 Geoffrey Keating <geoffk@apple.com>
8119
8120 Merge from pch-branch:
8121
8122 2002-12-02 Geoffrey Keating <geoffk@apple.com>
8123
8124 * Make-lang.in (java/gjavah.o): Update dependencies.
8125 * gjavah.c: Include ggc.h.
8126
8127 2002-08-16 Geoffrey Keating <geoffk@redhat.com>
8128
8129 * Make-lang.in (GCJH_OBJS): Add ggc-none.o.
8130 (JCFDUMP_OBJS): Add ggc-none.o.
8131 (java/jcf-dump.o): Depend on GGC_H.
8132 * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate
8133 CPool substructures.
8134 * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs.
8135 * jcf-dump.c: Include ggc.h.
8136
8137 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
8138
8139 * jcf.h (union cpool_entry): New.
8140 (struct CPool): Use gengtype to mark. Change field 'data' to be
8141 an array of unions.
8142 (struct JCF): Use gengtype to mark.
8143 (CPOOL_UINT): Update for new cpool_entry type.
8144 (CPOOL_USHORT1): Likewise.
8145 (CPOOL_USHORT2): Likewise.
8146 (CPOOL_FINISH): Use GC to free cpool subfields.
8147 * parse.h (struct parser_ctxt): Mark field current_jcf.
8148 * lex.c (java_init_lex): Use GC to allocate struct JCF.
8149 * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type.
8150 (main_jcf): Use gengtype to mark.
8151 (ggc_mark_jcf): Delete.
8152 (get_constant): Update for new cpool_entry type.
8153 (give_name_to_class): Likewise.
8154 (get_class_constant): Likewise.
8155 (init_outgoing_cpool): Use GGC to allocate struct CPool.
8156 (java_parse_file): Use GGC to allocate struct JCF.
8157 (init_jcf_parse): Don't call ggc_add_root.
8158 * jcf-reader.c (jcf_parse_constant_pool): Update for new
8159 cpool_entry type.
8160 * java-tree.h (current_jcf): Use gengtype to mark.
8161 (CPOOL_UTF): Update for new cpool_entry type.
8162 (outgoing_cpool): Use gengtype to mark.
8163 (struct lang_type): GC struct JCF and struct CPool.
8164 * config-lang.in (gtfiles): Add jcf.h.
8165 * constants.c (find_tree_constant): New.
8166 (set_constant_entry): Allocate cpool subfields using GGC. Update
8167 for new cpool_entry type.
8168 (find_constant1): Update for new cpool_entry type.
8169 (find_constant2): Likewise.
8170 (find_utf8_constant): Use find_tree_constant.
8171 (find_class_or_string_constant): Remove unnecessary cast to jword.
8172 Update for new cpool_entry type.
8173 (count_constant_pool_bytes): Update for new cpool_entry type.
8174 (write_constant_pool): Likewise.
8175 (alloc_name_constant): Use find_tree_constant.
8176 (build_constants_constructor): Update for new cpool_entry type.
8177
8178 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
8179
8180 * parse.y (mark_parser_ctxt): Delete.
8181 (goal): Don't use ggc_add_root.
8182 (create_new_parser_context): Use GC to allocate struct parser_ctxt.
8183 (java_pop_parser_context): Let GC free parser_ctxt.
8184 (java_parser_context_resume): Likewise.
8185 * parse.h (struct parser_ctxt): Use gengtype to mark.
8186 (ctxp): Likewise.
8187 (ctxp_for_generation): Likewise.
8188 * lex.h (struct java_lc_s): Mark for gengtype.
8189 (java_lexer): Rearrange for gengtype.
8190 * config-lang.in (gtfiles): Add lex.h, parse.h.
8191
8192 2003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8193
8194 * All Files: Remove PARAMS macro.
8195
8196 * expr.c, gjavah.c, javaop.h, jcf-dump.c, jcf-io.c, jcf-reader.c,
8197 jcf-write.c, jcf.h, jv-scan.c: Don't rely on the `DEFUN', `AND' or
8198 `__STDC__' macros.
8199
8200 * jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and
8201 VA_CLOSE.
8202
8203 2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
8204
8205 * Make-lang.in (java.install-common, java.uninstall,
8206 java.install-info, java.install-man): Prepend $(DESTDIR)
8207 to destination paths in all (un)installation commands.
8208 (java.install-common): Rewrite $(LN) command to support
8209 DESTDIR with "ln" as well as with "ln -s".
8210
8211 2003-01-08 Nathanael Nerode <neroden@gcc.gnu.org>
8212
8213 * java-tree.h: Protect against multiple inclusion.
8214
8215 2003-01-07 Tom Tromey <tromey@redhat.com>
8216
8217 * class.c (add_assume_compiled): Don't adjust parent if we're
8218 already at the root of tree.
8219
8220 2003-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8221
8222 * lang.c (dump_compound_expr): Prototype.
8223
8224 2003-01-03 Tom Tromey <tromey@redhat.com>
8225
8226 Fix for PR java/8712:
8227 * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR,
8228 when simply checking against `null'.
8229
8230 2003-01-03 Tom Tromey <tromey@redhat.com>
8231
8232 * gcj.texi (Standard Properties): Document http.proxyHost and
8233 http.proxyPort.
8234
8235 * gcj.texi (GNU Classpath Properties): Document new properties.
8236
8237 2003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
8238
8239 * java/jcf-reader.c, java/jvgenmain.c, java/keyword.gperf,
8240 java/lang-options.h, java/mangle.c, java/mangle_name.c,
8241 java/xref.c, java/zextract.c,java/zipfile.h: Fix copyright years.
8242
8243 2003-01-01 Steven Bosscher <s.bosscher@student.tudelft.nl>
8244
8245 * Make-lang.in, boehm.c, buffer.c,
8246 buffer.h, builtins.c, class.c,
8247 config-lang.in, constants.c,
8248 convert.h, decl.c, except.c,
8249 expr.c, java-except.h,
8250 java-tree.h, javaop.def,
8251 jcf-parse.c, jcf-write.c,
8252 jv-scan.c, jvgenmain.c,
8253 jvspec.c, keyword.gperf,
8254 keyword.h, lang-options.h,
8255 lang-specs.h, lang.c, lex.c,
8256 lex.h, mangle.c, mangle_name.c,
8257 parse-scan.y, parse.h, parse.y,
8258 typeck.c, verify.c, xref.c,
8259 xref.h: Replace "GNU CC" with
8260 "GCC" in the copyright header.
8261
8262 * check-init.c, gjavah.c, javaop.h,
8263 jcf-depend.c, jcf-dump.c, jcf-io.c,
8264 jcf-path.c, jcf-reader.c, jcf.h,
8265 zextract.c, zipfile.h: These files are
8266 "part of GCC". Also say "GCC" not "GNU CC".
8267
8268 2002-12-30 DJ Delorie <dj@redhat.com>
8269
8270 * Make-lang.in: Protect against texi2pod/pod2man failing.
8271
8272 2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
8273
8274 * gcj.texi: Use @copying.
8275
8276 2002-12-27 Mark Mitchell <mark@codesourcery.com>
8277
8278 * gjavah.c (print_name_for_stub_or_jni): Adjust call to
8279 print_cxx_classname.
8280 (print_cxx_classname): Add add_scope parameter.
8281 (print_class_decls): Do not emit a semicolon after the extern
8282 "Java" block.
8283 (process_file): Adjust calls to print_cxx_classname.
8284
8285 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
8286
8287 * gcj.texi: Include Cover Texts in man page.
8288
8289 2002-12-23 Jeff Sturm <jsturm@one-point.com>
8290
8291 * class.c (build_static_field_ref): Check FIELD_FINAL.
8292
8293 * constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
8294 instead of current_constant_pool_data_ref.
8295 * java-tree.h (current_constant_pool_data_ref): Undefine.
8296 (JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
8297 * jcf-parse.c (init_outgoing_cpool): Don't initialize
8298 current_constant_pool_data_ref.
8299
8300 * except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
8301 not build_internal_class_name.
8302
8303 * parse.y (patch_incomplete_class_ref): Always emit `class$' method.
8304 Use it when class ref isn't certain to be compiled.
8305
8306 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
8307
8308 * gcj.texi: Include gcc-common.texi.
8309 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
8310 $(srcdir)/doc/include/gcc-common.texi.
8311
8312 2002-12-22 Anthony Green <green@redhat.com>
8313
8314 * gcj.texi (Limitations): Add note about org.xml.sax and
8315 org.w3c.dom.
8316
8317 2002-12-20 Tom Tromey <tromey@redhat.com>
8318
8319 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
8320 where minimum case value is Integer.MIN_VALUE.
8321 Fixes PR java/8955.
8322
8323 2002-12-18 Andrew Haley <aph@redhat.com>
8324
8325 * parse.y (patch_invoke): Force evaluation order when `check' is
8326 set. For PR libgcj/8945.
8327
8328 2002-12-16 Mark Mitchell <mark@codesourcery.com>
8329
8330 * gcj.texi: Change version number to 3.4.
8331
8332 2002-12-05 Ranjit Mathew <rmathew@hotmail.com>
8333 Andrew Haley <aph@redhat.com>
8334
8335 * parse.y (source_end_java_method): Remove custom encoding of line
8336 numbers for a function decl before passing it to the back end.
8337
8338 2002-12-03 Andrew Haley <aph@redhat.com>
8339
8340 * class.c (make_class_data): New field, "chain".
8341 * decl.c (java_init_decl_processing): Likewise.
8342
8343 2002-12-02 Tom Tromey <tromey@redhat.com>
8344
8345 For PR java/8740:
8346 * parse.y (do_resolve_class): Handle qualified name via
8347 recursion.
8348
8349 2002-11-30 Zack Weinberg <zack@codesourcery.com>
8350
8351 * boehm.c, buffer.c, builtins.c, check-init.c, class.c,
8352 constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c,
8353 jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c,
8354 jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c,
8355 parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c:
8356 Include coretypes.h and tm.h.
8357 * Make-lang.in: Update dependencies.
8358
8359 2002-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8360
8361 * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant.
8362
8363 2002-11-25 Diego Novillo <dnovillo@redhat.com>
8364
8365 * jcf-reader.c: Don't expand JCF_readu4 inside the
8366 expansion of JCF_SKIP.
8367
8368 2002-11-25 Diego Novillo <dnovillo@redhat.com>
8369
8370 * jcf-reader.c: Don't expand JCF_readu4 inside the
8371 expansion of JCF_SKIP.
8372
8373 2002-11-22 Tom Tromey <tromey@redhat.com>
8374
8375 * parse.y (patch_binop): Cast right hand side of shift expression
8376 to `int'. Fixes PR java/8676.
8377
8378 2002-11-22 Ranjit Mathew <rmathew@hotmail.com>
8379 Andrew Haley <aph@redhat.com>
8380
8381 * gcc/java/jcf-write.c (write_classfile): Remove target
8382 class file, if it exists, before renaming the temporary
8383 class file to it.
8384
8385 2002-11-19 Jason Thorpe <thorpej@wasabisystems.com>
8386
8387 * jvspec.c (lang_specific_spec_functions): New.
8388
8389 2002-11-18 Tom Tromey <tromey@redhat.com>
8390
8391 Fix for PR java/7912:
8392 * expr.c (can_widen_reference_to): Allow cast of array to
8393 Cloneable or Serializable.
8394 * java-tree.h (java_lang_cloneable_identifier_node): Declare.
8395 (java_io_serializable_identifier_node): Likewise.
8396 * parse.y (java_lang_cloneable, java_io_serializable): Removed.
8397 (valid_ref_assignconv_cast_p): Use new identifier nodes.
8398 * lex.c (java_init_lex): Don't initialize java_lang_cloneable and
8399 java_io_serializable.
8400 * decl.c (java_init_decl_processing): Initialize
8401 java_lang_cloneable_identifier_node and
8402 java_io_serializable_identifier_node.
8403 (java_lang_cloneable_identifier_node): New global.
8404 (java_io_serializable_identifier_node): Likewise.
8405
8406 2002-11-14 Jens-Michael Hoffmann <jensmh@gmx.de>
8407
8408 * buffer.c: Remove unnecessary casts.
8409 * check-init.c: Likewise.
8410 * class.c: Likewise.
8411 * constants.c: Likewise.
8412 * decl.c: Likewise.
8413 * except.c: Likewise.
8414 * gjavah.c: Likewise.
8415 * jcf-io.c: Likewise.
8416 * jcf-parse.c: Likewise.
8417 * jcf-path.c: Likewise.
8418 * jvspec.c: Likewise.
8419 * lang.c: Likewise.
8420 * lex.c: Likewise.
8421 * verify.c: Likewise.
8422
8423 2002-11-06 Tom Tromey <tromey@redhat.com>
8424
8425 * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in
8426 a JNI header.
8427
8428 2002-11-05 Tom Tromey <tromey@redhat.com>
8429
8430 Fix for PR java/6388.
8431 * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while.
8432 * java-tree.h (enum java_tree_index): New values
8433 JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE.
8434 (decimal_int_max, decimal_long_max): New defines.
8435 * lex.c (yylex): Rewrote range checking. Sign extend literals.
8436 (error_if_numeric_overflow): Rewrote range checking.
8437 * decl.c (java_init_decl_processing): Initialize decimal_int_max,
8438 decimal_long_max.
8439
8440 2002-11-02 Tom Tromey <tromey@redhat.com>
8441
8442 * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE.
8443
8444 * class.c (make_method_value): Put class name, not signature, into
8445 `throws' field. For PR java/8415.
8446
8447 2002-10-24 Tom Tromey <tromey@redhat.com>
8448
8449 * gcj.texi (Invoking gij): Document --showversion.
8450 (Standard Properties): java.library.path now set.
8451
8452 2002-10-23 Tom Tromey <tromey@redhat.com>
8453
8454 * gjavah.c (decode_signature_piece): In JNI mode, print
8455 `jobjectArray' when array depth is nonzero.
8456 Fixes PR java/8296.
8457
8458 2002-10-15 Andrew Haley <aph@redhat.com>
8459
8460 * parse.y (patch_invoke): Call force_evaluation_order on a static
8461 arg list.
8462 (resolve_qualified_expression_name): Call force_evaluation_order
8463 on a arg list that is part of a Qualified Expression Name.
8464
8465 * lang.c (dump_compound_expr): New.
8466 (java_dump_tree): New.
8467
8468 2002-10-20 Ranjit Mathew <rmathew@hotmail.com>
8469
8470 * gcj.texi: Added item describing the GCJ runtime property
8471 "gnu.gcj.progname".
8472
8473 2002-10-15 Richard Henderson <rth@redhat.com>
8474
8475 * jcf-parse.c (get_constant): Fix type warning.
8476
8477 2002-10-15 Andrew Haley <aph@redhat.com>
8478
8479 * java-tree.h (java_inlining_merge_static_initializers): Declare.
8480 (java_inlining_map_static_initializers): Declare.
8481
8482 2002-10-14 Andrew Haley <aph@redhat.com>
8483
8484 * tree-inline.c (remap_block): All local class initialization
8485 flags go in the outermost scope.
8486 (expand_call_inline): Call java_inlining_map_static_initializers.
8487 (expand_call_inline): Call java_inlining_merge_static_initializers.
8488 * java/lang.c (merge_init_test_initialization): New.
8489 (java_inlining_merge_static_initializers): New.
8490 (inline_init_test_initialization): New.
8491 (java_inlining_map_static_initializers): New.
8492
8493 2002-10-11 Mark Wielaard <mark@klomp.org>
8494
8495 * gcj.texi (Compatibility): Add Limitations and Extensions section.
8496
8497 2002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8498
8499 * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer.
8500
8501 2002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8502
8503 * parse.y (merge_string_cste): Add parentheses around & within |.
8504
8505 2002-10-08 Tom Tromey <tromey@redhat.com>
8506
8507 * parse.y (variable_declarator_id): Simplify error path for
8508 array declarator error. For PR java/8003.
8509
8510 2002-10-08 Zack Weinberg <zack@codesourcery.com>
8511
8512 * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with
8513 bug_report_url.
8514
8515 2002-10-08 Andrew Haley <aph@redhat.com>
8516
8517 * parse.y (attach_init_test_initialization_flags): Check for
8518 error_mark_node.
8519
8520 2002-10-07 Anthony Green <green@redhat.com>
8521
8522 * parse.y (merge_string_cste): Fix bug in string concatenation.
8523
8524 2002-10-03 Michael Koch <konqueror@gmx.de>
8525
8526 * gcj.texi (Standard properties):
8527 Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit.
8528
8529 2002-10-02 Roger Sayle <roger@eyesopen.com>
8530
8531 PR optimization/6627
8532 * lang.c (java_init): If storing the vbit in function
8533 pointers, ensure that force_align_functions_log is atleast
8534 one to aid compatability with g++ vtables.
8535
8536 2002-10-01 Nathan Sidwell <nathan@codesourcery.com>
8537
8538 * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
8539 foul of type-based aliasing.
8540
8541 2002-09-30 Anthony Green <green@redhat.com>
8542
8543 * gcj.texi (Invoking jv-scan): Fix texinfo.
8544
8545 2002-09-28 Anthony Green <green@redhat.com>
8546
8547 * gcj.texi (Invoking jv-scan): Add --no-assert documentation.
8548 (Code Generation): Add -fno-assert documentation.
8549 * jv-scan.c (flag_assert): New global.
8550 (options): Add assert option.
8551 (help): Add --no-assert documentation.
8552 * parse-scan.y (flag_assert): New global.
8553 * lang.c (lang_f_options): Add -fassert/-fno-assert support.
8554 (flag_assert): New global.
8555 * java-tree.h (flag_assert): New global.
8556 * lex.c (java_lex): Obey flag_assert.
8557 * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when
8558 calling cc1.
8559
8560 2002-09-26 Andrew Haley <aph@redhat.com>
8561
8562 * expr.c (build_java_array_length_access): Check for null pointer.
8563 * expr.c (expand_java_arrayload): Likewise.
8564
8565 2002-09-21 Richard Henderson <rth@redhat.com>
8566
8567 * jcf-parse.c (get_constant): Decode from IEEE no matter
8568 what the target format.
8569
8570 2002-09-20 Kazu Hirata <kazu@cs.umass.edu>
8571
8572 * ChangeLog: Follow spelling conventions.
8573 * class.c: Likewise.
8574 * decl.c: Likewise.
8575 * expr.c: Likewise.
8576 * gjavah.c: Likewise.
8577 * java-tree.h: Likewise.
8578 * jcf-dump.c: Likewise.
8579 * jcf-parse.c: Likewise.
8580 * jvspec.c: Likewise.
8581 * lang.c: Likewise.
8582 * mangle.c: Likewise.
8583 * parse.y: Likewise.
8584
8585 2002-09-17 Tom Tromey <tromey@redhat.com>
8586
8587 * lex.c (java_read_unicode_collapsing_terminators): Handle case
8588 where \r appears at EOF. Fixes PR java/7950.
8589
8590 2002-09-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
8591
8592 * jvspec.c (lang_specific_driver): Remove unused variable.
8593
8594 2002-09-16 Geoffrey Keating <geoffk@apple.com>
8595
8596 * java-tree.h (union lang_tree_node): Add chain_next option.
8597
8598 2002-09-16 Richard Henderson <rth@redhat.com>
8599
8600 * jcf-parse.c (get_constant): Runtime check for IEEE format;
8601 use new real.h interface.
8602 * jcf-write.c (find_constant_index): Use new real.h interface.
8603 * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
8604
8605 2002-09-15 Kazu Hirata <kazu@cs.umass.edu>
8606
8607 * lang.c: Follow spelling conventions.
8608
8609 2002-09-11 Per Bothner <per@bothner.com>
8610
8611 * parse.y (fold_constant_for_init): If a VAR_DECL, convert numerical
8612 constant to the type of the field.
8613 (java_complete_tree): Remove now-redundant code.
8614
8615 * parse.y (fold_constant_for_init): 'null' is not a constant expr.
8616
8617 2002-09-03 Jesse Rosenstock <jmr@ugcs.caltech.edu>
8618
8619 For PR java/5794:
8620 * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
8621 return label if a ret instruction for the jsr has been reached.
8622
8623 2002-09-09 Ranjit Mathew <rmathew@hotmail.com>
8624
8625 * parse.y (DIR_SEPARATOR): Don't define.
8626 (check_class_interface_creation): Use IS_DIR_SEPARATOR.
8627
8628 2002-08-28 Andrew Haley <aph@redhat.com>
8629
8630 * verify.c (verify_jvm_instructions): Allow exception handler
8631 inside code that is being protected, but generate a warning.
8632 * except.c (link_handler): Initialize `expanded' in new eh_range.
8633 (binding_depth, is_class_level, current_pc): Declare extern.
8634
8635 2002-09-01 Mark Wielaard <mark@klomp.org>
8636
8637 * gcj.texi: Add chapter about system properties.
8638 Fixed some typos.
8639
8640 2002-08-26 Tom Tromey <tromey@redhat.com>
8641
8642 * parse.y (try_builtin_assignconv): Allow narrowing primitive
8643 conversion if RHS_TYPE is byte, short, or char.
8644
8645 2002-08-22 Tom Tromey <tromey@redhat.com>
8646
8647 * gcj.texi (Invoking gij): Document -cp and -classpath.
8648
8649 2002-08-21 Tom Tromey <tromey@redhat.com>
8650
8651 * Make-lang.in (java/jcf-path.o): Use $(datadir), not
8652 $(prefix)/share. For PR libgcj/7633.
8653
8654 For PR java/6005 and PR java/7611:
8655 * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
8656 (java_can_use_bit_fields_p): New function.
8657
8658 2002-08-16 Tom Tromey <tromey@redhat.com>
8659
8660 * gcj.texi (Class Initialization): Mention class initialization of
8661 arrays.
8662
8663 2002-07-30 Andrew Haley <aph@cambridge.redhat.com>
8664
8665 * Make-lang.in (java-tree-inline.o): New.
8666 (JAVA_OBJS): Add java-tree-inline.o.
8667 * parse.y (source_end_java_method): Call java_optimize_inline.
8668 (java_expand_method_bodies): Save method's tree in
8669 DECL_SAVED_TREE.
8670 (add_stmt_to_compound): Keep track of the number of statments.
8671 * lang.c (java_init): Enable flag_inline_trees.
8672 (java_post_options): If flag_inline_functions is on, enable
8673 flag_inline_trees instread.
8674 (decl_constant_value): New.
8675 (java_tree_inlining_walk_subtrees): New.
8676 * java-tree.h (DECL_NUM_STMTS): New macro.
8677 (java_optimize_inline): Declare.
8678 * expr.c (java_expand_expr): Allow a BLOCK to return a value.
8679 Handle a LABEL_EXPR.
8680 * decl.c (build_result_decl): If we already have a DECL_RESULT
8681 don't make another.
8682 (dump_function): New.
8683 (java_optimize_inline): New.
8684 (dump_function): New.
8685
8686 2002-08-13 Jesse Rosenstock <jmr@fulcrummicro.com>
8687
8688 For PR java/7483:
8689 * parse.y (build_assertion): Invert return from
8690 desiredAssertionStatus.
8691
8692 2002-08-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8693
8694 * jcf-write.c (get_access_flags): Return correct access flags for
8695 private and protected inner classes.
8696
8697 2002-08-08 Nathan Sidwell <nathan@codesourcery.com>
8698
8699 * java/Make-lang.in (java.mostlyclean): Remove coverage files.
8700
8701 2002-08-05 Geoffrey Keating <geoffk@redhat.com>
8702
8703 * mangle_name.c: Don't include obstack.h twice.
8704 * xref.c: Don't include obstack.h.
8705
8706 2002-08-04 Geoffrey Keating <geoffk@redhat.com>
8707
8708 * class.c: (permanent_obstack): Delete declaration.
8709 * constants.c: (permanent_obstack): Delete declaration.
8710 * except.c: (permanent_obstack): Delete declaration.
8711 * expr.c: (permanent_obstack): Delete declaration.
8712 * jcf-parse.c: (permanent_obstack): Delete declaration.
8713 (saveable_obstack): Delete declaration.
8714 * parse.h: (permanent_obstack): Delete declaration.
8715 * typeck.c: (permanent_obstack): Delete declaration.
8716
8717 2002-08-04 Joseph S. Myers <jsm@polyomino.org.uk>
8718
8719 * gcj.texi (version-gcc): Increase to 3.3.
8720
8721 2002-07-22 Tom Tromey <tromey@redhat.com>
8722
8723 * lex.c (java_lex): Check for `e' or `E' after 0.
8724
8725 2002-07-21 Richard Henderson <rth@redhat.com>
8726
8727 * lang.c (java_unsafe_for_reeval): New.
8728 (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
8729
8730 2002-07-21 Neil Booth <neil@daikokuya.co.uk>
8731
8732 * jcf-path.c (GET_ENV_PATH_LIST): Remove.
8733 (jcf_path_init): Use GET_ENVIRONMENT.
8734
8735 2002-07-10 Roger Sayle <roger@eyesopen.com>
8736 Zack Weinberg <zack@codesourcery.com>
8737
8738 * builtins.c (initialize_builtins): Remove defines that
8739 handled C/C++ specific junk hereby removed from builtins.def.
8740
8741 2002-07-07 Neil Booth <neil@daikokuya.co.uk>
8742
8743 * lang.c (java_post_options): Update prototype.
8744
8745 2002-07-05 Roger Sayle <roger@eyesopen.com>
8746
8747 * builtins.c (initialize_builtins): Ignore the additional
8748 parameter to DEF_BUILTIN. Handle more C/C++ specific junk in
8749 the builtins.def file.
8750
8751 2002-07-01 Tom Tromey <tromey@redhat.com>
8752
8753 For PR libgcj/7073:
8754 * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
8755 specially.
8756
8757 2002-07-01 Roger Sayle <roger@eyesopen.com>
8758
8759 * java/decl.c (builtin_function): Accept additional parameter.
8760 (java_init_decl_processing): Pass an additional NULL_TREE
8761 argument to builtin_function.
8762
8763 2002-06-29 T.J. Mather <tjmather@maxmind.com>
8764
8765 * gcj.texi: Fixed gcj invocation example so that it compiles.
8766
8767 2002-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8768
8769 * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
8770 * parse.y (mark_parser_ctxt): Likewise.
8771 (check_modifiers, declare_local_variables): Avoid incorrect
8772 hardcoded constant 10.
8773
8774 * lex.c (java_read_char): Avoid "comparison is always true"
8775 warning.
8776
8777 2002-06-25 Andreas Schwab <schwab@suse.de>
8778
8779 * expr.c (JSR): Avoid undefined operation on PC.
8780
8781 2002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8782
8783 * decl.c (clear_binding_level): Const-ify.
8784
8785 2002-06-13 Akim Demaille <akim@epita.fr>
8786
8787 * parse.y (class_declaration, interface_declaration): Make sure
8788 all their rules have an action, in order to avoid meaningless `$$
8789 = $1' and their type clashes.
8790
8791 2002-06-11 Tom Tromey <tromey@redhat.com>
8792
8793 * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
8794 * parse-scan.y (statement_without_trailing_substatement): Added
8795 assert_statement.
8796 (assert_statement): New rule.
8797 * java-tree.h (struct lang_type) [assertions]: New field.
8798 (TYPE_USES_ASSERTIONS): New macro.
8799 (CLASS_USES_ASSERTIONS): Likewise.
8800 (FIELD_SYNTHETIC): New define.
8801 * lex.c (java_lval;): Added ASSERT_TK.
8802 * parse.y (ASSERT_TK): Added.
8803 (statement_without_trailing_substatement): Added assert_statement.
8804 (assert_statement): New rule.
8805 (build_assertion): New function.
8806 (maybe_generate_pre_expand_clinit): Create and initialize
8807 $assertionsDisabled.
8808 (lookup_package_type): Removed decl.
8809 * keyword.h: Rebuilt.
8810 * keyword.gperf (assert): New token.
8811
8812 2002-06-10 Akim Demaille <akim@epita.fr>
8813
8814 * parse.y (interface_type_list, class_member_declaration)
8815 (unary_expression_not_plus_minus): Remove duplicate %type.
8816 Whitespace changes.
8817
8818 2002-06-09 Tom Tromey <tromey@redhat.com>
8819
8820 * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
8821
8822 * parse.y (method_header): Give error message in all cases.
8823 Fixes PR java/6865.
8824
8825 2002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8826
8827 Don't use RTL inlining. Fix for PR java/6820.
8828 * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
8829 (flag_really_inline): New.
8830 (java_decode_option): Set flag_really_inline if -finline-functions
8831 is seen.
8832 (java_post_options): New function. Turn off inlining unless
8833 flag_really_inline is set.
8834
8835 2002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8836
8837 * gjavah.c (throwable_p): Accept argument as either a classname or
8838 signature fragment. Create null-terminated classname string for super
8839 when calling itself recursively.
8840 (decode_signature_piece): Skip first character from class name
8841 signature when calling throwable_p.
8842
8843 2002-06-08 H.J. Lu (hjl@gnu.org)
8844
8845 * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
8846
8847 2002-06-04 Tom Tromey <tromey@redhat.com>
8848
8849 * jcf-write.c (perform_relocations): Optmize a goto to a goto.
8850
8851 2002-06-04 Michael Koch <konqueror@gmx.de>
8852
8853 * gcj.texi (Input Options): Fixed typo.
8854
8855 2002-06-04 Zack Weinberg <zack@codesourcery.com>
8856
8857 * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
8858 typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
8859 all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
8860 and all now-pointless local variables. Rename other local
8861 variables to reflect their not being handles.
8862
8863 * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
8864 #if JCF_USE_STDIO blocks.
8865
8866 * parse.y: Add missing semicolon at end of rule.
8867
8868 2002-06-03 Geoffrey Keating <geoffk@redhat.com>
8869
8870 * check-init.c (attach_initialized_static_class): Delete, unused.
8871 * parse.y: Use htab_t instead of struct hashtable, update
8872 all uses.
8873 * java-tree.h: Include hashtab.h instead of hash.h.
8874 (struct lang_decl_func): Use htab_t, set up for gengtype.
8875 (struct init_test_hash_entry): Delete.
8876 (struct treetreehash_entry): New.
8877 (java_treetreehash_find): New
8878 (java_treetreehash_new): New prototype.
8879 (java_treetreehash_create): New prototype.
8880 (java_mark_tree): Delete prototype.
8881 (java_hash_hash_tree_node): Delete prototype.
8882 (java_hash_compare_tree_node): Delete prototype.
8883 (attach_initialized_static_class): Delete prototype.
8884 * expr.c (build_class_init): Update to use java_treetreehash
8885 functions.
8886 (java_expand_expr): Update to use htab_t.
8887 (emit_init_test_initialization): Likewise.
8888 * decl.c (java_mark_tree): Delete.
8889 * class.c (init_test_hash_newfunc): Delete.
8890 (java_hash_hash_tree_node): Delete.
8891 (java_hash_compare_tree_node): Delete.
8892 (add_method_1): Update to use java_treetreehash functions.
8893 (JAVA_TREEHASHHASH_H): New macro.
8894 (java_treetreehash_hash): New function.
8895 (java_treetreehash_compare): New function.
8896 (java_treetreehash_find): New function.
8897 (java_treetreehash_new): New function.
8898 (java_treetreehash_create): New function.
8899 * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
8900
8901 * Make-lang.in (java/parse.o): Depend on debug.h.
8902 * java-tree.h (struct lang_identifier): Use gengtype.
8903 (union lang_tree_node): New.
8904 (struct lang_decl_func): Use gengtype.
8905 (struct lang_decl_var): Likewise.
8906 (struct lang_decl): Likewise.
8907 * parse.y: Include debug.h.
8908 * lang.c (LANG_HOOKS_MARK_TREE): Delete.
8909
8910 * lang.c (struct language_function): New dummy structure.
8911
8912 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
8913 descriminator for DECL_LANG_SPECIFIC.
8914 (struct lang_decl_func): Rename from struct lang_decl.
8915 (enum lang_decl_desc): New.
8916 (struct lang_decl): Make it a union. Update all the accessor macros.
8917 (struct lang_type): Use gengtype.
8918 * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
8919 * decl.c (java_dup_lang_specific_decl): All lang_decl structures
8920 are now the same size.
8921 (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
8922 use discriminator to mark DECL_LANG_SPECIFIC.
8923
8924 * Make-lang.in (gt-java-builtins.h): New rule.
8925 (java/builtins.o): Add dependency on gt-<filename>.h.
8926 * builtins.c: Use gengtype for roots.
8927 (union string_or_tree): Use gengtype.
8928 (struct builtin_record): Use gengtype.
8929 * config-lang.in (gtfiles): Add builtins.c.
8930
8931 * Make-lang.in (gt-java-class.h, gt-java-constants.h,
8932 gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
8933 gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
8934 gt-java-parse.h, gtype-java.h): Add rules to generate.
8935 (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
8936 (class.o): Add dependency on gt-*.h.
8937 (constants.o): Likewise.
8938 (decl.o): Likewise.
8939 (expr.o): Likewise.
8940 (jcf-parse.o): Likewise.
8941 (jcf-write.o): Likewise.
8942 (lang.o): Likewise.
8943 * config-lang.in (gtfiles): New.
8944 * class.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8945 * constants.c: Replace uses of ggc_add_* with GTY markers.
8946 Include gt-*.h.
8947 * decl.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8948 * expr.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8949 * java-tree.h: Replace uses of ggc_add_* with GTY markers.
8950 * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
8951 Include gt-*.h.
8952 * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
8953 Include gt-*.h.
8954 * lang.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8955 * mangle.c: Replace uses of ggc_add_* with GTY markers. Include
8956 gt-*.h.
8957 * parse.y: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
8958 Include gtype-java.h.
8959
8960 2002-06-02 Tom Tromey <tromey@redhat.com>
8961
8962 Fix for PR java/5913:
8963 * parse.y (patch_binop): Call patch_string on op1.
8964
8965 2002-06-02 Tom Tromey <tromey@redhat.com>
8966
8967 Fix for PR java/1343, PR java/6336:
8968 * parse.y (make_nested_class_name): Remove extraneous `else'; fix
8969 formatting. Changed return type.
8970 (anonymous_class_counter): Moved to top of file.
8971 (maybe_make_nested_class_name): Append number to class name for
8972 function-local classes.
8973
8974 2002-05-28 Zack Weinberg <zack@codesourcery.com>
8975
8976 * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
8977 * Make-lang.in: Update dependency lists.
8978
8979 2002-05-18 Mark Mitchell <mark@codesourcery.com>
8980
8981 * gjavah.c (throwable_p): Do not free the name of the class after
8982 passing it to find_class.
8983 * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
8984 * jcf-io.c (dirent.h): Include it.
8985 (fnmatch.h): Likewise.
8986 (compare_path): New function.
8987 (java_or_class_file): Likewise.
8988 (memoized_dirlist_entry): New type.
8989 (memoized_dirlist_lookup_eq): New function.
8990 (memoized_dirlists): New variable.
8991 (caching_stat): New function.
8992 (memoized_class_lookup_eq): New function.
8993 (memoized_class_lookups): Likewise.
8994 (find_class): Use memoized_class_lookups and caching_stat.
8995 * jcf.h (JCF_USE_SCANDIR): Define.
8996 * parse.y (java_expand_classes): Write the class files in reverse
8997 order.
8998
8999 2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9000
9001 * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
9002
9003 2002-05-13 Mark Mitchell <mark@codesourcery.com>
9004
9005 * jcf-write.c (write_classfile): Unlink the temporary file if it
9006 cannot be renamed. Use concat to build up the name of the
9007 temporary file.
9008
9009 2002-05-08 Mark Mitchell <mark@codesourcery.com>
9010
9011 * jcf-write.c (write_classfile): Write the file to a
9012 temporary file and then rename it.
9013
9014 2002-05-07 Tom Tromey <tromey@redhat.com>
9015
9016 * gjavah.c (throwable_p): Use xstrdup, not strdup.
9017
9018 Fix for PR java/1200:
9019 * gjavah.c (throwable_p): New function.
9020 (decode_signature_piece): Use it. A `WeakReference' isn't the
9021 same as a `jweak'.
9022 Include hashtab.h.
9023 (gcjh_streq): New function.
9024
9025 2002-05-07 Andreas Jaeger <aj@suse.de>
9026
9027 * parse.y (finish_for_loop): Fix if statement.
9028
9029 2002-05-06 Tom Tromey <tromey@redhat.com>
9030
9031 Fix for PR java/5941:
9032 * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
9033 loop update expression.
9034 (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
9035 * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
9036
9037 2002-05-04 Mark Wielaard <mark@klomp.org>
9038
9039 For PR java/6519:
9040 * parse.y (build_string_concatenation): Return just op1 only when op2
9041 is null and op1 is a STRING_CST, otherwise always construct a
9042 StringBuffer.
9043
9044 2002-04-27 Tom Tromey <tromey@redhat.com>
9045
9046 For PR java/6382:
9047 * parse.y (string_convert_int_cst): New function.
9048 (merge_string_cste): Use it.
9049
9050 2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
9051
9052 * java-tree.h (java_parse_file): Update.
9053 (java_set_yydebug): Remove.
9054 * jcf-parse.c (yydebug): Remove.
9055 (java_set_yydebug): Die.
9056 (java_parse_file): Update.
9057 * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
9058
9059 2002-04-24 Tom Tromey <tromey@redhat.com>
9060
9061 For PR java/6425:
9062 * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
9063 EXPR_WFL_QUALIFICATION of qual_wfl.
9064
9065 2002-04-23 Per Bothner <per@bothner.com>
9066
9067 * expr.c (PRE_JSR): Call NOTE_LABEL for return address.
9068 * java-tree.h (BCODE_RETURN_TARGET): Removed - never set.
9069 (BCODE_TARGET): Remove BCODE_RETURN_TARGET.
9070
9071 2002-04-23 Tom Tromey <tromey@redhat.com>
9072
9073 For PR java/6314:
9074 * jvspec.c (lang_specific_driver): Use --resource, not -R. Also
9075 recognize `-fcompile-resource='.
9076 * gcj.texi (Invoking gcj): Use --resource, not -R. Expanded text
9077 a bit.
9078
9079 2002-04-22 Alexandre Petit-Bianco <apbianco@redhat.com>
9080
9081 * jcf-parse.c: (yyparse): Don't prepend "./" to relative
9082 paths. Fixes PR java/2791.
9083
9084 2002-04-19 Andrew Haley <aph@redhat.com>
9085
9086 * jcf-write.c (push_long_const): lo, hi: New variables.
9087 Use rshift_double to extract the high part of a 64-bit long.
9088 Use WORD_TO_INT to extract the low part.
9089
9090 * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
9091 HOST_WIDE_INT for num. Use JPOOL_UINT to get it.
9092 CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
9093
9094 2002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
9095
9096 * typeck.c (incomplete_type_error): Remove.
9097
9098 2002-04-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9099
9100 * class.c (make_class_data): Set DECL_ALIGN on static class data,
9101 for hash synchronization.
9102 * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
9103 * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
9104 class_type_node.
9105
9106 2002-04-16 Mark Wielaard <mark@klomp.org>
9107
9108 * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
9109 negative zero.
9110
9111 2002-04-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9112
9113 Fix for PR java/6294:
9114 * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
9115 interfaces.
9116
9117 2002-04-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9118
9119 Fix for PR java/6085:
9120 * parse.y (patch_method_invocation): Always use build_access_to_thisn
9121 to get enclosing "this" argument for inner-class constructor
9122 invocation. Pass correct arguments to build_access_to_thisn.
9123
9124 2002-04-10 Andreas Jaeger <aj@suse.de>
9125
9126 * gcj.texi (Input Options): Fix extdirs patch.
9127
9128 2002-04-10 Anthony Green <green@redhat.com>
9129
9130 * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
9131
9132 2002-04-09 Anthony Green <green@redhat.com>
9133
9134 * gcj.texi (Input Options): Add --extdirs documentation.
9135 * jcf-dump.c (OPT_extdirs): New macro.
9136 (options): Add extdirs option.
9137 (help): Describe --extdirs.
9138 (main): Handle OPT_extdirs.
9139 * gjavah.c (OPT_extdirs): New macro.
9140 (options): Add extdirs option.
9141 (help): Describe --extdirs.
9142 (main): Handle OPT_extdirs.
9143 * jcf-path.c (jcf_path_init): Add extdirs support.
9144 (jcf_path_extdirs_arg): New function.
9145 (extensions): New variable to hold extensions path entries.
9146 * jvspec.c: Remove -fextdirs= when compiling main().
9147 * lang.c (java_decode_option): Handle -fextdirs=.
9148 * jcf.h (jcf_path_extdirs_arg): Declare new function.
9149 * Make-lang.in: Compile jcf-path with version info for use in
9150 identifying the appropriate libgcj.jar.
9151
9152 2002-04-08 Tom Tromey <tromey@redhat.com>
9153
9154 For PR libgcj/5303:
9155 * .cvsignore: Added rmic.1 and rmiregistry.1.
9156 * gcj.texi (Top): Link to new nodes.
9157 (Invoking rmic): New node.
9158 (Invoking rmiregistry): Likewise.
9159 * Make-lang.in (java.generated-manpages): Added rmic.1 and
9160 rmiregistry.1.
9161 (java.maintainer-clean): Likewise.
9162 ($(srcdir)/java/rmic.1): New target.
9163 ($(srcdir)/java/rmiregistry.1): Likewise.
9164 (java.install-man): Handle rmic.1 and rmiregistry.1.
9165
9166 2002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9167
9168 * gcj.texi (Invocation): Update JvAttachCurrentThread documentation.
9169 Add note about handling uncaught exceptions. Add an exception handler
9170 to example.
9171
9172 2002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9173
9174 * parse.y (resolve_qualified_expression_name): Clear "from_super" flag
9175 after using it to patch CALL_EXPR.
9176
9177 2002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9178
9179 * gcj.texi (Invocation): Document CNI invocation API.
9180
9181 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
9182
9183 * expr.c (truthvalue_conversion): Rename. Update.
9184 (expand_compare): Update.
9185 * java-tree.h (java_truthvalue_conversion): New.
9186 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
9187
9188 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
9189
9190 * java-tree.h (java_mark_addressable): New.
9191 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
9192 * typeck.c (mark_addressable): Rename, update.
9193
9194 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
9195
9196 * expr.c (build_java_binop): Update.
9197 * java-tree.h (java_signed_type, java_unsigned_type,
9198 java_signed_or_unsigned_type): Update.
9199 * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
9200 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
9201 * parse.y (patch_binop): Update.
9202 * typeck.c (signed_or_unsigned_type, unsigned_type,
9203 signed_type): Update.
9204
9205 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
9206
9207 * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
9208 (java_dummy_print): Remove.
9209 (lang_print_error): Rename. Exit early if inhibiting output.
9210 (inhibit_error_printing_function): New.
9211 (java_init): Don't set hook.
9212 (lang_init_source): Use new boolean.
9213
9214 2002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
9215
9216 * parse.y (do_resolve_class): Fix infinite recursion.
9217
9218 2002-03-29 Tom Tromey <tromey@redhat.com>
9219
9220 * parse.y (check_inner_circular_reference): Ignore incomplete
9221 types.
9222
9223 2002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
9224
9225 * Make-lang.in (builtins.o): Update.
9226 * boehm.c (get_boehm_type_descriptor): Update.
9227 * builtins.c: Include langhooks.h.
9228 * decl.c (java_init_decl_processing): Update.
9229 * java-tree.h (java_type_for_mode, java_type_for_size): New.
9230 * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
9231 Redefine.
9232 * typeck.c (type_for_mode, type_for_size): Update.
9233
9234 2002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
9235
9236 * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING.
9237
9238 2002-03-28 Tom Tromey <tromey@redhat.com>
9239
9240 * except.c (expand_end_java_handler): If the handler type is NULL,
9241 use java.lang.Throwable. Fixes PR java/5986.
9242
9243 2002-03-28 Alexandre Petit-Bianco <apbianco@redhat.com>
9244
9245 Fix for PR java/4715:
9246 * jcf-parse.c (parse_source_file_3): New function.
9247 (read_class): Call it.
9248 (java_parse_file): Likewise.
9249
9250 2002-03-28 Jan Hubicka <jh@suse.cz>
9251
9252 * java/lang.c (java_init_options): Set flag_trapping_math to 0.
9253
9254 2002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9255
9256 * parse.y (resolve_package): Initialize "decl".
9257 (lookup_package_type): Remove unused function.
9258
9259 2002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9260
9261 Fix for PR java/5993:
9262 * parse.y (resolve_package): Return the decl if resolution was
9263 successful. Don't special case "java.lang" and "java.lang.reflect"
9264 packages. Set type_name to the merged identifier.
9265 (resolved_qualified_expression_name): Print error using "name" if
9266 resolve_package returns NULL_TREE.
9267
9268 2002-03-27 Tom Tromey <tromey@redhat.com>
9269
9270 * expr.c (expand_invoke): Don't generate null pointer check if
9271 we're calling <init>.
9272
9273 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
9274
9275 * expr.c (java_lang_expand_expr): Rename java_expand_expr,
9276 fix prototype.
9277 * java-tree.h (java_lang_expand_expr): Similarly.
9278 * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
9279 (java_init): Don't set hook.
9280
9281 2002-03-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9282
9283 Fix for PR java/5850:
9284 * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
9285 context if field was not found in the current scope.
9286 * expr.c (lookup_field): Don't look in enclosing contexts.
9287
9288 2002-03-26 Tom Tromey <tromey@redhat.com>
9289
9290 Fix for PR java/5942:
9291 * parse.y (init_src_parse): Added sanity check.
9292 * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
9293 elements, not 11.
9294
9295 2002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
9296
9297 * decl.c (lang_mark_tree): Rename java_mark_tree.
9298 * java-tree.h (java_mark_tree): New.
9299 * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
9300
9301 2002-03-25 Zack Weinberg <zack@codesourcery.com>
9302
9303 * lex.c: Change java_perform_atof to take normal parameters
9304 instead of a pointer to a parameter block. Call it directly
9305 from java_lex.
9306
9307 2002-03-22 Mark Wielaard <mark@klomp.org>
9308
9309 Fix for PR java/5368:
9310 * parse.y (resolve_qualified_expression_name): Use decl not field_decl
9311 when printing error message.
9312
9313 2002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
9314
9315 * decl.c (maybe_build_cleanup): Remove.
9316
9317 2002-03-22 Tom Tromey <tromey@redhat.com>
9318
9319 Andrew Haley <aph@cambridge.redhat.com>
9320
9321 * expr.c (build_field_ref): Don't build a check if the field is a
9322 member of `this'.
9323
9324 2002-03-21 Eric Blake <ebb9@email.byu.edu>
9325
9326 Fix for PR java/6026:
9327 * lex.c (java_lex): Fix parsing of consecutive floats.
9328
9329 2002-03-21 Tom Tromey <tromey@redhat.com>
9330
9331 * parse.y (build_access_to_thisn): Stop when FROM is not an inner
9332 class.
9333
9334 2002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
9335
9336 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
9337 insert_block, getdecls, kept_level_p, global_bindings_p): New.
9338
9339 2002-03-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
9340
9341 * gcj.texi: @code{gcj} becomes @command{gcj}.
9342 @code{gcc} becomes @command{gcc}.
9343 GcjRaw changed to gnu.gcc.RawData.
9344
9345 2002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
9346
9347 * decl.c (start_java_method): Use new hook.
9348 * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
9349 (java_init): Remove old hook.
9350
9351 2002-03-18 Alexandre Petit-Bianco <apbianco@redhat.com>
9352
9353 * builtins.c (define_builtin): Do nothing if `type' is null.
9354 Fixes PR java/5876.
9355
9356 2002-03-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9357
9358 * parse.y (parser_check_super_interface): Fix error message
9359 grammar/order.
9360
9361 2002-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9362
9363 * jcf-parse.c (get_constant): Delete unused variables.
9364
9365 2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
9366
9367 * java-tree.h (java_parse_file): New.
9368 * jcf-parse.c (yyparse): Rename java_parse_file.
9369 * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
9370
9371 2002-03-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9372
9373 * parse.y (craft_constructor): Return the constructor decl.
9374 (java_expand_classes): Update comments.
9375 (lookup_method_invoke): Call fix_constructors immediately for
9376 anonymous class. Fixes PR java/5935.
9377
9378 2002-03-15 Anthony Green <green@redhat.com>
9379
9380 * jcf-parse.c (yyparse): Don't emit class registration
9381 constructor when compiling resource files.
9382
9383 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9384
9385 * lang.c (java_tree_code_type, java_tree_code_length,
9386 tree_code_name): Delete.
9387 (tree_code_type, tree_code_length, tree_code_name): Define.
9388 (java_init): Don't try to copy into the various tree_code
9389 arrays.
9390
9391 2002-03-12 Tom Tromey <tromey@redhat.com>
9392
9393 * jcf-parse.c (get_constant) [CONSTANT_String]: String values are
9394 UTF-8, not UCS-2. Fixes PR java/5923.
9395
9396 * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
9397 a call_expr wrapped in a convert. Fixes PR java/5848.
9398
9399 2002-03-12 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9400
9401 * jcf-write.c (write_classfile): Improve error strings.
9402
9403 2002-03-11 Eric Blake <ebb9@email.byu.edu>
9404
9405 * lex.c: Adjust comments to GNU standards.
9406
9407 2002-03-11 Eric Blake <ebb9@email.byu.edu>
9408
9409 Fix for PR java/5902:
9410 * lex.c (java_lex): Fix parsing of literals.
9411
9412 2002-03-11 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9413
9414 * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
9415 to prevent it getting evaluated twice in the store checking case.
9416 * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
9417 examining OBJECT.
9418
9419 2002-03-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9420
9421 * decl.c (java_init_decl_processing): Make sure class_type_node
9422 alignment is not less than 64 bits if hash synchronization is enabled.
9423
9424 2002-03-08 Per Bothner <per@bothner.com>
9425
9426 * parse.y (java_complete_lhs): Check if patch_assignment
9427 returned an error-mark.
9428
9429 * parse.y (try_builtin_assignconv): Don't special-case zero.
9430
9431 2002-03-08 Per Bothner <per@bothner.com>
9432
9433 Fix for PR java/5812.
9434 * expr.c (build_java_jsr): Take pc arguments, and do lookup_label
9435 here instead of in JSR macro. Likewise with load_type_state call.
9436 Do the latter on if the return_pc has been verified (the jsr returns).
9437 (JSR): Now just call build_java_jsr.
9438
9439 2002-03-07 Jeff Sturm <jsturm@one-point.com>
9440
9441 * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define.
9442 (java.install-common): Link native driver to
9443 JAVA_TARGET_INSTALL_NAME.
9444
9445 2002-03-05 David Billinghurst <David.Billinghurst@riotinto.com>
9446
9447 * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED
9448 * builtins.c(sin_builtin): Likewise
9449 * builtins.c(sqrt_builtin): Likewise
9450
9451 2002-03-03 Zack Weinberg <zack@codesourcery.com>
9452
9453 * java/expr.c, java/jcf-parse.c, java/lex.c:
9454 Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
9455 REAL_ARITHMETIC blocks unconditional. Delete some further
9456 #ifdef blocks predicated on REAL_ARITHMETIC.
9457
9458 2002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9459
9460 * class.c (init_class_processing): Use ARRAY_SIZE in lieu of
9461 explicit sizeof/sizeof.
9462 * decl.c (java_init_decl_processing): Likewise.
9463 * jcf-parse.c (init_jcf_parse): Likewise.
9464 * parse.y (init_src_parse): Likewise.
9465
9466 2002-03-02 Per Bothner <per@bothner.com>
9467
9468 Make --CLASSPATH by a synonym for --classpath and -classpath.
9469 Implement --bootclasspath.
9470 * jcf-path.c (classpath_u): Rename static variable to classpath_user.
9471 (classpath_l): Remove.
9472 (jcf_path_CLASSPATH_arg): Remove.
9473 (jcf_path_bootclasspath_arg): New function.
9474 (jcf_path_seal): Simplify accordingly.
9475
9476 * jcf.h (jcf_path_bootclasspath_arg): New declarations.
9477 (jcf_path_CLASSPATH): Remove declaration.
9478 * jvspec.c (jvgenmain_spec): Also accept -fbootclasspath*.
9479 (lang_specific_driver): Translate -bootclasspath.
9480 * lang-options.h: Add --bootclasspath. Update --CLASSPATH.
9481 * lang.c (decode_lang_options): Do jcf_path_init first.
9482 Handle -fCLASSPATH same as -fclasspath. Also process -fbootclasspath.
9483 * gjavah.c: Also handle --bootclasspath.
9484 Handle --CLASSPATH as a synonum for --classpath.
9485 * jcf-dump.c: Likewise.
9486
9487 "." is not part of system path, but is the default for --classpath.
9488 * jcf-path.c (jcf_path_init): Don't add "." to sys_dirs.
9489 (jcf_path_seal): Add "." if no CLASSPATH specified.
9490
9491 * gcj.texi: Document changes.
9492
9493 2002-03-01 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9494
9495 * expr.c (build_java_arraystore_check): Fix formatting.
9496
9497 2002-02-28 Alexandre Petit-Bianco <apbianco@redhat.com>
9498
9499 Fix for PR java/5758, java/5632:
9500 * jcf-parse.c (load_class): Renamed local variable, consider `.' an
9501 inner-class separator too.
9502 * parse.y (do_resolve_class): New local `decl_result.'
9503 Progressively build a name for what can have been loaded.
9504
9505 2002-02-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9506
9507 * expr.c (java_array_data_offset): Removed function.
9508 (JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
9509 (build_java_array_length_access): Obtain "length" value using a
9510 COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
9511 (build_java_arrayaccess): Correct comment. Access "data" using a
9512 COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
9513 (build_java_arraystore_check): New function.
9514 (expand_java_arraystore): Use build_java_arraystore_check.
9515 * parse.y (patch_assignment): Simplify code to insert a store check
9516 when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
9517 * check-init.c (check_init): Update to reflect that an array length
9518 access is now a COMPONENT_REF.
9519 * gcj.texi (Code Generation): Improve documentation of
9520 -fno-bounds-check. Add documentation for -fno-store-check.
9521 * java-tree.h (flag_store_check): Declare.
9522 (build_java_arraystore_check): Declare.
9523 * lang.c (flag_store_check): Initialize to 1.
9524 (lang_f_options): Add store-check option.
9525 * jvspec.c: Don't pass store-check option to jvgenmain.
9526 * lang-options.h: Add help string for -fno-store-check.
9527
9528 2002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
9529
9530 * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
9531 * java-tree.h (java_dup_lang_specific_decl): New.
9532 * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
9533
9534 2002-02-27 Zack Weinberg <zack@codesourcery.com>
9535
9536 * builtins.c, decl.c: Delete traditional-mode-related code
9537 copied from the C front end but not used, or used only to
9538 permit the compiler to link.
9539
9540 2002-02-22 Tom Tromey <tromey@redhat.com>
9541
9542 Fix for PR java/2369:
9543 * jvspec.c (verify_class_name): New function.
9544 (lang_specific_driver): Call it.
9545 (JAVA_START_CHAR_P): New macro.
9546 (JAVA_PART_CHAR_P): Likewise.
9547
9548 2002-02-22 Per Bothner <per@bothner.com>
9549
9550 * class.c: Change vtable to be more compatible with g++ v3 abi.
9551 (get_dispatch_table): Prepend offset-to-top (always 0) and
9552 type_info pointer (currently unimplemented hence NULL) to vtable.
9553 Specifically, prepend offset-to-top and typeinfo ptr (currently null).
9554 (make_class_data): Variable dtable_start_offset is sizeof 2 pointers.
9555 Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
9556 (build_dtable_decl): Add declarations for new fields.
9557
9558 2002-02-20 Per Bothner <per@bothner.com>
9559
9560 * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
9561 to finit$ (otherwise generate_bytecode_insns drops it). However, we
9562 don't need to set it on the COMPOUND_EXPR - the caller does that.
9563
9564 2002-02-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
9565
9566 * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option
9567 `--CLASSPATH' becomes `--classpath.'
9568 * gjavah.c: Likewise.
9569 * jcf-dump.c: Likewise.
9570 * lang-options.h: Likewise.
9571 * lang.c: Likewise.
9572 * jcf-path.c: Updated comment.
9573 (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.'
9574 (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.'
9575 * jcf.h (jcf_path_CLASSPATH_arg): Ditto.
9576 (jcf_path_CLASSPATH_arg): Ditto.
9577 (classpath_u): Updated leading comment.
9578
9579 2002-02-20 Per Bothner <per@bothner.com>
9580
9581 * builtins.c (check_for_builtin): New function.
9582 (build_call_or_builtin): Remove.
9583 * java-tree.h: Update accordingly.
9584 * expr.c (expand_invoke): Use build + check_for_builtin instead
9585 of build_call_or_builtin.
9586 * parse.y (patch_invoke): Likewise. This avoids needlessly creating
9587 a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
9588 flag (which had caused jcf-write to incorrectly emit invokevirtual).
9589
9590 2002-02-17 Tom Tromey <tromey@redhat.com>
9591
9592 * java-tree.h (TYPE_STRICTFP): New macro.
9593 (struct lang_type) [strictfp]: New field.
9594 (CLASS_STRICTFP): New macro.
9595 (METHOD_STRICTFP): New macro.
9596 (struct lang_decl) [strictfp]: New field.
9597 * parse.y (method_header): Disallow strictfp constructor or
9598 abstract method.
9599 (STRICT_TK): Move before MODIFIER_TK.
9600 * parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
9601 (METHOD_MODIFIERS): Likewise.
9602 (INTERFACE_MODIFIERS): Likewise.
9603 * jcf-write.c (get_access_flags): Likewise.
9604 * class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
9605 (add_method_1): Likewise.
9606 (get_access_flags_from_decl): Likewise.
9607 * jcf-dump.c (print_access_flags): Print in standard order. Also,
9608 recognize strictfp flag.
9609 * jcf.h (ACC_STRICT): New define.
9610
9611 2002-02-12 David Billinghurst <Davod.Billinghurst@riotinto.com>
9612
9613 * class.c(build_utf8_ref): Move declaration of decl_size
9614
9615 2002-02-07 Tom Tromey <tromey@redhat.com>
9616
9617 * gcj.texi (Input Options): --CLASSPATH does not suppress system
9618 path.
9619
9620 2002-02-04 Anthony Green <green@redhat.com>
9621
9622 * class.c (build_utf8_ref): Put UTF-8 constants into merged
9623 sections if available.
9624
9625 2002-02-04 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9626
9627 * parse.y (java_expand_classes): Fix typo in static field loop.
9628
9629 2002-02-02 Richard Henderson <rth@redhat.com>
9630
9631 * class.c (add_field): Mark static fields external.
9632 (build_class_ref): Remove redundant set.
9633 * parse.y (java_expand_classes): Mark static fields of classes
9634 to be compiled as local.
9635 * jcf-parse.c (parse_class_file): Likewise.
9636
9637 2002-02-02 Nic Ferrier <nferrier@tapsellferrier.co.uk>
9638
9639 * gcj.texi (About CNI): New node.
9640
9641 2002-02-01 Craig Rodrigues <rodrigc@gcc.gnu.org>
9642
9643 PR java/5080
9644 * jcf-parse.c : Check for HAVE_LOCALE_H before using
9645 setlocale() with LC_CTYPE as a parameter.
9646 * jv-scan.c: Same.
9647
9648 2002-01-31 Joseph S. Myers <jsm28@cam.ac.uk>
9649
9650 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
9651 Follow GNU Coding Standards for --version.
9652
9653 2002-01-28 Tom Tromey <tromey@redhat.com>
9654
9655 * expr.c (build_jni_stub): Ensure storage for `meth' is
9656 generated.
9657 * parse.y (java_complete_expand_methods): Set
9658 current_function_decl before building JNI stub.
9659
9660 2002-01-26 Andreas Tobler <a.tobler@schweiz.ch>
9661
9662 * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
9663 BUILT_IN_SQRTF.
9664
9665 2002-01-22 Tom Tromey <tromey@redhat.com>
9666
9667 * decl.c (java_init_decl_processing): Use add_predefined_file.
9668 Predefine RawData.java.
9669 (predef_filenames): Removed.
9670 (java_init_decl_processing): Don't register predef_filenames.
9671 * jcf-parse.c (add_predefined_file): New function.
9672 (predefined_filename_p): Rewrote.
9673 (predefined_filename_p): No longer static.
9674 * decl.c (java_init_decl_processing): Call initialize_builtins.
9675 * Make-lang.in (JAVA_OBJS): Added builtins.o.
9676 (java/builtins.o): New target.
9677 * builtins.c: New file.
9678 * parse.y (patch_invoke): Use build_call_or_builtin.
9679 * java-tree.h (build_call_or_builtin): Declare.
9680 (initialize_builtins): Declare.
9681 (java_set_exception_lang_code): Removed unused declaration.
9682 (PREDEF_FILENAMES_SIZE): Removed.
9683 (java_tree_index): Added JTI_PREDEF_FILENAMES.
9684 (predef_filenames): New define.
9685 (add_predefined_file): Declare.
9686 (predefined_filename_p): Declare.
9687 * expr.c (expand_invoke): Use build_call_or_builtin.
9688
9689 2002-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9690
9691 * parse.y (patch_switch_statement): Fix format specifier.
9692
9693 2002-01-16 Tom Tromey <tromey@redhat.com>
9694
9695 More for PR java/5365:
9696 * gjavah.c (print_stub_or_jni): Cause exception to be thrown by
9697 default.
9698 (process_file): Generate include for
9699 java.lang.UnsupportedOperationExceptions.
9700
9701 2002-01-15 Andreas Jaeger <aj@suse.de>
9702
9703 * .cvsignore: Add man pages.
9704
9705 2002-01-15 Tom Tromey <tromey@redhat.com>
9706
9707 Fix for PR java/5365:
9708 * gjavah.c (process_file): Turn class name into a file name.
9709
9710 2002-01-14 Matthias Klose <doko@debian.org>
9711
9712 * gcj.texi: Fix whitespace and formatting errors in the
9713 synopsis of the man pages. Update copyright.
9714
9715 2002-01-14 Tom Tromey <tromey@redhat.com>
9716
9717 For PR libgcj/5303:
9718 * Make-lang.in (java.install-man): Handle jv-convert man page.
9719 (java.generated-manpages): Added jv-convert.1.
9720 (java.uninstall): Remove jv-convert.1.
9721 (java.maintainer-clean): Likewise.
9722 ($(srcdir)/java/jv-convert.1): New target.
9723 * gcj.texi (Top): Link to jv-convert node.
9724 (Individual utilities): Likewise.
9725 (Invoking jv-convert): New node.
9726
9727 2001-01-10 Jeff Sturm <jsturm@one-point.com>
9728 Martin Kahlert <martin.kahlert@infineon.com>
9729
9730 * jcf-parse.c (get_constant): Don't swap lo/hi for big
9731 endian targets when HOST_BITS_PER_WIDE_INT >= 64.
9732
9733 2002-01-03 Graham Stott <grahams@redhat.com>
9734
9735 * class.c (compile_resource_file): Update copyright date.
9736 Constify filename parameter.
9737 (java-tree.h): Update copyright date.
9738 (compile_resource_file): Constify filename parameter.
9739
9740 2002-01-03 Graham Stott <grahams@redhat.com>
9741
9742 * gcc/jcf-parse.c: Update copyright date.
9743 (yyparse): Constify resource_filename.
9744
9745 2002-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9746
9747 * parse.y (src_parse_roots): Don't needlessly zero init.
9748
9749 2001-12-31 Tom Tromey <tromey@redhat.com>
9750
9751 * parse.y (dump_java_tree): New function.
9752 (source_end_java_method): Call it.
9753 (end_class_declaration): Likewise.
9754 * lang.c (java_decode_option): Call dump_switch_p.
9755
9756 2001-12-28 Tom Tromey <tromey@redhat.com>
9757
9758 * gen-table.pl: Don't process characters after \uffff. Added
9759 comment pointing to input file.
9760
9761 2001-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9762
9763 * gen-table.pl: Const-ify output. Document the location of a
9764 suitable unicode input file.
9765
9766 * chartables.h: Regenerate.
9767
9768 2001-12-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9769
9770 * chartables.h: Const-ify.
9771 * gjavah.c (options): Likewise.
9772 * jcf-dump.c (options): Likewise.
9773 * jv-scan.c (options): Likewise.
9774 * lex.c (java_start_char_p, java_part_char_p): Likewise.
9775 * parse.y (binop_lookup): Likewise.
9776
9777 2001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9778
9779 * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
9780 the static arrays that are output.
9781 * jvspec.c (jvgenmain_spec): Make static.
9782 * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
9783 * keyword.h: Regenerate.
9784 * lang.c (string_option, process_option_with_no, lang_f_options,
9785 lang_W_options): Const-ify.
9786 * lex.c (java_lex): Likewise.
9787
9788 2001-12-21 Richard Henderson <rth@redhat.com>
9789
9790 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
9791 (get_boehm_type_descriptor): ... here. Arrange for the
9792 TREE_TYPE to get set properly.
9793
9794 2001-12-21 Richard Henderson <rth@redhat.com>
9795
9796 * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
9797 only if the target requires collect2.
9798
9799 * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
9800
9801 2001-12-20 Tom Tromey <tromey@redhat.com>
9802
9803 For PR java/4509:
9804 * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
9805 CAN_COMPLETE_NORMALLY for the node.
9806 * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
9807 generate code for second branch if first branch can't complete
9808 normally.
9809 (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
9810 the loop head if the loop body can't complete normally.
9811
9812 2001-12-20 Tom Tromey <tromey@redhat.com>
9813
9814 For PR java/4766:
9815 * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
9816 case where `finally' clause can't complete normally.
9817
9818 2001-12-20 Tom Tromey <tromey@redhat.com>
9819
9820 Fixes PR java/5057:
9821 * parse.y (analyze_clinit_body): Added this_class parameter.
9822 Check for more cases where we must keep <clinit>.
9823 (maybe_yank_clinit): Cleaned up flow control.
9824
9825 2001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9826
9827 * decl.c (java_init_decl_processing): Don't initialize
9828 finit_leg_identifier_node.
9829 * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
9830 (finit_leg_identifier_node): Remove.
9831 (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
9832
9833 2001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9834
9835 * mangle.c (mangle_member_name): Don't special-case for
9836 NO_DOLLAR_IN_LABEL.
9837 * mangle_name.c (unicode_mangling_length): Likewise.
9838 (append_unicode_mangled_name): Likewise.
9839 * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
9840 code.
9841
9842 2001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9843
9844 * expr.c (build_java_array_length_access): Don't force null pointer
9845 check unless flag_check_references is set.
9846
9847 2001-12-20 Tom Tromey <tromey@redhat.com>
9848
9849 Fix for PR java/3417:
9850 * parse.y (patch_assignment): Added special processing for
9851 `return'.
9852 (patch_return): Don't convert booleans to integers, and don't
9853 special-case `null'.
9854
9855 2001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
9856
9857 * config-lang.in (diff_excludes): Remove.
9858
9859 2001-12-17 Joseph S. Myers <jsm28@cam.ac.uk>
9860
9861 * gcj.texi: Update link to GCC manual.
9862
9863 2001-12-17 Tom Tromey <tromey@redhat.com>
9864
9865 * parse.y (link_nested_class_to_enclosing): Removed useless
9866 statement.
9867
9868 2001-12-16 Tom Tromey <tromey@redhat.com>
9869
9870 * mangle.c (mangle_method_decl): Never emit `C2' constructor.
9871 Fixes PR java/5088.
9872
9873 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
9874
9875 * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
9876 jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
9877 spelling errors.
9878
9879 2001-12-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9880
9881 * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
9882
9883 2001-12-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9884
9885 * decl.c (java_init_decl_processing): Build otable_type correctly.
9886 otable_decl is an otable_type.
9887
9888 2001-12-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9889
9890 * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
9891 otable_type, otable_ptr_type, method_symbol_type,
9892 method_symbols_array_type, method_symbols_array_ptr_type): New
9893 field/global tree definitions.
9894 (flag_indirect_dispatch): New flag.
9895 * decl.c (java_init_decl_processing): Initialize new otable and
9896 otable_syms type nodes and decls. Add new field "index" to
9897 method_type_node.
9898 * class.c (build_method_symbols_entry): New function.
9899 (make_method_value): Set "index" to to method's vtable index for
9900 virtual methods when indirect-dispatch is not used.
9901 (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
9902 and set vtable_method_count to -1. Set otable and otable_syms field
9903 if indirect-dispatch is used and there was something to put in them.
9904 (build_method_symbols_entry): New function.
9905 (emit_offset_symbol_table): New function.
9906 * expr.c (get_offset_table_index): New function.
9907 (build_invokevirtual): Build array reference to otable at the index
9908 returned by get_offset_table_index, and use the result as the vtable
9909 offset.
9910 (build_invokeinterface): Similar.
9911 * jcf-parse.c (yyparse): If indirect-dispatch, call
9912 emit_offset_symbol_table at the end of compilation, after all classes
9913 have been generated.
9914 * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
9915 * lang.c (flag_indirect_dispatch): Define.
9916 (lang_f_options): Add indirect-dispatch flag.
9917
9918 2001-12-14 Matthias Klose <doko@debian.org>
9919
9920 * gcj.texi: Markup for man page generation. Document missing
9921 options printed by <tool> --help.
9922 Terminate description of gij's -ms option with a dot.
9923 * Make-lang.in ($(srcdir)/java/*.1): New targets.
9924 (java.generated-manpages java.install-man, java.uninstall,
9925 java-maintainer-clean) Updated.
9926
9927 2001-12-14 Hans Boehm <Hans_Boehm@hp.com>
9928
9929 * class.c (get_dispatch_table): Fix java vtable layout
9930 for TARGET_VTABLE_USES_DESCRIPTORS.
9931 * decl.c (java_init_decl_processing): Initialize
9932 alloc_no_finalizer_node, finalize_identifier_node.
9933 * expr.c (class_has_finalize_method): New function.
9934 (expand_java_NEW): Generate calls for finalizer-free allocation.
9935 (build_invokevirtual): Fix java vtable layout for
9936 TARGET_VTABLE_USES_DESCRIPTORS.
9937 * java-tree.h (enum java_tree_index): New entries:
9938 JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
9939 (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
9940 (class_has_finalize_method): declare.
9941 (HAS_FINALIZER_P): New macro.
9942 * parse.y (patch_invoke): Generate calls for finalizer-free
9943 allocation.
9944
9945 2001-12-12 Matthias Klose <doko@debian.org>
9946
9947 * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
9948 whitespace at end of line.
9949
9950 2001-12-11 Tom Tromey <tromey@redhat.com>
9951
9952 * lex.c (java_init_lex): Define wfl_to_string as
9953 gnu.gcj.runtime.StringBuffer unless generating bytecode.
9954
9955 2001-12-11 Jeff Sturm <jsturm@one-point.com>
9956
9957 * class.c (make_method_value): Use null_pointer_node to
9958 represent empty exception table.
9959
9960 2001-12-10 Tom Tromey <tromey@redhat.com>
9961
9962 * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
9963
9964 2001-12-10 Douglas B. Rupp <rupp@gnat.com>
9965
9966 * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
9967
9968 2001-12-09 Per Bothner <per@bothner.com>
9969
9970 * check-init.c (current_switch_has_default): New static field.
9971 (check_init): Case DEFAULT_EXPR: Set current_switch_has_default.
9972 Case SWITCH_EXPR: Save/restore current_switch_has_default. If no
9973 DEFAULT_EXPR seen, simulate a default alternative that copies state.
9974
9975 2001-12-09 Tom Tromey <tromey@redhat.com>
9976
9977 * check-init.c (check_init): Don't allow pre- or post- increment
9978 or decrement of final variable.
9979 (final_assign_error): Minor error message rewording.
9980
9981 2001-12-08 Tom Tromey <tromey@redhat.com>
9982
9983 * java-tree.h: Fixed typo.
9984
9985 * gjavah.c (decompile_method): Don't decompile to `return this'
9986 for static methods.
9987
9988 * gjavah.c (cxx_keywords): Re-sorted.
9989 * lex.c (cxx_keywords): Re-sorted.
9990
9991 * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
9992 else.
9993
9994 * gjavah.c (print_namelet): Clear subnamelets.
9995 (HANDLE_METHOD): Set `method_printed' earlier.
9996
9997 2001-12-07 Tom Tromey <tromey@redhat.com>
9998
9999 * lang.c (lang_f_options): Added
10000 optimize-static-class-initialization.
10001 (java_decode_option): Removed special case.
10002
10003 2001-12-07 Per Bothner <per@bothner.com>
10004
10005 * check-init.c (check_init): Fix typo freeing memory twice.
10006
10007 2001-12-05 Per Bothner <per@bothner.com>
10008
10009 Restore support for static class initialization optimization.
10010 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
10011 * check-init.c (check_int): At end of BLOCK handle initialization
10012 blocks, which used to be done in java_complete_expand_method but did
10013 not handle the case where check_for_initialization might allocate
10014 more than a word of bits.
10015 * decl.c (lang_make_tree): The smic field is now a tree.
10016 * expr.c (build_class_init): Set DECL_FUNCTION_INIT_TEST_CLASS field.
10017 * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE): New macro.
10018
10019 * parse.y (emit_test_initialization): Combine hash_lookup calls.
10020
10021 * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
10022 Change from a hash table to a list.
10023 (struct_lang_decl): Change field 'smic' to match.
10024 * class.c (add_method_1): Initialize
10025 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
10026 * parse.y (adjust_init_test_initialization): Removed - inlined into -
10027 (java_expand_method_bodies): -here, since 'smic' is now a list.
10028 (patch_invoke): Add to 'smic' list, instead of hash_lookup.
10029
10030 * check-init.c (WORD_SIZE): Use BITS_PER_UNIT.
10031
10032 * class.c (java_hash_compare_tree_node): Fix casts.
10033
10034 2001-12-04 Per Bothner <per@bothner.com>
10035
10036 * check-init.c: Handle definite unassignment to finals in addition
10037 to definite assignment.
10038 (loop_current_locals): New field.
10039 (num_current_locals, int start_current_locals, num_current_words):
10040 Make static.
10041 (SET_P, CLEAR_P, SET_BIT): Add needed but missing parentheses.
10042 (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
10043 CLEAR_ASSIGNED, CLEAR_UNASSIGNED): New macros.
10044 (get_variable_decl, check_final_reassigned): New functions.
10045 (check_init, check_bool_init): Modify as needed for checking finals.
10046 (check_for_initialization): Take extra parameter and return void.
10047 Do extra start-up logic to check final fields for assignment.
10048 * parse.y (check_static_final_variable_assignment_flag,
10049 reset_static_final_variable_assignment_flag, check_final_assignment,
10050 check_final_variable_local_assignment_flag,
10051 reset_final_variable_indirect_assignment_flag,
10052 reset_final_variable_global_assignment_flag): Remove functions.
10053 (java_complete_expand_methods, outer_field_access_fix,
10054 patch_assignment): Remove no-longer used logic.
10055 * java-tree.h (DECL_FIELD_FINAL_IUD): Change usage and comments.
10056 * parse.y (register_fields, java_complete_tree): Update accordingly.
10057
10058 * check-init.c (ALLOC_WORDS/FREE_WORDS): Use xmalloc/free, not alloca.
10059 (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER): New.
10060 (check_cond_init, check_bool2_init): Use DECLARE_BUFFERS.
10061
10062 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Temporarily turn off.
10063
10064 * java-tree.h (DECL FINAL): New bit-field.
10065 (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL): Define as DECL_FINAL.
10066 (LOCAL_FINAL_P): Use DECL_FINAL rather than old LOCAL_FINAL.
10067 (DECL_INIT_CALLS_THIS): New macro.
10068 (struct lang_decl): New bit-field init_calls_this.
10069 (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
10070 DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
10071 (DECL_BIT_INDEX): Change to use pointer_alias_set since we now
10072 use it for both local variables and final fields.
10073 (struct lang_decl_var): Remove bit-fields final_liic, final_ierr,
10074 and local_final.
10075 (struct lang_type): Remove hfv bit-field.
10076 (check_for_initialization): Change to return void.
10077
10078 * java-tree.h (IS_ARRAY_LENGTH_ACCESS): New macros.
10079 * expr.c (build_java_array_length_access): Set IS_ARRAY_LENGTH_ACCESS.
10080 * check-init.c (final_assign_error): New helper function.
10081 (check_final_reassigned, check_init): Use it.
10082 (check_init): Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
10083
10084 * java-tree.h (struct lang_decl, struct lang_decl_var): Change all
10085 bit-fields to unsigned.
10086
10087 2001-12-03 Per Bothner <per@bothner.com>
10088
10089 * parse.y (patch_binop): Minor constant folding.
10090
10091 * parse.y (build_current_thisn): Shorter 'buffer'.
10092
10093 2001-12-03 Per Bothner <per@bothner.com>
10094
10095 * decl.c (complete_start_java_method): Now generate TRY_FINALLY_EXPR
10096 instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
10097 * jcf-write.c (generate_bytecode_insns): Remove support for
10098 CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
10099 * check-init.c (check_init): Likewise.
10100
10101 2001-12-03 Per Bothner <per@bothner.com>
10102
10103 * verify.c (subroutine_nesting): New function.
10104 (verify_jvm_instructions): Use it to fix logic for checking that
10105 we're done with the current subroutine.
10106
10107 * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
10108 OPCODE_instanceof use POP_TYPE macro for better diagnostics.
10109
10110 2001-12-03 Per Bothner <per@bothner.com>
10111
10112 * jcf.h: Fix obvious typo in comment.
10113 * typeck.c (build_null_signature): Add comment.
10114
10115 2001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
10116
10117 * expr.c: Remove leading capital from diagnostic messages, as
10118 per GNU coding standards.
10119 * jcf-io.c: Similarly.
10120 * jcf-parse.c: Similarly.
10121 * jv-scan.c: Similarly.
10122 * jvspec.c: Similarly.
10123 * mangle.c: Similarly.
10124
10125 2001-12-02 Tang Ching-Hui <nicholas@cs.nthu.edu.tw>
10126 Alexandre Petit-Bianco <apbianco@redhat.com>
10127
10128 * expr.c (build_java_arrayaccess): Call save_expr on array for
10129 correct evaluation order, modified comment, fixed indentation.
10130 * parse.y: (patch_assignment): Correctly extract the array base
10131 from the tree generate by build_java_arrayaccess, added comments.
10132 (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
10133 Fixes PR java/3096, PR java/3803, PR java/3965.
10134
10135 2001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
10136
10137 * expr.c (expand_byte_code): Remove trailing periods from messages.
10138 * jcf-parse.c (load_class, jcf_parse): Similarly.
10139 * jcf-write.c (generate_classfile): Similarly.
10140 * lex.c (java_lex): Similarly.
10141
10142 2001-11-30 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10143
10144 * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
10145
10146 2001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
10147
10148 * Make-lang.in (java.generated-manpages): New dummy target.
10149
10150 2001-11-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10151
10152 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10153 ASM_FINAL_SPEC.
10154 (lang_specific_pre_link): Use set_input to set input_filename.
10155 Append `main' here.
10156 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10157 (main): Fix definition.
10158 Strip `main' from classname.
10159 Fixes PR java/227.
10160
10161 2001-11-18 Roger Sayle <roger@eyesopen.com>
10162
10163 * parse.h (java_expand_switch): Remove old prototype.
10164
10165 2001-11-18 Tom Tromey <tromey@redhat.com>
10166
10167 Fix for PR java/1401:
10168 * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
10169 arg0 is null.
10170 (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
10171 correctly.
10172
10173 2001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
10174
10175 * lang.c (finish_parse): Rename to java_finish.
10176 (LANG_HOOKS_FINISH, java_finish): New.
10177
10178 2001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
10179
10180 * decl.c (init_decl_processing): Rename java_init_decl_processing.
10181 * java-tree.h: New prototype.
10182 * lang.c (java_init): Update prototype. Combine with old init_parse.
10183
10184 2001-11-13 Tom Tromey <tromey@redhat.com>
10185
10186 * gjavah.c (method_signature): New global.
10187 (HANDLE_METHOD): Set it.
10188 (decompile_return_statement): New function.
10189 (decompile_method): Use it.
10190 (print_method_info): Removed `synth' argument.
10191
10192 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
10193
10194 * java-tree.h (java_set_yydebug): New.
10195 * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
10196 * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
10197 (print_lang_decl, print_lang_type, print_lang_identifier,
10198 print_lang_statistics, lang_print_xnode): Remove.
10199
10200 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
10201
10202 * jcf-parse.c (init_lex): Remove.
10203 * lang.c (language_string, lang_identify): Remove.
10204 (struct lang_hooks): Constify.
10205 (LANG_HOOKS_NAME): Override.
10206 (init_parse): Update.
10207
10208 2001-11-08 Andreas Franck <afranck@gmx.de>
10209
10210 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
10211 program_transform_name the way suggested by autoconf.
10212 (java.install-common): Also transform auxiliary program names with
10213 program_transform_name.
10214
10215 2001-11-08 Tom Tromey <tromey@cygnus.com>
10216
10217 * parse.y (trap_overflow_corner_case): New rule.
10218 (unary_expression): Use it.
10219 * lex.c (java_init_lex): Don't set minus_seen.
10220 (yylex): Don't use minus_seen. Communicate overflow to parser for
10221 it to handle.
10222 (error_if_numeric_overflow): New function.
10223 * parse.h (minus_seen): Removed field.
10224 (JAVA_RADIX10_FLAG): New define.
10225
10226 2001-11-07 Tom Tromey <tromey@redhat.com>
10227
10228 Patch for PR java/1414:
10229 * parse.y (case_label_list): New global.
10230 (goal): Register case_label_list with GC.
10231 (java_complete_lhs): Save new case on case_label_list.
10232 (patch_switch_statement): Check for duplicate case labels.
10233
10234 2001-11-07 Alexandre Petit-Bianco <apbianco@redhat.com>
10235
10236 * parse.y (patch_assignment): Removed unused third argument.
10237 (java_complete_lhs): Removed unused third argument to patch_assignment.
10238
10239 2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
10240
10241 * lang.c: Include langhooks-def.h.
10242 * Make-lang.in: Update.
10243
10244 2001-10-31 Zack Weinberg <zack@codesourcery.com>
10245
10246 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
10247
10248 2001-10-29 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10249
10250 * mangle.c (find_compression_record_match): Don't match compression
10251 records for package name elements unless they occur at the start of
10252 the name. Fix for PR java/4717.
10253
10254 2001-10-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10255
10256 * expr.c (expand_java_field_op): Don't special-case references to
10257 java.lang.PRIMTYPE.TYPE.
10258 (build_primtype_type_ref): Removed.
10259 * java-tree.h (build_primtype_type_ref): Remove prototype.
10260 * parse.y (maybe_build_primttype_type_ref): Removed.
10261 (complete_function_arguments): Don't special-case references to
10262 java.lang.PRIMTYPE.TYPE.
10263 (patch_assignment): Likewise.
10264 (array_constructor_check_entry): Likewise.
10265
10266 2001-10-24 Alexandre Petit-Bianco <apbianco@redhat.com>
10267
10268 * mangle.c (static tree compression_table): Fixed leading comment.
10269 * parse.h (struct parser_ctxt): Fixed field comment.
10270 * parse.y (check_pkg_class_access): New prototype, fixed leading
10271 comment, new parameter used to emit error only if passed as true.
10272 (parse_check_super): Pass extra argument to check_pkg_class_access.
10273 (do_resolve_class): Likewise.
10274 (process_imports): Likewise.
10275 (read_import_dir): Fixed indentation.
10276 (find_in_imports_on_demand): New local class_type_name. Local
10277 node_to_use deleted. while loop changed into for loop. Report
10278 multiple definition only for accessible classes. Improved error
10279 message.
10280 (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
10281 assigned to parameter list, fixed indentation. while loop changed
10282 into for loop, restore TREE_CHAIN on local `tem' before the next
10283 iteration.
10284
10285 2001-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10286
10287 * lang.c (lang_get_alias_set): Deleted.
10288
10289 2001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10290
10291 * gjavah.c (jni_print_char): Fix thinko in last change.
10292
10293 * gjavah.c (jni_print_char, decode_signature_piece): Use
10294 safe-ctype macros and/or fold extra calls into fewer ones.
10295 * lex.c (java_read_unicode, java_lex): Likewise.
10296 * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
10297 JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
10298 * mangle_name.c (append_unicode_mangled_name,
10299 unicode_mangling_length): Likewise.
10300
10301 2001-10-17 Richard Henderson <rth@redhat.com>
10302
10303 * Make-lang.in (java/lang.o): Depend on langhooks.h.
10304
10305 2001-10-15 Alexandre Petit-Bianco <apbianco@redhat.com>
10306
10307 * lang.c (langhooks.h): Included.
10308 (LANG_HOOKS_INIT): Redefined.
10309 (LANG_HOOKS_INIT_OPTIONS): Likewise.
10310 (LANG_HOOKS_DECODE_OPTION): Likewise.
10311 (struct lang_hooks lang_hooks): New initialization.
10312
10313 2001-10-11 Per Bothner <per@bothner.com>
10314
10315 * parse.y (patch_synchronized_statement): Use a TRY_FINALLY_EXPR
10316 rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
10317 The former is simpler, and jcf-write.c handles it better.
10318 (java_complete_lhs): No longer need to handle CLEANUP_POINT_EXPR
10319 or WITH_CLEANUP_EXPR.
10320 * jcf-write.c: Revert Alex's change from 2000-10-18. It is no
10321 longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
10322
10323 * parse.y (patch_if_else_statement): If the condition is constant,
10324 optimize away the test.
10325
10326 2001-10-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10327
10328 * parse.y (patch_cast): Call patch_string on the first operand of
10329 the incoming node, update it if necessary. Fixes PR java/4510.
10330
10331 2001-10-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10332
10333 * parse.y (find_as_inner_class): Don't disregard the enclosing scope
10334 when name qualifier matches a package name.
10335
10336 2001-10-08 Tom Tromey <tromey@redhat.com>
10337
10338 Fix for PR java/4489:
10339 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
10340 force a new label when computing `body_block'.
10341
10342 2001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10343
10344 * jcf-io.c (format_uint): Const-ify.
10345 * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
10346 * lex.c (java_get_line_col): Likewise.
10347 * parse.y (build_incdec): Likewise.
10348
10349 2001-10-05 Alexandre Petit-Bianco <apbianco@redhat.com>
10350
10351 * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
10352 a NULL enclosing context if appropriate. Fixes PR java/4466.
10353
10354 2001-10-03 Alexandre Petit-Bianco <apbianco@redhat.com>
10355
10356 * parse.y (patch_assignment): Use lvalue's original TYPE when
10357 building the final COMPOUND_EXPR.
10358 (try_reference_assignconv): Fixed leading comment.
10359
10360 2001-09-26 Alexandre Petit-Bianco <apbianco@redhat.com>
10361
10362 * parse.y (check_final_variable_indirect_assignment): For
10363 COMPOUND_EXPR, return only if finals were found initialized
10364 properly, if not, keep on checking.
10365 (check_final_variable_global_assignment_flag): New local
10366 error_found, set when appropriate and used to decide whether to
10367 report uninitialized finals. Fixed typo in comment.
10368
10369 2001-09-22 Alexandre Petit-Bianco <apbianco@redhat.com>
10370
10371 * decl.c (init_decl_processing): Fixed typo in predef_filenames
10372 last three initializations. Fixes PR java/4360.
10373
10374 2001-09-21 Richard Henderson <rth@redhat.com>
10375
10376 * class.c (get_dispatch_table): Handle function descriptors.
10377 (build_dtable_decl): Likewise.
10378 * expr.c (build_invokevirtual): Likewise.
10379
10380 2001-09-20 Alexandre Petit-Bianco <apbianco@redhat.com>
10381
10382 * parse.y (patch_method_invocation): Build class initialization
10383 when static finals are used to qualify method invocation.
10384 Fixes PR java/4366.
10385
10386 2001-09-19 Alexandre Petit-Bianco <apbianco@redhat.com>
10387
10388 * parse.h: (WFL_STRIP_BRACKET): Re-written using
10389 build_type_name_from_array_name.
10390 (STRING_STRIP_BRACKETS): New macro.
10391 * parse.y (build_type_name_from_array_name): New function.
10392 (array_creation_expression:): Accumulate []s instead of [s.
10393 (cast_expression:): Accumulate []s instead of [s after cast type
10394 name.
10395 (build_array_from_name): Local string deleted, use
10396 build_type_name_from_array_name.
10397 (build_unresolved_array_type): Accumulate []s instead of [s after
10398 type name.
10399 (register_fields): Fixed comment.
10400 (resolve_class): Local name, base deleted, new locals tname and
10401 array_dims. Use build_type_name_from_array_name. Use array_dims to
10402 build array type.
10403 (purify_type_name): Use STRING_STRIP_BRACKETS.
10404
10405 2001-09-18 Andreas Jaeger <aj@suse.de>
10406
10407 * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
10408 * jv-scan.c: Likewise.
10409
10410 2001-09-17 Alexandre Petit-Bianco <apbianco@redhat.com>
10411
10412 * parse.y (patch_method_invocation): Inner class creation context
10413 check not enforced within constructors. Fixes PR java/1873.
10414
10415 2001-09-16 Tom Tromey <tromey@redhat.com>
10416
10417 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
10418 NOTE_PUSH for single-case push. Fixes PR java/4189.
10419
10420 2001-09-13 Alexandre Petit-Bianco <apbianco@redhat.com>
10421
10422 * java-tree.h (TYPE_IMPORT_LIST): New macro.
10423 (TYPE_IMPORT_DEMAND_LIST): Likewise.
10424 (struct lang_type): New fields import_list and import_demand_list.
10425 * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
10426 TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
10427 (do_resolve_class): New local saved_enclosing_type, initialized,
10428 passed as parameter to find_in_imports and find_in_imports_on_demand.
10429 (find_in_imports): Added paramater enclosing_type, use its
10430 TYPE_IMPORT_LIST when applicable.
10431 (find_in_imports_on_demand): Added parameter enclosing_type, use
10432 its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
10433 declaration and initialization.
10434 (fold_constant_for_init): Switch/restore current_class to the
10435 appropriate context.
10436
10437 2001-09-13 Mark Mitchell <mark@codesourcery.com>
10438
10439 * verify.c (verify_jvm_instructions): Fix typo.
10440
10441 2001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10442
10443 * expr.c (expand_invoke): Const-ification.
10444 * parse.y (patch_method_invocation): Likewise.
10445
10446 2001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10447
10448 * gjavah.c (cxx_keywords): Const-ification.
10449 * keyword.gperf (java_keyword): Likewise.
10450 * lang.c (java_tree_code_name): Likewise.
10451 * lex.c (cxx_keywords): Likewise.
10452 * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
10453
10454 2001-09-11 Richard Henderson <rth@redhat.com>
10455
10456 * parse.h (ctxp_for_generation): Mark extern.
10457
10458 2001-09-10 Richard Henderson <rth@redhat.com>
10459
10460 * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
10461
10462 2001-09-07 Matt Kraai <kraai@alumni.carnegiemellon.edu>
10463
10464 * typeck.c (java_array_type_length, build_prim_array_type):
10465 Represent empty arrays by NULL index.
10466
10467 2001-09-06 Alexandre Petit-Bianco <apbianco@redhat.com>
10468
10469 * java-tree.h (compile_resource_file): Grouped with other prototypes.
10470 * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
10471
10472 2001-09-06 Anthony Green <green@redhat.com>
10473
10474 * class.c (O_BINARY): Define if necessary.
10475 (registerResource_libfunc): Declare.
10476 (init_class_processing): Initilize registerResource_libfunc.
10477 (compile_resource_file): New function.
10478 * java-tree.h (resource_name): Declare.
10479 (compile_resource_file): Declare.
10480 * jcf-parse.c (yyparse): Handle compiling java resource files.
10481 * lang.c (java_decode_option): Handle -fcompile-resource option.
10482 * jvspec.c (lang_specific_driver): Handle -R flag for compiling
10483 resource files.
10484 * gcj.texi (Code Generation): Add documentation for -R flag.
10485
10486 2001-09-05 Alexandre Petit-Bianco <apbianco@redhat.com>
10487
10488 * jcf-write.c (generate_classfile): Issue an error in case of
10489 field/initial value mismatch.
10490 * parse.y (analyze_clinit_body): Keep <clinit> if an array is
10491 being initialized and we're generating bytecode.
10492 (java_complete_lhs): In MODIFY_EXPR section: added comments,
10493 set DECL_INITIAL properly when appropriate.
10494 Fixes PR java/4230
10495 Fixes PR java/4204
10496
10497 2001-09-01 Per Bothner <per@bothner.com>
10498
10499 * parse.y (maybe_yank_clinit): A field without an initializer is not
10500 relevant. All initializers except static final and constant require
10501 <clinit>, regardless of flag_emit_class_files.
10502
10503 2001-08-31 Per Bothner <per@bothner.com>
10504
10505 * class.c (set_constant_value): When not emitting class files, then a
10506 String ConstantValue is a utf8const_ptr_type.
10507
10508 2001-08-30 Per Bothner <per@bothner.com>
10509
10510 * jcf-write.c (generate_classfile): Check that field is primitive
10511 or string before emitting ConstantValue attribute.
10512
10513 2001-08-30 Per Bothner <per@bothner.com>
10514
10515 * parse.y (resolve_qualified_expression_name): If creating a
10516 COMPOUND_EXPR, set it's type correctly.
10517
10518 2001-08-30 Per Bothner <per@bothner.com>
10519
10520 * jcf-io.c (open_class): Set filename field.
10521
10522 * jcf-parse,c (parse_class_file): Set current_function_decl
10523 for better error message when Code attribute is missing.
10524
10525 * lang.c (put_decl_node, lang_print_error): Re-arrange for
10526 better diagnostics, especially for constructors.
10527
10528 2001-08-30 Per Bothner <per@bothner.com>
10529
10530 * jcf-write.c (generate_classfile): Don't write ConstantValue
10531 attribute if field is not final, for compatibility with jdk.
10532
10533 * jcf-write.c (generate_classfile): Convert ConstantValue values
10534 to correct type. Work-around for front-end bug.
10535 * class.c (set_constant_value): Error if constant has wrong type.
10536
10537 2001-08-30 Per Bothner <per@bothner.com>
10538
10539 * jcf-dump.c (print_constant): Fix fencepost error so "Float" and
10540 "Double" are printed at verbosity 1.
10541
10542 * jcf-dump.c (main): Disable flag_print_attributes if --javap.
10543
10544 * jcf-dump.c (SPECIAL_IINC): Remove unneeded casts to long.
10545
10546 2001-08-30 Alexandre Petit-Bianco <apbianco@redhat.com>
10547
10548 * parse.y (patch_assignment): Don't verify final re-assignment here.
10549 (java_complete_lhs): Verify assignments to finals calling
10550 patch_assignment. Verify re-assignments to finals before calling
10551 patch_assignment.
10552
10553 2001-08-29 Alexandre Petit-Bianco <apbianco@redhat.com>
10554
10555 * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
10556 Fixes PR java/1413
10557
10558 2001-08-28 Alexandre Petit-Bianco <apbianco@redhat.com>
10559
10560 * lex.c (java_lex): new local found_hex_digits. Set and then used
10561 in test to reject invalid hexadecimal numbers.
10562 * parse.y (java_complete_tree): Prevent unwanted cast with
10563 initialized floating point finals.
10564 (patch_binop): Emit a warning when detecting a division by zero,
10565 mark result not constant, don't simplify non integer division.
10566
10567 2001-08-28 Per Bothner <per@bothner.com>
10568
10569 * jcf-write.c (generate_bytecode_insns): For increments and
10570 decrements just recurse to push constant. Improvement on Mark's patch.
10571
10572 2001-08-28 Mark Mitchell <mark@codesourcery.com>
10573
10574 * jcf-write.c (generate_bytecode_insns): Generate an integer to
10575 real conversion for increments and decrements of reals.
10576
10577 2001-08-27 Alexandre Petit-Bianco <apbianco@redhat.com>
10578
10579 * parse.y (resolve_qualified_expression_name): Handle unresolved
10580 qualified expressions, prevent numerical qualifiers, fixed typo.
10581 Fixes PR java/4141
10582
10583 2001-08-24 Alexandre Petit-Bianco <apbianco@redhat.com>
10584
10585 * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
10586 don't report anything but deprecated class when marked so. Handle
10587 VAR_DECL.
10588 (patch_method_invocation): Check deprecation on methods and types.
10589 (patch_binop): code becomes an enum tree_code, added default: to
10590 switch to handle that. Detect division by zero, try to fold and
10591 return before using a subroutine.
10592
10593 2001-08-23 Alexandre Petit-Bianco <apbianco@redhat.com>
10594
10595 * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
10596 file smaller than 4 bytes.
10597 * parse.y (check_inner_circular_reference): New function.
10598 (check_circular_reference): Likewise.
10599 (array_initializer:): Accept {,}.
10600 (java_check_circular_reference): Rewritten using
10601 check_circular_reference and check_inner_circular_reference.
10602 (java_complete_expand_method): Unconditionally save and restore
10603 the unpurged exception list.
10604 (build_dot_class_method_invocation): Unmangle signature parameter.
10605
10606 2001-08-21 Tom Tromey <tromey@redhat.com>
10607
10608 * decl.c (init_decl_processing): Add `throws' field to method
10609 descriptor.
10610 * class.c (make_method_value): Compute `throws' field for method.
10611
10612 2001-08-22 Alexandre Petit-Bianco <apbianco@redhat.com>
10613
10614 * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
10615 circularity is detected.
10616 (ctors_unchecked_throws_clause_p): Fixed leading comment.
10617
10618 2001-08-17 Richard Henderson <rth@redhat.com>
10619
10620 * class.c (emit_register_classes): Add align parameter to
10621 call to assemble_integer.
10622
10623 2001-08-16 Alexandre Petit-Bianco <apbianco@redhat.com>
10624
10625 * jcf-parse.c (load_class): New locals saved and class_loaded. If
10626 loading a class_or_name fails, try considering an innerclass name
10627 and load the enclosing context.
10628 * parse.y (resolve_inner_class): New function.
10629 (find_as_inner_class): Added leading comment.
10630 (register_incomplete_type): Keep the current context as enclosing
10631 context for JDEP_FIELD dependencies.
10632 (do_resolve_class): Locals new_class_decl and super initialized to
10633 NULL. Call resolve_inner_class, explore the enclosing context
10634 superclass if necessary.
10635 Fixes PR java/4007
10636
10637 2001-08-16 Tom Tromey <tromey@redhat.com>
10638
10639 * jcf-dump.c (main): Updated for change to jcf_path_seal.
10640 * gjavah.c (main): Updated for change to jcf_path_seal.
10641 * lang.c (version_flag): New global.
10642 (java_decode_option): Recognize `-version'.
10643 (java_init): Update for change to jcf_path_seal.
10644 * jcf.h (jcf_path_seal): Added `print' argument.
10645 * jcf-path.c (jcf_path_seal): Added `print' argument.
10646
10647 2001-08-13 Zack Weinberg <zackw@panix.com>
10648
10649 * Make-lang.in (java/decl.o): Update dependencies.
10650 * decl.c: Include libfuncs.h, don't include toplev.h.
10651
10652 2001-08-12 Alexandre Petit-Bianco <apbianco@redhat.com>
10653
10654 * decl.c (init_decl_processing): exception_type_node,
10655 class_not_found_type_node, and no_class_def_found_type_node
10656 initialized. predef_filenames augmented accordingly.
10657 instinit_identifier_node initialized.
10658 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
10659 * java-tree.h (enum java_tree_index): New entries
10660 JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
10661 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
10662 (exception_type_node): New macro.
10663 (class_not_found_type_node): Likewise.
10664 (no_class_def_found_type_node): Likewise.
10665 (instinit_identifier_node): Likewise.
10666 (PREDEF_FILENAMES_SIZE): Adjusted.
10667 (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
10668 (struct lang_type): Fixed typo in bitfield name.
10669 (DECL_INSTINIT_P): New macro.
10670 (ID_INSTINIT_P): Likewise.
10671 * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
10672 attribute.
10673 * parse.y (encapsulate_with_try_catch): New function.
10674 (generate_instinit): Likewise.
10675 (build_instinit_invocation): Likewise.
10676 (ctors_unchecked_throws_clause_p): Likewise.
10677 (add_instance_initializer): Deleted.
10678 (build_instance_initializer): Likewise.
10679 (in_instance_initializer): Likewise.
10680 (check_method_redefinition): instinit$ not to be verified.
10681 (java_complete_expand_methods): Generate instinit$, simplified code.
10682 (build_dot_class_method): Eliminated unnecessary locals. Use
10683 encapsulate_with_try_catch, removed unnecessary code.
10684 (fix_constructors): New local iii. Use build_instinit_invocation.
10685 (patch_method_invocation): Added comment.
10686 (maybe_use_access_method): Don't consider instinit$.
10687 (find_applicable_accessible_methods_list): Shorten the search for
10688 instinit$ too.
10689 (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
10690 (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
10691 (patch_throw_statement): Likewise. Fixed typo.
10692
10693 2001-08-12 David Edelsohn <edelsohn@gnu.org>
10694
10695 Revert:
10696 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10697 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10698 ASM_FINAL_SPEC.
10699 (lang_specific_pre_link): Use set_input to set input_filename.
10700 Append `main' here.
10701 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10702 (main): Fix definition.
10703 Strip `main' from classname.
10704 Fixes PR java/227.
10705
10706 2001-08-11 Zack Weinberg <zackw@panix.com>
10707
10708 * lex.h: Don't include setjmp.h. Don't define
10709 SET_FLOAT_HANDLER or prototype set_float_handler.
10710
10711 2001-08-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10712
10713 * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
10714 `poplevel' in the right order.
10715
10716 2001-08-09 Richard Henderson <rth@redhat.com>
10717
10718 * Make-lang.in (class.o): Depend on TARGET_H.
10719 * class.c (emit_register_classes): Use target hooks instead of
10720 assemble_constructor and assemble_destructor.
10721
10722 2001-08-08 Alexandre Petit-Bianco <apbianco@redhat.com>
10723
10724 * check-init.c (flags.h): Include
10725 (check_init): Don't report uninitialized static class
10726 initialization flags, don't free bit index when doing static class
10727 initialization optimization.
10728 (check_for_initialization): Return type changed to `unsigned int.'
10729 (attach_initialized_static_class): New function.
10730 * class.c (add_method_1): Create the initialized static class
10731 table if necessary.
10732 (finish_class): Always emit deferred inline methods.
10733 * decl.c (emit_init_test_initialization): Moved to expr.c
10734 (complete_start_java_method): Don't traverse
10735 DECL_FUNCTION_INIT_TEST_TABLE.
10736 (lang_mark_tree): Mark hash tables in function decls.
10737 * expr.c (emit_init_test_initialization): Moved from decl.c.
10738 (build_class_init): Create LAG_DECL_SPECIFIC for the static class
10739 initialization flag, set DECL_CONTEXT and
10740 LOCAL_CLASS_INITIALIZATION_FLAG.
10741 (java_lang_expand_expr): Emit initialization code for static class
10742 initialized flags when entering block, if necessary.
10743 * gcj.texi (-fno-optimize-static-class-initialization): Documented.
10744 * java-tree.h (flag_optimize_sci): New global variable declaration.
10745 (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
10746 (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
10747 (LOCAL_FINAL_P): Fixed typo in comment.
10748 (FINAL_VARIABLE_P): Likewise.
10749 (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
10750 (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
10751 (struct lang_decl): New fields `ict', `smic' and `cif.'
10752 (check_for_initialization): New returned value for global.
10753 (attach_initialized_static_class): New global function.
10754 (STATIC_CLASS_INIT_OPT_P): New macro.
10755 * lang-options.h (-fno-optimize-static-class-initialization): New flag.
10756 * lang.c (java_decode_option): Handle
10757 `-fno-optimize-static-class-initialization'
10758 * parse.y (start_complete_expand_method): New function.
10759 (java_expand_method_bodies): Likewise.
10760 (attach_init_test_initialization_flags): Likewise.
10761 (adjust_init_test_initialization): Likewise.
10762 (emit_test_initialization): Likewise.
10763 (java_complete_expand_methods): Nullify abstract and native method
10764 bodies.
10765 (java_complete_expand_method): New locals `fbody', `block_body'
10766 and `exception_copy.' Reorganized: directly return on empty method
10767 bodies, call `start_complete_expand_method', remember definitely
10768 initialized static class in function, don't expand method bodies.
10769 (java_expand_classes): Call `java_expand_method_bodies' before
10770 `finish_class' when compiling to native.
10771 (resolve_expression_name): Use `orig' after building outer class
10772 field access.
10773 (patch_invoke): Remember static method invocations.
10774
10775 2001-08-06 Richard Henderson <rth@redhat.com>
10776
10777 * class.c (emit_register_classes): Pass a symbol_ref and priority
10778 to assemble_constructor.
10779
10780 2001-08-02 Alexandre Petit-Bianco <apbianco@redhat.com>
10781
10782 * java-tree.h (all_class_filename): New macro.
10783 (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
10784 (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
10785 newly created IDENTIFIER_NODE to `all_class_filename.'
10786
10787 2001-08-01 Jeff Sturm <jsturm@one-point.com>
10788
10789 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
10790 Use ggc_add_tree_root to register roots.
10791
10792 2001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
10793
10794 * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
10795 second operand calling check_init.
10796 * decl.c (complete_start_java_method): Swaped second and third
10797 arguments while creating WITH_CLEANUP_EXPR node.
10798 * jcf-write.c (generate_bytecode_insns): Use second operand
10799 instead of third when handling WITH_CLEANUP_EXPR.
10800 * parse.y (java_complete_lhs): Expand second operand of
10801 WITH_CLEANUP_EXPR nodes.
10802 (patch_synchronized_statement): Swaped second and third arguments
10803 while creating WITH_CLEANUP_EXPR node.
10804
10805 2001-07-18 Alexandre Petit-Bianco <apbianco@redhat.com>
10806
10807 * parse.y (create_interface): Avoid cyclic inheritance report when
10808 syntax error encountered during class definition.
10809 Fixes PR java/2956
10810
10811 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10812
10813 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
10814 ASM_FINAL_SPEC.
10815 (lang_specific_pre_link): Use set_input to set input_filename.
10816 Append `main' here.
10817 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
10818 (main): Fix definition.
10819 Strip `main' from classname.
10820 Fixes PR java/227.
10821
10822 2001-07-18 Tom Tromey <tromey@redhat.com>
10823
10824 For PR java/2812:
10825 * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
10826 * lex.c (java_new_lexer): Use ICONV_CONST.
10827 (java_read_char): Likewise.
10828 * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
10829 (jv-scan$(exeext)): Likewise.
10830
10831 2001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
10832
10833 * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
10834 * parse.y (check_class_interface_creation): Allow `private' if the
10835 enclosing is not an interface.
10836 (create_interface): Interface tagged public if the enclosing
10837 context is an interface.
10838 (create_class): Class tagged public if the enclosing context
10839 is an interface.
10840 Fixes PR java/2959
10841
10842 2001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
10843
10844 * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
10845 Fixes PR java/2665
10846
10847 2001-07-14 Tim Josling <tej@melbpc.org.au>
10848
10849 * check-init.c (check_init): Remove references to EXPON_EXPR.
10850
10851 2001-07-13 Alexandre Petit-Bianco <apbianco@redhat.com>
10852
10853 * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
10854 TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
10855 Fixes PR java/3602
10856
10857 2001-07-13 Tom Tromey <tromey@redhat.com>
10858
10859 * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
10860 invocation.
10861
10862 2001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
10863
10864 * parse.y (patch_method_invocation): Don't override primary if one
10865 is already provided, but let this$<n> be built. Fixed comment.
10866
10867 2001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
10868
10869 * parse.y (empty_statement:): Report empty statement error only
10870 when found at class declaration level.
10871 Fixes PR java/3635
10872
10873 2001-07-12 Tom Tromey <tromey@redhat.com>
10874
10875 * expr.c (expand_load_internal): New function.
10876 (LOAD_INTERNAL): Use it.
10877
10878 2001-07-11 Alexandre Petit-Bianco <apbianco@redhat.com>
10879
10880 * parse.y (verify_constructor_super): Compare anonymous class ctor
10881 args with `valid_method_invocation_conversion_p.'
10882 Fixes PR java/3285
10883
10884 2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
10885
10886 * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
10887 `-fsyntax-only.' Fixes PR java/3248
10888
10889 2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
10890
10891 * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
10892
10893 2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
10894
10895 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
10896 current function is static. Fixes PR java/1970
10897
10898 2001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10899
10900 * parse.y (patch_method_invocation): Add enclosing context to ctor
10901 calls if necessary. Fixes PR java/2953
10902
10903 2001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10904
10905 * parse.y (resolve_package): Abort if qualified expression member
10906 isn't right.
10907 (qualify_ambiguous_name): Don't qualify as type if `this' in use.
10908 Fixes PR java/1391
10909
10910 2001-07-07 Zack Weinberg <zackw@stanford.edu>
10911
10912 * verify.c: Don't use // comments.
10913
10914 2001-07-05 Tom Tromey <tromey@redhat.com>
10915
10916 * lang.c (flag_assume_compiled): Removed.
10917 * java-tree.h (flag_assume_compiled): Removed.
10918 * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
10919 -fhash-synchronization, -fuse-divide-subroutine,
10920 -fcheck-references, -femit-class-file, -femit-class-files,
10921 -fassume-compiled. Updated --encoding information. Changed
10922 -foutput-class-dir to `-d'.
10923
10924 2001-07-04 Daniel Berlin <dan@cgsoftware.com>
10925
10926 * jcf-parse.c (parse_class_file): Add lineno parameter to
10927 debug_start_source_file call.
10928
10929 2001-07-04 Joseph S. Myers <jsm28@cam.ac.uk>
10930
10931 * gcj.texi: Use gpl.texi.
10932 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
10933 dependencies and use doc/include in search path.
10934
10935 2001-07-03 Jeff Sturm <jsturm@one-point.com>
10936
10937 * parse.y (fix_constructors): Test if a CALL_EXPR invokes
10938 `this'. If so, don't build instance initializers.
10939
10940 2001-07-03 Alexandre Petit-Bianco <apbianco@redhat.com>
10941
10942 * parse.y (resolve_expression_name): Improved error message for
10943 inner class cases. Fixes PR java/1958
10944
10945 2001-06-28 Gabriel Dos Reis <gdr@codesourcery.com>
10946
10947 * lang.c: #include diagnostic.h
10948 (lang_print_error): Add a `diagnostic_context *' parameter.
10949 (java_dummy_print): Likewise.
10950 * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
10951
10952 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
10953
10954 * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
10955 * jcf.h (typedef struct JCF): New bitfield `finished.'
10956 (JCF_FINISH): Set `finished.'
10957 (JCF_ZERO): Reset `finished.'
10958 Fixes PR java/2633
10959
10960 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
10961
10962 * parse.y (class_body_declaration:): Don't install empty instance
10963 initializers.
10964 Fixes PR java/1314
10965
10966 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
10967
10968 * class.c (set_super_info): Call `set_class_decl_access_flags.'
10969 (set_class_decl_access_flags): New function.
10970 * java-tree.h (set_class_decl_access_flags): New prototype.
10971 * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
10972 (parse_class_file): New local `decl_max_locals.' Take wide types
10973 into account to compute DECL_MAX_LOCALS.
10974 * parse.y (type_import_on_demand_declaration:): Ignore duplicate
10975 imports on demand.
10976
10977 2001-06-22 Jan van Male <jan.vanmale@fenk.wau.nl>
10978
10979 * zipfile.h: Use GCC_JCF_H instead of JCF_H.
10980
10981 2001-06-20 Alexandre Petit-Bianco <apbianco@redhat.com>
10982
10983 * class.c (java_hash_tree_node): Fixed indentation in leading comment.
10984 * parse.y (do_resolve_class): Moved comments out to leading comment
10985 section. Removed local `start', New local `_ht' and
10986 `circularity_hash.' Record `enclosing' in hash table and search
10987 it to detect circularity. Use `enclosing' as an argument to
10988 `lookup_cl.' Free the hash table when done.
10989
10990 2001-06-19 Tom Tromey <tromey@redhat.com>
10991
10992 * lex.c (java_read_char): Disallow invalid and overlong
10993 sequences. Fixes PR java/2319.
10994
10995 2001-06-05 Jeff Sturm <jsturm@one-point.com>
10996
10997 * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
10998
10999 2001-06-04 Alexandre Petit-Bianco <apbianco@redhat.com>
11000
11001 * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
11002 arguments accordingly.
11003
11004 2001-06-02 Joseph S. Myers <jsm28@cam.ac.uk>
11005
11006 * gcj.texi: Move contents to just after title page.
11007
11008 2001-06-01 Alexandre Petit-Bianco <apbianco@redhat.com>
11009
11010 * parse.y (type_literals:): Use `build_incomplete_class_ref' with
11011 builtin type.
11012 (patch_incomplete_class_ref): Build the class ref, build the class
11013 init if necessary, complete the tree.
11014 Fixes PR java/2605
11015
11016 2001-05-31 Alexandre Petit-Bianco <apbianco@redhat.com>
11017
11018 * parse.y (lookup_field_wrapper): Test `name' code.
11019 (resolve_qualified_expression_name): Test `qual_wfl' code.
11020 (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
11021 handle `qual_wfl' by code.
11022 (maybe_build_primttype_type_ref): Test `wfl' code.
11023
11024 2001-05-23 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
11025
11026 * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
11027 fdl.texi.
11028 (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls. Create
11029 the dvi file in the java directory.
11030
11031 2001-05-25 Sam TH <sam@uchicago.edu>
11032
11033 * gen-table.pl javaop.h jcf.h lex.h,
11034 parse.h: Fix header include guards.
11035
11036 2001-05-23 Joseph S. Myers <jsm28@cam.ac.uk>
11037
11038 * jv-scan.c (version): Update copyright year.
11039
11040 2001-05-21 Per Bothner <per@bothner.com>
11041
11042 * jcf-parse.c (read_class): If class is from .class or .zip file
11043 and it's already been read, don't push/pop parser context.
11044
11045 2001-05-18 Per Bothner <per@bothner.com>
11046
11047 * jvspec.c (lang_specific_pre_link): Re-arrange the linker
11048 command line so the jvgenmain-generated main program comes first.
11049
11050 2001-05-15 Tom Tromey <tromey@redhat.com>
11051
11052 * class.c (build_utf8_ref): Don't generate identifier based on
11053 utf8const contents.
11054
11055 2001-05-12 Richard Henderson <rth@redhat.com>
11056
11057 * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
11058 * expr.c (java_lang_expand_expr): Expand it.
11059 (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
11060 calling build_exception_object_ref.
11061 * parse.y (catch_clause_parameter): Likewise.
11062 (build_dot_class_method): Likewise.
11063 (try_reference_assignconv): Likewise.
11064 * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
11065 * jcf-write.c (generate_bytecode_insns): Likewise.
11066
11067 2001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
11068
11069 * parse.y (build_unresolved_array_type): Set
11070 EXPR_WFL_QUALIFICATION on the newly created wfl.
11071 Fixes PR java/2538. Fixes PR java/2535.
11072
11073 2001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
11074
11075 * parse.y (fix_constructors): Removed unnecessary assignment to
11076 local. Moved assignment to `this$<n>', fixed comments and
11077 indentation.
11078 (build_wfl_wrap): Fixed indentation.
11079 Fixes PR java/2598, java/2579 and java/2658.
11080
11081 2001-05-03 Mo DeJong <mdejong@redhat.com>
11082
11083 * lex.c (java_new_lexer): Call iconv_close on temp handle used to
11084 check for byte swap.
11085
11086 2000-05-02 Jeff Sturm <jsturm@one-point.com>
11087
11088 * expr.c (build_class_init): Move MODIFY_EXPR
11089 outside of COND_EXPR. Remove variable `call'.
11090
11091 2001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11092
11093 * decl.c: NULL_PTR -> NULL.
11094 * jcf-write.c: Likewise.
11095
11096 2001-05-01 Tom Tromey <tromey@redhat.com>
11097
11098 * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
11099 (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
11100 * gcj.texi: Updated copyright text. Include fdl.texi.
11101 (Top): Link to new node.
11102
11103 2001-05-01 Per Bothner <per@bothner.com>
11104
11105 * parse.h (REGISTER_IMPORT): Use tree_cons instead of chainon.
11106
11107 2001-05-01 Per Bothner <per@bothner.com>
11108
11109 * parse.y (java_pop_parser_context): The TREE_VALUE of a link in the
11110 import_list contains the name, not the TREE_PURPOSE.
11111
11112 2001-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11113
11114 * jcf-io.c (read_zip_member): Cast to long in comparison with
11115 signed value.
11116
11117 * jvspec.c (lang_specific_driver): Initialize variables.
11118
11119 * mangle.c (find_compression_record_match): Likewise.
11120
11121 * typeck.c (build_null_signature): Provide static prototype. Mark
11122 parameter with ATTRIBUTE_UNUSED.
11123
11124 * verify.c (verify_jvm_instructions): Initialize variable.
11125
11126 2001-04-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
11127
11128 * parse.y (do_resolve_class): Check for cyclic inheritance during
11129 inner class resolution.
11130
11131 2001-04-27 Per Bothner <per@bothner.com>
11132
11133 * parse.y (java_expand_classes): Don't change ctxp_for_generation
11134 while iterating, since that could cause gc to lose stuff.
11135
11136 2001-04-26 Per Bothner <per@bothner.com>
11137
11138 Fix method search wrt scope of inner classes to match JLS2.
11139 * typeck.c (build_null_signature): New static function.
11140 (has_method): New function. Uses build_null_signature and lookup_do.
11141 * java-tree.h (has_method): New declaration.
11142 * parse.y (find_applicable_accessible_methods_list): Do not search
11143 context of inner classes here.
11144 (patch_method_invocation): Search scope, ie. current and outer clases,
11145 for method matching simple name, to find class.
11146
11147 2001-04-26 Per Bothner <per@bothner.com>
11148
11149 * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
11150 Fix thinko: If a single case, use if_icmpeq, not ifeq.
11151
11152 * constants.c (find_methodref_with_class_index): New function.
11153 (find_methodref_index): Use find_methodref_with_class_index.
11154 * java-tree.h (find_methodref_with_class_index): New declaration.
11155 * jcf-write.c (generate_bytecode_insns case CALL_EXPR): Don't change
11156 DECL_CONTEXT, instead use new find_methodref_with_class_index function.
11157 If context changed from interface to class, don't use invokeinterface.
11158
11159 2001-04-25 Per Bothner <per@bothner.com>
11160
11161 * verify.c (verify_jvm_instructions): For field instructions,
11162 check that field index is valid. For invoke instructions, check that
11163 method index is valid.
11164
11165 2001-04-25 Alexandre Oliva <aoliva@redhat.com>
11166
11167 * config-lang.in (target_libs): Copy from $libgcj_saved.
11168
11169 2001-04-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
11170
11171 * decl.c (init_decl_processing): Add new class "protectionDomain"
11172 field.
11173 * class.c (make_class_data): Set initial value for "protectionDomain".
11174
11175 2001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11176
11177 * jvspec.c (lang_specific_driver): Fix memory allocation
11178 deficit, by using concat in lieu of xmalloc/sprintf.
11179
11180 2001-04-20 Per Bothner <per@bothner.com>
11181
11182 Fixes to compile multiple .class files at once.
11183 * decl.c (init_decl_processing): Don't set CLASS_LOADED_P.
11184 * java-tree.h (CLASS_PARSED_P): New macro.
11185 (CLASS_LOADED_P): Re-define to use TYPE_SIZE and CLASS_PARSED_P.
11186 * jcf-parse.c (jcf_parse_source): Inline into read_class.
11187 (read_class): Avoid some code duplication.
11188 Don't call JCF_FINISH for a .class file - might be needed later.
11189 (jcf_parse): Don't call layout_class here. Check/set CLASS_PARSED_P
11190 rather than CLASS_LOADED_P, since latter implies class laid out.
11191 (yyparse): Do layout_class and JCF_FINISh here instead, in pass 2.
11192 * parse.y: Don't need to set CLASS_LOADED_P for array types.
11193
11194 2001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11195
11196 * Make-lang.in (java/boehm.o): Depend on toplev.h.
11197
11198 * boehm.c: Include toplev.h.
11199
11200 2001-04-06 Tom Tromey <tromey@redhat.com>
11201 Alexandre Petit-Bianco <apbianco@redhat.com>
11202
11203 Fix for PR gcj/1404 and PR gcj/2332:
11204 * parse.y (build_array_from_name): If we use the type_wfl then
11205 accumulate dimensions from the original type as well.
11206 (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
11207
11208 2001-04-06 Tom Tromey <tromey@redhat.com>
11209
11210 * parse.y (analyze_clinit_body): Return true if the second operand
11211 of a METHOD_EXPR is nonzero.
11212
11213 2001-04-06 Tom Tromey <tromey@redhat.com>
11214
11215 * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
11216 directory.
11217 ($(srcdir)/java/parse.c): Likewise.
11218
11219 2001-04-05 Alexandre Petit-Bianco <apbianco@redhat.com>
11220
11221 * gcj.texi: Use `which-gcj' instead of `which-g77.'
11222 (version-gcc): Initialized.
11223 (which-gcj): Likewise.
11224
11225 2001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
11226
11227 * java-tree.h (struct lang_decl): New macro
11228 `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
11229 * parse.y (build_instance_initializer): New function.
11230 (add_instance_initializer): Use it.
11231 (java_fix_constructors): Set `current_class' before fix pass.
11232 (fix_constructors): Just return if already fixed. Move `super()'
11233 invocation ahead. Use `build_instance_initializer.'
11234 Fixes PR java/1315.
11235
11236 2001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
11237
11238 * parse.y (resolve_qualified_expression_name): Pass field's
11239 DECL_CONTEXT to `not_accessible_p.'
11240 (not_accessible_p): Changed parameters order in `inherits_from_p'
11241 invocation.
11242
11243 2001-03-27 Andrew Haley <aph@cambridge.redhat.com>
11244
11245 * lang-options.h: Add flag_check_references.
11246
11247 2001-04-04 Per Bothner <per@bothner.com>
11248
11249 * java-tree.h (CONSTANT_VALUE_P): New macro.
11250 * jcf-write.c (generate_classfile): Use CONSTANT_VALUE_P.
11251 * parse.y (maybe_build_class_init_for_field): New static function.
11252 (resolve_expression_name, resolve_field_access): Use
11253 maybe_build_class_init_for_field instead of build_class_init
11254 This does not do the init if the field is compile-time-constant.
11255 (resolve_field_access): Simplify.
11256
11257 * parse.y (fold_constant_for_init): Merge test into switch.
11258
11259 2001-04-03 Zack Weinberg <zackw@stanford.edu>
11260
11261 * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
11262 on gansidecl.h.
11263 * buffer.c, jvgenmain.c: Don't include gansidecl.h.
11264
11265 2001-04-02 Zack Weinberg <zackw@stanford.edu>
11266
11267 * expr.c (pop_type_0): Save the result of the first
11268 lang_printable_name call in a scratch buffer, so it
11269 won't be clobbered by the second call.
11270
11271 2001-03-30 Alexandre Petit-Bianco <apbianco@redhat.com>
11272
11273 * parse-scan.y (array_type:): Rewritten.
11274 (type_declaration:): `empty_statement' replaces `SC_TK.'
11275 (class_member_declaration:): `empty statement' added.
11276 (method_body:): Simplified.
11277 (static_initializer:): Likewise.
11278 (primary_no_new_array:): Use `type_literals.'
11279 (type_literals:): New rule.
11280 (dims:): Set and update `bracket_count.'
11281 Fixes PR java/1074. Fixes PR java/2412.
11282
11283 2001-03-28 Hans Boehm <boehm@acm.org>
11284
11285 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
11286 (get_boehm_type_descriptor): Set type on returned value to be a
11287 pointer length integer.
11288
11289 2001-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11290
11291 * expr.c (pop_type_0): Call `concat' rather than building the
11292 string manually.
11293 (pop_type): Add format specifier in call to `error'.
11294
11295 * parse.y (patch_method_invocation): Avoid casting away
11296 const-ness.
11297
11298 2001-03-28 Jeffrey Oldham <oldham@codesourcery.com>
11299
11300 * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
11301
11302 2001-03-28 Richard Henderson <rth@redhat.com>
11303
11304 IA-64 ABI Exception Handling:
11305 * Make-lang.in (except.o): Don't depend on eh-common.h.
11306 * check-init.c (check_init): Handle EXC_PTR_EXPR.
11307 * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
11308 [soft_exceptioninfo_call_node]: Remove.
11309 [eh_personality_libfunc, lang_eh_runtime_type]: New.
11310 (end_java_method): No emit_handlers.
11311 * except.c (java_set_exception_lang_code): Remove.
11312 (method_init_exceptions): Don't call it.
11313 (prepare_eh_table_type): No CATCH_ALL_TYPE.
11314 (build_exception_object_ref): New.
11315 (expand_end_java_handler): Update for except.h name changes.
11316 (emit_handlers, expand_resume_after_catch): Remove.
11317 * expr.c (java_lang_expand_expr): Update for except.h name changes.
11318 (process_jvm_instruction): Use build_exception_object_ref.
11319 * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
11320 (soft_exceptioninfo_call_node): Remove.
11321 (build_exception_object_ref): Declare.
11322 * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
11323 soft_exceptioninfo_call_node. Move processing ...
11324 [EXC_PTR_EXPR]: ... here.
11325 * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
11326 * parse.y (catch_clause_parameter): Use build_exception_object_ref.
11327 (source_end_java_method): No java_set_exception_lang_code or
11328 emit_handlers.
11329 (build_dot_class_method): Use build_exception_object_ref.
11330 (try_reference_assignconv): Check EXC_PTR_EXPR not
11331 soft_exceptioninfo_call_node.
11332
11333 2001-03-28 Richard Henderson <rth@redhat.com>
11334
11335 * java-tree.h (throw_node): Define as a single member of
11336 java_global_trees instead of a separate array.
11337 (JTI_THROW_NODE): New.
11338 * decl.c (throw_node): Don't declare.
11339 (init_decl_processing): Init a scalar throw_node.
11340 Don't register it for gc.
11341 * check-init.c (check_init): Reference scalar throw_node.
11342 * expr.c (build_java_athrow): Likewise.
11343 * jcf-write.c (generate_bytecode_insns): Likewise.
11344 * parse.h (BUILD_THROW): Likewise.
11345
11346 2001-03-28 Richard Henderson <rth@redhat.com>
11347
11348 * decl.c (end_java_method): Do not save and restore
11349 flag_non_call_exceptions.
11350 * parse.y (source_end_java_method): Likewise.
11351 * lang.c (flag_exceptions): Don't declare.
11352 (java_init_options): Set flag_non_call_exceptions. Set
11353 flag_exceptions here ...
11354 (java_init): ... not here.
11355
11356 2001-03-27 Richard Henderson <rth@redhat.com>
11357
11358 * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
11359 exceptions_via_longjmp.
11360
11361 * lang.c (flag_new_exceptions): Don't declare it.
11362 (java_init_options): Or set it.
11363
11364 2001-03-27 Richard Henderson <rth@redhat.com>
11365
11366 * decl.c (end_java_method): Rename asynchronous_exceptions to
11367 flag_non_call_exceptions.
11368 * parse.y (source_end_java_method): Likewise.
11369
11370 2001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11371
11372 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
11373
11374 2001-03-26 Mark Mitchell <mark@codesourcery.com>
11375
11376 * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
11377
11378 2001-03-26 Alexandre Petit-Bianco <apbianco@redhat.com>
11379
11380 * parse.y (find_as_inner_class): Follow current package
11381 indications not to mistakingly load an unrelated class.
11382
11383 2001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11384
11385 * constants.c (PUTN): Use memcpy, not bcopy.
11386
11387 * lex.c (java_read_char): Use memmove, not bcopy.
11388
11389 * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
11390
11391 2001-03-23 Per Bothner <per@bothner.com>
11392
11393 * verify.c (verify_jvm_instructions): Replace 3 pop_type by POP_TYPE
11394 macro for better error pin-pointing.
11395 * java-tree.h: Fix typo in comment.
11396
11397 * jcf-write.c (generate_bytecode_insns): Changes to TRY_FINALLY_EXPR.
11398 Don't include jsr/goto in exception range.
11399 Check if start and end of exception range are the same (also TRY_EXPR).
11400 Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
11401 However, do emit the following goto even if try_block is empty.
11402 Defer freeing exception_decl until after the finalizer, to make
11403 sure the local isn't reused in the finalizer. Fixes PR java/1208.
11404
11405 * parse.y (java_complete_lhs): If the try-clause is empty, just
11406 return the finally-clause and vice versa.
11407
11408 2001-03-23 Alexandre Petit-Bianco <apbianco@redhat.com>
11409
11410 * gcj.texi (Input Options): documented the check for attribute
11411 `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
11412 * java-tree.h (flag_force_classes_archive_check): Declared extern.
11413 * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
11414 (jcf_parse): Check for the right classes archive if necessary.
11415 * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
11416 (jcf_parse_fields): Fixed indentation.
11417 * jcf-write.c (append_gcj_attribute): New function.
11418 (generate_classfile): Compute the attribute count, invoke
11419 `append_gcj_attribute'.
11420 * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
11421 turned into bit-fields. New bit-field `right_zip.'
11422 (JCF_ZERO): Set `right_zip' to zero.
11423 * lang-options.h (-fforce-classes-archive-check): Added flag.
11424 * lang.c (flag_force_classes_archive_check): New flag.
11425 (lang_f_options): New entry `force-classes-archive-check.'
11426 Fixes PR java/1213.
11427
11428 2001-02-07 Andrew Haley <aph@redhat.com>
11429
11430 * gcj.texi (Configure-time Options): Add -fcheck-references.
11431 * expr.c (build_java_indirect_ref): New function.
11432 (java_check_reference): New function.
11433 (build_java_array_length_access): Use build_java_indirect_ref to
11434 check for null references.
11435 (build_java_arrayaccess): Likewise.
11436 (build_get_class): Likewise.
11437 (build_field_ref): Likewise.
11438 (invoke_build_dtable): Likewise.
11439 (build_invokeinterface): Likewise.
11440 * lang.c (lang_f_options): Add flag_check_references.
11441 * jvspec.c (jvgenmain_spec): Add flag_check_references.
11442 * java-tree.h (flag_check_references): New variable.
11443 * lang.c (flag_check_references): Likewise.
11444 * parse.y (patch_invoke): Use java_check_reference.
11445 (patch_assignment): Allow for extra nesting in
11446 _Jv_CheckArrayStore.
11447
11448 2001-03-23 Bryce McKinlay <bryce@albatross.co.nz>
11449
11450 * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
11451 * lex.c (cxx_keywords): Likewise.
11452
11453 2001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
11454
11455 * parse.y (qualify_ambiguous_name): Broaden `length'
11456 recognition. Help MODIFY_EXPR be resolved as expression names.
11457 Fixes PR java/2066. Fixes PR java/2400.
11458
11459 2001-03-21 Bryce McKinlay <bryce@albatross.co.nz>
11460
11461 * gjavah.c (process_file): Mark interface definitions with
11462 "__attribute__ ((java_interface))".
11463
11464 2001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
11465
11466 * class.c (layout_class): Fixed push_super_field's second
11467 argument. Fixes PR java/2333.
11468 (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
11469 too early to lay innerclasses out.
11470
11471 2001-03-20 Tom Tromey <tromey@redhat.com>
11472 Alexandre Petit-Bianco <apbianco@redhat.com>
11473
11474 * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
11475 inside an array reference. Insertion of the array store check
11476 rewritten. Fixes PR java/2299.
11477
11478 2001-03-20 Tom Tromey <tromey@redhat.com>
11479
11480 * lex.c (java_read_unicode): Only accept leading `u's.
11481
11482 2001-03-20 Tom Tromey <tromey@redhat.com>
11483
11484 * jcf-parse.c (read_class): Initialize `class'.
11485
11486 2001-03-20 Matt Kraai <kraai@alumni.carnegiemellon.edu>
11487
11488 * jcf_parse.c (jcf_parse): Eliminate unused variable.
11489
11490 2001-03-19 Mark Mitchell <mark@codesourcery.com>
11491
11492 * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
11493 (layout_class): Likewise.
11494 (layout_class_method): Likewise.
11495 (emit_register_classes): Likewise.
11496 * decl.c (builtin_function): Likewise.
11497 (give_name_to_locals): Likewise.
11498
11499 2001-03-19 Per Bothner <per@bothner.com>
11500
11501 * jcf-parse.c (load_inner_classes): Check CLASS_LOADED_P
11502 before trying to load an inner class.
11503
11504 Fixes to process to command-line .class files in two passes.
11505 * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P): New flags.
11506 (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P): Rename to ..
11507 (CLASS_FROM_CURRENTLY_COMPILED_P): ... because it is more general now.
11508 * class.c (is_compiled_class): Fix for renamed flag.
11509 * parse.y (maybe_create_class_interface_decl): Likewise.
11510 * jcf-parse.c (yyparse): Also set if compiling .class files.
11511 * jcf-parse.c (read_class); Read current_class.
11512 (jcf_parse): Make static.
11513 (load_inner_classes): New function, with code moved from jcf_parse,
11514 because we need to inner classes after the command-line files are read.
11515 (yyparse): Set finput to NULL when it doesn't need to be closed.
11516 Reduce use of main_jcf (basically only for archive) and
11517 use finput instead of main_jcf->read_state.
11518 Inline jcf_figure_file_type into yyparse.
11519 Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
11520 Defer load_inner_classes and parse_class_file to a second pass,
11521 after we've correctly mapped command-line .clas fiels to classes.
11522 (jcf_figure_file_type): Removed.
11523 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): Removed flags.
11524 (JCF_ZERO): Also clear zipd field.
11525 * zipfile.h: Conditionalize on JCF_H insread of JCF_ZIP.
11526
11527 2001-03-18 Matt Kraai <kraai@alumni.carnegiemellon.edu>
11528
11529 * jcf-parse.c (yyparse): Change ch from char * to char.
11530
11531 2001-03-19 Per Bothner <per@bothner.com>
11532
11533 * jvspec.c (lang_specific_driver): Check for .zip and .jar files.
11534 Add constructed filelist-file at end, following -xjava. Thus any .o
11535 and library files are not affected by the -xjava. Also wrap
11536 explicit @FILE with -xjava and -xnone.
11537
11538 2001-03-19 Andrew Haley <aph@cambridge.redhat.com>
11539
11540 * class.c (build_static_field_ref): Call make_decl_rtl() after
11541 setting the DECL_EXTERNAL flag.
11542
11543 2001-03-17 Per Bothner <per@bothner.com>
11544
11545 * decl.c (clear_binding_level): Fix initializer (broke 03-15).
11546
11547 * jcf-write.c (generate_bytecode_insns): Handle emitting iinc
11548 when result is is needed (target is STACK_TARGET).
11549
11550 * parse.h (JDEP_SOLV): Removed.
11551 * parse.y (register_incomplete_type): Use JDEP_TO_RESOLVE instead.
11552
11553 * parse.y (incomplete_class_list): Removed.
11554 (obtain_incomplete_type): Don't use or set incomplete_class_list.
11555 It doesn't work if resolve_class changes the name of an array type
11556 that is on the list and then someone else looks for the modified name.
11557 Also, seems liable to break when compiling multiple source files at
11558 once. So the simplest is to just remove incomplete_class_list -
11559 it is only a minor space win and it is not even clear it saves time.
11560
11561 * parse.y (resolve_class): Remove unneeded promote_type.
11562
11563 2001-03-15 Per Bothner <per@bothner.com>
11564
11565 * java-tree.h (BLOCK_IS_IMPLICIT): New flag.
11566 * parse.h (BLOCK_EXPR_ORIGIN): Removed macro.
11567 * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
11568 Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
11569
11570 * jcf-parse.c (yyparse): Set/reset input_filename for source file.
11571 * parse.y (java_expand_classes): Likewise.
11572
11573 * parse.y (expand_start_java_method): Was only called once and had a
11574 misleading name, so inline in caller java_complete_expand_method.
11575 (enter_a_block): Likewise inline in enter_block and remove.
11576
11577 Remove junk from when gcc/java was created (by copying from C/C++).
11578 * decl.c (keep_next_level_flag, keep_next_if_subblocks): Remove.
11579 (struct binding_level): Remove fields keep, keep_if_subblocks,
11580 more_cleanups_ok, have_cleanups (which have never been used).
11581 (pushlevel, poplevel): Remove related useless code.
11582
11583 * class.c (make_class_data): The class_dtable_decl (i.e. the
11584 vtable for Class) should be external, except when compiling Class.
11585
11586 * jvspec.c (lang_specific_driver): Fix -C handling.
11587 Check -save-temps to see if temp @FILE should be deleted.
11588 Follow-up to/fix for February 16 patch.
11589
11590 * verify.c (verify_jvm_instructions): Better error msgs for dup.
11591 (type_stack_dup): Remove no-longer neded error check.
11592
11593 2001-03-15 Bryce McKinlay <bryce@albatross.co.nz>
11594
11595 * mangle.c (mangle_record_type): Rename 'from_pointer' argument
11596 to 'for_pointer'. If this type is for a pointer (argument) mangling,
11597 don't surround the element with 'N..E' if the type name is
11598 unqualified.
11599
11600 2001-03-14 Mark Mitchell <mark@codesourcery.com>
11601
11602 * class.c (build_static_field_ref): Use COPY_DECL_RTL,
11603 DECL_RTL_SET_P, etc.
11604 (make_method_value): Likewise.
11605 (get_dispatch_table): Likewise.
11606
11607 * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
11608
11609 2001-03-07 Tom Tromey <tromey@redhat.com>
11610
11611 * config-lang.in (lang_requires): Define.
11612
11613 2001-03-07 Brad Lucier <lucier@math.purdue.edu>
11614
11615 * typeck.c (convert): Check flag_unsafe_math_optimizations,
11616 not flag_fast_math.
11617
11618 2001-03-05 Per Bothner <per@bothner.com>
11619
11620 Fix a problem where rest_of_decl_compilation applied to
11621 class_dtable_decl causes problems because it was done too early,
11622 before output file was opened.
11623 * decl.c (init_decl_processing): Remove init of class_dtable_decl.
11624 * class.c (class_dtable_decl): Add macro - element of class_roots.
11625 (make_class_data): Define class_dtable_decl.
11626 * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl): Removed.
11627
11628 2001-03-01 Zack Weinberg <zackw@stanford.edu>
11629
11630 * java/class.c, java/decl.c, java/java-tree.h: Replace all
11631 uses of 'boolean' with 'bool'.
11632
11633 2001-03-01 Zack Weinberg <zackw@stanford.edu>
11634
11635 * lang-specs.h: Add zero initializer for cpp_spec field to all
11636 array elements.
11637
11638 2001-02-16 Per Bothner <per@bothner.com>
11639
11640 Handle compiling multiple input files at once, and @FILE syntax.
11641 * gcj.texi: Updated documentation to match.
11642 * java-tree.h (flag_filelist_file, init_src_parse): New declarations.
11643 * jcf-parse.c (parse_source_file): Split into ...
11644 (parse_source_file_1): New function - and:
11645 (parse_source_file_2): New function.
11646 (yyparse): On -ffilelist-file, open and scan named file.
11647 On first pass over files, only do parse_source_file_1.
11648 A new second pass calls parse_source_file_2 for each file to compile.
11649 (init_jcf_parse): Call init_src_parse.
11650 * jvspec.c (INDIRECT_FILE_ARG): New flag.
11651 (lang_specific_driver): Support @FILELIST-FILE syntax, as well
11652 as multiple input file combined in one compilation.
11653 * lang-options.h: Add -ffilelist-file
11654 * lang.c (flag_filelist_file): New flag variable.
11655 (lang_f_options): Handle -ffilelist-file.
11656 * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
11657 * parse.h (struct parse_ctxt): Remove fields incomplete_class and
11658 gclass_list - use global fields of src_parse_roots instead.
11659 * parse.y (src_parse_roots): New array.
11660 (incomplete_class_list, gclass_list): New macros.
11661 (push_parser_context, java_pop_parser_context,
11662 java_parser_context_resume): Don't fiddle with deleted fields.
11663 (various): Use incomplete_class gclass_list and global macros
11664 instead of parse_ctxt fields - the lists are global.
11665 (init_src_parse): New function.
11666
11667 2001-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11668
11669 * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
11670
11671 2001-02-20 Alexandre Petit-Bianco <apbianco@redhat.com>
11672
11673 * parse.y (check_inner_class_access): Moved declaration of local
11674 `enclosing_decl_type' to the right location.
11675
11676 2001-02-19 Bryce McKinlay <bryce@albatross.co.nz>
11677
11678 * parse.y (parser_check_super_interface): Don't call
11679 check_pkg_class_access for an inner interface.
11680 (parser_check_super): Don't call check_pkg_class_access for inner
11681 class.
11682 (do_resolve_class): Simplify enclosing type loop. Don't call
11683 check_pkg_class_access if CL and DECL are not set.
11684 (find_in_imports_on_demand): Set DECL if class_type needed to be
11685 loaded. Don't call check_pkg_class_access for an inner class.
11686 (check_inner_class_access): Rewritten to implement member access
11687 rules as per spec 6.6.1.
11688 (check_pkg_class_access): Handle the empty package correctly.
11689 (in_same_package): New function. Determine if two classes are in the
11690 same package.
11691
11692 2001-02-18 Bryce McKinlay <bryce@albatross.co.nz>
11693
11694 * typeck.c (build_java_array_type): Don't try to poke a public `clone'
11695 method into array types.
11696 * parse.y (patch_method_invocation): Bypass access check on clone call
11697 to array instance.
11698
11699 2001-02-15 Alexandre Petit-Bianco <apbianco@redhat.com>
11700
11701 * expr.c (build_instanceof): Check for arrays when trying fold to
11702 false.
11703
11704 2001-02-15 Jim Meyering <meyering@lucent.com>
11705
11706 * Make-lang.in (java.install-common): Depend on `installdirs'.
11707 (java.install-info): Likewise.
11708
11709 2001-02-15 Bryce McKinlay <bryce@albatross.co.nz>
11710
11711 * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
11712
11713 2001-02-14 Tom Tromey <tromey@redhat.com>
11714 Alexandre Petit-Bianco <apbianco@cygnus.com>
11715
11716 Fix for PR java/1261.
11717 * typeck.c (build_java_array_type): Add public `clone' method to
11718 arrays.
11719 * parse.y (resolve_qualified_expression_name): Use current_class
11720 when checking for inaccessibility.
11721 (patch_method_invocation): Fixed error message when accessibility
11722 denied. Added `from_super' argument.
11723
11724 2001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
11725
11726 * parse.y (resolve_class): Don't build a fake decl. Use the one
11727 already built.
11728 * typeck.c (build_java_array_type): Build and assign decl to array
11729 type.
11730
11731 2001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
11732
11733 * parse.y (not_accessible_p): Changed leading comment. Added extra
11734 `where' argument. Use it to enforce protected access rules.
11735 (resolve_qualified_expression_name): Added extra argument to
11736 not_accessible_p.
11737 (patch_method_invocation): Use argument `primary' to provide
11738 not_accessible_p with an extra argument.
11739 (lookup_method_invoke): Added extra argument to not_accessible_p.
11740 (search_applicable_method_list): Likewise.
11741
11742 2001-02-13 Alexandre Petit-Bianco <apbianco@redhat.com>
11743
11744 * parse.y (resolve_qualified_expression_name): Try to resolve as
11745 an inner class access only if `decl' is a TYPE_DECL.
11746
11747 2001-02-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
11748
11749 * decl.c (classdollar_identifier_node): Initialize.
11750 * java-tree.h (enum java_tree_index): New entry
11751 `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
11752 (classdollar_identifier_node): New macro.
11753 (ID_CLASSDOLLAR_P): Likewise.
11754 * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
11755 (build_dot_class_method_invocation): Likewise.
11756 (find_applicable_accessible_methods_list): `class$' can't be
11757 inherited.
11758
11759 2001-02-09 Raja R Harinath <harinath@cs.umn.edu>
11760
11761 * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
11762
11763 2001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11764
11765 * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
11766 * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
11767 gone.
11768
11769 2001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11770
11771 * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
11772 outside of the `__U' sequence too.
11773 (unicode_mangling_length): Count `_' or `U' outside of the `__U'
11774 sequence too.
11775
11776 2001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
11777
11778 * jvgenmain.c (error): Reversed 2001-02-01 deletion.
11779
11780 2001-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
11781
11782 * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
11783 (JVGENMAIN_OBJS): Likewise.
11784 * java-tree.h (append_gpp_mangled_name): New prototype.
11785 * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
11786 Removed cast calling `gcc_add_root.'
11787 * jvgenmain.c (mangle_obstack): New global, initialized.
11788 (main): Use it.
11789 (do_mangle_class): Constify local `ptr.'
11790 Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
11791 append_gpp_mangle_name and update `count' if necessary.
11792 Use `mangle_obstack.'
11793 * mangle.c (append_unicode_mangled_name): Removed.
11794 (append_gpp_mangled_name): Likewise.
11795 (unicode_mangling_length): Likewise.
11796 (mangle_member_name): Return type set to `void.'
11797 (mangle_field_decl): Don't append `U' in escaped names.
11798 (mangle_method_decl): Likewise.
11799 (mangle_member_name): Just use `append_gpp_mangled_name.'
11800 * mangle_name.c: New file.
11801
11802 2001-02-07 Per Bothner <per@bothner.com>
11803
11804 * check-init.c (check_init): Fix TRY_FINALLY_EXPR logic.
11805
11806 * check-init.c (check_init): Don't call done_alternative after
11807 processing loop code, as a LOOP_EXPR never terminates normally.
11808
11809 2001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
11810
11811 * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
11812
11813 2001-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
11814
11815 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
11816 DECLs.
11817
11818 2001-02-06 Tom Tromey <tromey@redhat.com>
11819
11820 * lex.c (java_new_lexer): Longer error message.
11821
11822 2001-02-05 Jeff Sturm <jeff.sturm@commerceone.com>
11823 Alexandre Petit-Bianco <apbianco@cygnus.com>
11824
11825 * typeck.c (build_prim_array_type): Added leading comment.
11826 (build_java_array_type): Moved locals out of
11827 block. Always create the `data' field, fixed alignment to match
11828 C++.
11829
11830 2001-02-04 Tom Tromey <tromey@redhat.com>
11831
11832 * expr.c (java_lang_expand_expr): Don't bother recomputing
11833 `length'. Use rest_of_decl_compilation, not make_decl_rtl.
11834 Fixes PR java/1866.
11835
11836 2001-02-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
11837
11838 * parse.y (process_imports): Save the original name of the import
11839 for better error report.
11840
11841 2001-02-04 Bryce McKinlay <bryce@albatross.co.nz>
11842
11843 * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
11844 of macros used when compiling jvspec.c.
11845 * jvspec.c (lang_specific_driver): Link with the shared
11846 libgcc by default.
11847
11848 2001-02-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11849
11850 * check-init.c (check_init): Call internal_error instead of fatal.
11851 * expr.c (java_lang_expand_expr): Likewise.
11852 * jcf-parse.c (get_constant): Likewise.
11853 * mangle.c (java_mangle_decl): Likewise.
11854 * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
11855 (operator_string): Likewise.
11856 * check-init.c (check_init): Call abort instead of fatal.
11857 * class.c (build_class_ref): Likewise.
11858 * constants.c (write_constant_pool): Likewise.
11859 * decl.c (start_java_method): Likewise.
11860 * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
11861 (java_stack_dup, encode_newarray_type): Likewise.
11862 (build_java_array_length_access): Likewise.
11863 (build_java_check_indexed_type, expand_java_pushc): Likewise.
11864 (build_java_soft_divmod, build_invokeinterface): Likewise.
11865 * java-tree.h (INNER_CLASS_P): Likewise.
11866 * jcf-parse.c (parse_signature, get_name_constant): Likewise.
11867 (give_name_to_class, get_class_constant): Likewise.
11868 * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
11869 (find_constant_index, generate_bytecode_conditional): Likewise.
11870 (generate_bytecode_insns, perform_relocations): Likewise.
11871 * lex.c (java_unget_unicode, java_lex): Likewise.
11872 * mangle.c (mangle_type, mangle_record_type): Likewise.
11873 (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
11874 (finish_mangling): Likewise.
11875 * parse.h (MARK_FINAL_PARMS): Likewise.
11876 * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
11877 (obtain_incomplete_type, java_complete_class): Likewise.
11878 (java_check_regular_methods, java_complete_expand_method): Likewise.
11879 (cut_identifier_in_qualified, check_deprecation): Likewise.
11880 (patch_invoke, find_applicable_accessible_methods_list): Likewise.
11881 (java_complete_lhs, lookup_name_in_blocks): Likewise.
11882 (check_final_variable_indirect_assignment, build_unaryop): Likewise.
11883 * typeck.c (set_local_type, parse_signature_type): Likewise.
11884 (parse_signature_string, build_java_signature): Likewise;
11885 (set_java_signature): Likewise.
11886 * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
11887 * class.c (add_method): Call fatal_error instead of fatal.
11888 (build_static_field_ref): Likewise.
11889 * expr.c (build_known_method_ref, expand_invoke): Likewise.
11890 * jcf-parse.c (get_constant, jcf_parse): Likewise.
11891 * lex.c (java_new_new_lexer): Likewise.
11892 * jv-scan.c (main): Likewise.
11893 (fatal_error): Renamed from fatal.
11894 * jcf-parse.c (yyparse): Call fatal_io_error instead of
11895 pfatal_with_name.
11896 * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
11897 (yyparse): Likewise.
11898 * jcf-write.c (make_class_file_name, write_classfile): Likewise.
11899 * lex.c (java_get_line_col): Likewise.
11900 * jcf-parse.c (load_class): Make errors non-fatal.
11901 * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
11902
11903 2001-02-01 Bryce McKinlay <bryce@albatross.co.nz>
11904
11905 * jvgenmain.c (class_mangling_suffix): Remove unused string.
11906 (error): Remove unused function.
11907 (main): Don't use "__attribute__ alias" on generated class symbol.
11908
11909 2001-01-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
11910
11911 * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
11912 argument.
11913 * parse.y (finish_method_declaration): Code accounting for WFLed
11914 method DECL_NAMEs deleted.
11915 (check_abstract_method_definitions): Likewise.
11916 (resolve_type_during_patch): Layout resolved type.
11917 * typeck.c (lookup_do): Removed unused local.
11918
11919 2001-01-30 Bryce McKinlay <bryce@albatross.co.nz>
11920
11921 * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
11922 * decl.c (init_decl_processing): Use integer_minus_one_node, not
11923 integer_negative_one_node.
11924 * expr.c (build_java_binop): Likewise.
11925
11926 2001-01-24 Jeff Sturm <jeff.sturm@commerceone.com>
11927
11928 * zextract.c (read_zip_archive): Read file_offset before writing
11929 zipd and consequently clobbering the header contents.
11930
11931 2001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11932
11933 * Make-lang.in: Remove all dependencies on defaults.h.
11934 * decl.c: Don't include defaults.h.
11935 * expr.c: Likewise.
11936 * parse.y: Likewise.
11937
11938 2001-01-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
11939
11940 * ChangeLog (2001-01-21): Fixed typo.
11941 * class.c (layout_class_method): Code accounting for WFLed
11942 method DECL_NAMEs deleted.
11943 * constant.c (find_methodref_index): Likewise.
11944 * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
11945 * java-tree.h (DECL_FUNCTION_WFL): New macro.
11946 (struct lang_decl): New field `wfl'.
11947 (java_get_real_method_name): Prototype deleted.
11948 * mangle.c (mangle_method_decl): Code accounting for WFLed
11949 method DECL_NAMEs deleted.
11950 * parse.h (GET_METHOD_NAME): Macro deleted.
11951 * parse.y (reset_method_name): Deleted.
11952 (method_header): Set DECL_FUNCTION_WFL.
11953 (check_abstract_method_header): Code accounting for WFLed method
11954 DECL_NAMEs deleted.
11955 (java_get_real_method_name): Deleted.
11956 (check_method_redefinition): Code accounting for WFLed method
11957 DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
11958 (java_check_regular_methods): Likewise.
11959 (java_check_abstract_methods): Likewise.
11960 (java_expand_classes): Don't call `reset_method_name.'
11961 (search_applicable_method_list): Use DECL_NAMEs instead of
11962 GET_METHOD_NAME.
11963 * typeck.c (lookup_do): Code accounting for WFLed method
11964 DECL_NAMEs deleted.
11965
11966 2001-01-25 Richard Earnshaw <rearnsha@arm.com>
11967
11968 * lex.c (java_read_char): Check for EOF from getc first.
11969
11970 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11971
11972 * class.c (layout_class): Don't lay the superclass out if it's
11973 already being laid out.
11974 * jcf-parse.c (handle_innerclass_attribute): New function.
11975 (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
11976 handle_innerclasses_attribute.
11977 (jcf_parse): Don't load an innerclasses if it's already being
11978 laid out.
11979 * jcf-write.c (append_innerclass_attribute_entry): Static
11980 `anonymous_name' and its initialization deleted. `ocii' and `ini'
11981 to be zero for anonymous classes.
11982
11983 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11984
11985 * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
11986 necessary.
11987 * jcf-parse.c (set_source_filename): Use
11988 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
11989
11990 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11991
11992 * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
11993 gets a unique asm name.
11994
11995 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11996
11997 * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
11998 (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
11999 if necessary.
12000 (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
12001 * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
12002 * parse.y (lookup_package_type_and_set_next): Deleted.
12003 (resolve_package): Removed unnecessary code.
12004 (find_applicable_accessible_methods_list): `finit$' can't be
12005 inherited.
12006 * verify.c (pop_argument_types): Added missing prototype.
12007
12008 2001-01-23 Bryce McKinlay <bryce@albatross.co.nz>
12009
12010 * config-lang.in: Disable java by default.
12011
12012 2001-01-23 Tom Tromey <tromey@redhat.com>
12013
12014 * gcj.texi (Copying): New node.
12015 Added copyright information.
12016
12017 2001-01-21 Per Bothner <per@bothner.com>
12018
12019 Various fixes to allow compiling a compressed .jar/.zip archive.
12020 * zipfile.h (struct ZipFileCache): Replace by struct ZipFile.
12021 (struct ZipFile): Add fields name and next (from ZipFileCache).
12022 (struct ZipDirectory): New field zipf points to owning ZipFile.
12023 * jcf.h (struct ZipDirectory): Add forward declaration.
12024 (struct JCF): Declare zipd field to have type struct ZipDirectory.
12025 Remove seen_in_zip and zip_offset fields.
12026 (JCF_SEEN_IN_ZIP): New macro.
12027 * zextract.c (read_zip_archive): Set ZipDirectory's zipf field.
12028 * jcf-io.c: Change all ZipFileCache to ZipFile.
12029 (read_zip_member): New function.
12030 (open_in_zip): Call read_zip_member.
12031 * jcf-parse.c (find_in_current_zip): Remove function.
12032 (read_class): Merge in find_in_current_zip functionality.
12033 Call read_zip_member if needed.
12034 (parse_zip_file_entries): Use read_zip_member.
12035 (process_zip_dir): Update for removed and added JCF fields.
12036 (jcf_figure_file_type): Re-use, don't copy initial ZipFile struct.
12037
12038 2001-01-21 Per Bothner <per@bothner.com>
12039
12040 Minor optimization of static ggc roots.
12041 * jcf-parse.c (parse_roots): New static field.
12042 (current_field, current_method, current_file_list): Replace by macros
12043 naming fields of parse_roots.
12044 (init_jcf_parse): Combine 3 ggc_add_tree_root calls to 1.
12045 * class.c (class_roots): New static field.
12046 (registered_class, fields_ident, info_ident, class_list):
12047 New macros naming fields of parse_roots.
12048 (build_static_field_ref): Don't register roots here.
12049 (layout_class): Static field list replaced by macro class_list.
12050 (init_class_processing): Call ggc_add_tree_root for 4 roots.
12051 Initialize fields_ident and info_ident here.
12052
12053 2001-01-21 Per Bothner <per@bothner.com>
12054
12055 * jcf-parse.c (ggc_mark_jcf): New function.
12056 (init_jcf_parse): Register current_jcf as ggc root.
12057
12058 2001-01-21 Per Bothner <per@bothner.com>
12059
12060 * lang.c (put_decl_node): Print method's name.
12061
12062 2001-01-21 Per Bothner <per@bothner.com>
12063
12064 * verify.c (VERIFICATION_ERROR_WITH_INDEX): New macro.
12065 (verify_jvm_instructions): Use it, for better error messages on loads.
12066
12067 2001-01-21 Per Bothner <per@bothner.com>
12068
12069 * verify.c (merge_type_state): Still may have to merge even if
12070 LABEL_VERIFIED (label).
12071
12072 2001-01-21 Per Bothner <per@bothner.com>
12073
12074 * parse.y (method_header): Don't set the DECL_NAME of a FUNCTION_DECL
12075 to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
12076
12077 2001-01-19 Per Bothner <per@bothner.com>
12078
12079 * expr.c (pop_type_0): Only return object_ptr_type_node on mismatch
12080 if expeting an interface type. Refines Tom's change of 2000-09-12.
12081
12082 2001-01-18 Per Bothner <per@bothner.com>
12083
12084 * gcj.texi (Input Options): Mention .java files.
12085
12086 2001-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
12087
12088 * lang-options.h (-Wunsupported-jdk11): Removed.
12089 * lang.c (flag_not_overriding): Deleted.
12090 (flag_static_local_jdk1_1): Likewise.
12091 (lang_W_options): Removed "unsupported-jdk11" entry.
12092 * parse.y (java_check_methods): Removed dead code.
12093
12094 2001-01-17 Tom Tromey <tromey@redhat.com>
12095
12096 Changes suggested by Per Bothner:
12097 * gcj.texi (Input Options): Don't mention input files.
12098 (Code Generation): Updated --main information.
12099 (Invoking jcf-dump): Mention that --javap is incomplete.
12100 From Alexandre Petit-Bianco:
12101 (Warnings): Don't mention -Wunsupported-jdk11.
12102 My stuff:
12103 (Compatibility): Mention JDK 1.2-ness of libraries.
12104 (Resources): Mention resources used when writing gcj.
12105
12106 2001-01-17 Tom Tromey <tromey@redhat.com>
12107
12108 * gcj.texi: New file.
12109 * Make-lang.in ($(srcdir)/java/gcj.info): New target.
12110 (java.info): Depend on gcj.info.
12111 (java/gcj.dvi): New target.
12112 (java.dvi): Depend on gcj.dvi.
12113 (java.install-info): Wrote.
12114
12115 2001-01-16 Jeff Sturm <jeff.sturm@appnet.com>
12116
12117 * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
12118 having called make_decl_rtl.
12119
12120 2001-01-14 Per Bothner <per@bothner.com>
12121
12122 Various patches to emit better messages on verification errors.
12123 * expr.c (push_type_0): Return error indication on stack overflow,
12124 instead of callinfg fatal.
12125 (push_type): Now just call push_type_0 (nd fatal on overflow).
12126 (pop_type_0): Return detailed error message (in a char** argument).
12127 (pop_type): If pop_type_0 fails, print error message.
12128 (pop_argument_types): Moved to verify.c.
12129 * verify.c (pop_argument_types): Moved from expr.c.
12130 Return a (possible) error message, rather than void.
12131 (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING): New macros.
12132 (verify_jvm_instruction): Use new macros, improving error messages.
12133 For case OPCODE_astore use object_ptr_type_node.
12134 * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED): New macros.
12135 (pop_type_0, push_type_0, pop_argument_types): Update accordingly.
12136
12137 * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
12138 constant, return body without wrapper. (Improves constant folding.)
12139 * lex.c (build_wfl_node): Clear TREE_TYPE from returned node.
12140
12141 2001-01-13 Per Bothner <per@bothner.com>
12142
12143 * expr.c (expand_java_field_op): Assigning to a final field outside
12144 an initializer does not violate JVM spec, so should be warning, not
12145 error. (Sun's verifier does not complain - though MicroSoft's does.)
12146
12147 2001-01-12 Joseph S. Myers <jsm28@cam.ac.uk>
12148
12149 * gjavah.c (version), jcf-dump.c (version): Update copyright year
12150 to 2001.
12151
12152 2001-01-11 Bryce McKinlay <bryce@albatross.co.nz>
12153
12154 * parse.y (resolve_expression_name): Permit instance variables from
12155 enclosing context in super constructor call.
12156 (resolve_qualified_expression_name): Permit enclosing class's qualified
12157 "this" in super constructor call.
12158
12159 2001-01-10 Mark Mitchell <mark@codesourcery.com>
12160
12161 * class.c (build_utf8_ref): Remove last argument in call to
12162 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
12163 (build_class_ref): Likewise.
12164 (build_static_field_ref): Likewise.
12165 (get_dispatch_table): Likewise.
12166 (layout_class_method): Likewise.
12167 (emit_register_classes): Likewise.
12168 * constants.c (build_constant_data_ref): Likewise.
12169 * decl.c (builtin_function): Likewise.
12170 (create_primitive_vtable): Likewise.
12171 * expr.c (build_known_method_def): Likewise.
12172 (build_jni_stub): Likewise.
12173 (java_lang_expand_expr): Likewise.
12174
12175 2001-01-10 Tom Tromey <tromey@redhat.com>
12176
12177 * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
12178
12179 2001-01-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
12180
12181 * java-tree.h (lang_printable_name_wls): New prototype.
12182 * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
12183 rather than `current_class' to print type name. Don't prepend type
12184 names when printing constructor names.
12185 (lang_printable_name_wls): New function.
12186 * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
12187 `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
12188 * parse.y (patch_method_invocation): Message tuned for constructors.
12189 (not_accessible_p): Grant `private' access from within
12190 enclosing contexts.
12191
12192 2001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12193
12194 All files with updated copyright when applicable.
12195 * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
12196 * class.c (mangle_class_field): Function removed.
12197 (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
12198 (utf8_cmp, cxx_keyword_p): Moved to lex.c.
12199 (build_class_ref): Call `java_mangle_class_field' instead of
12200 `mangle_class_field.'
12201 (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
12202 (layout_class): Call `java_mangle_decl' instead of
12203 `mangle_static_field.'
12204 (cxx_keywords): Initialized static array moved to `lex.c.'
12205 (layout_class_method): Changed leading comment. Simplified to
12206 call `java_mangle_decl.' Local `ptr' moved in for loop body.
12207 * decl.c (lang_mark_tree): Mark field `package_list.'
12208 * java-tree.h (TYPE_PACKAGE_LIST): New macro.
12209 (struct lang_type): New field `package_list.'
12210 (unicode_mangling_length): Prototype removed.
12211 (append_gpp_mangled_name, append_gpp_mangled_classtype,
12212 emit_unicode_mangled_name): Likewise.
12213 (cxx_keyword_p): New prototype.
12214 (java_mangle_decl, java_mangle_class_field,
12215 java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
12216 * jcf-parse.c (jcf_parse_source): Constify `file' argument to
12217 `build_expr_wfl.'
12218 * jvgenmain.c (main_method_prefix): Global variable removed.
12219 (main_method_suffix): Likewise.
12220 (do_mangle_classname): New function.
12221 (main): Call it. Format changed to accommodate new mangling scheme.
12222 * lex.c: (utf8_cmp): Conditionally prototyped.
12223 (cxx_keywords): Moved from class.c, conditionally defined.
12224 (utf8_cmp, cxx_keyword_p): Likewise.
12225 * mangle.c (obstack.h, ggc.h): Included.
12226 (mangle_field_decl): New function.
12227 (mangle_method_decl, mangle_type, mangle_pointer_type,
12228 mangle_array_type, mangle_record_type,
12229 find_compression_pointer_match, find_compression_array_match,
12230 find_compression_record_match,
12231 find_compression_array_template_match, set_type_package_list,
12232 entry_match_pointer_p, emit_compression_string, init_mangling,
12233 finish_mangling, compression_table_add, mangle_member_name): Likewise.
12234 (mangle_obstack): New global.
12235 (MANGLE_RAW_STRING): New macro.
12236 (unicode_mangling_length): Turned static.
12237 (append_unicode_mangled_name): Renamed from
12238 `emit_unicode_mangled_name.' Turned static. `mangle_obstack'
12239 replaces `obstack', removed from the parameter list.
12240 (append_gpp_mangled_name): Turned static. `mangle_obstack'
12241 replaces parameter `obstack', removed from the parameter list. Call
12242 `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
12243 (append_gpp_mangled_classtype): Removed.
12244 (compression_table, compression_next): New static variables.
12245 * parse.y (temporary_obstack): Extern declaration removed.
12246
12247 2001-01-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
12248
12249 * parse.y (patch_binop): Compute missing type in error situations.
12250
12251 2001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
12252
12253 * class.c (make_class_data): Push initial value for "arrayclass".
12254 * decl.c (init_decl_processing): Add new class field "arrayclass".
12255
12256 2001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
12257
12258 From patha@softlab.ericsson.se:
12259 * parse.y (switch_label): Use build, not build1, to construct
12260 DEFAULT_EXPR.
12261
12262 2001-01-04 Neil Booth <neil@daikokuya.demon.co.uk>
12263
12264 * lang.c (lang_decode_option): Change -MA to -MP.
12265 * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
12266 Update to new prototype; do quote targets.
12267 (jcf_dependency_write): Update.
12268
12269 2000-12-22 Bryce McKinlay <bryce@albatross.co.nz>
12270
12271 Shorten primitive array allocation path:
12272 * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
12273 to create new primitive arrays.
12274 * expr.c (build_newarray): If generating native code, call
12275 soft_newarray_node with a reference to the primitive TYPE identifier
12276 instead of type_value.
12277
12278 2000-12-17 Bryce McKinlay <bryce@albatross.co.nz>
12279
12280 Fix for PRs gcj/312 and gcj/253:
12281 * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
12282 dest if they arn't already.
12283 * class.c (layout_class): Call maybe_layout_super_class on
12284 superinterfaces also, but only if compiling from bytecode.
12285
12286 Fix for PR gcj/373:
12287 * parse.y (create_class): Set ACC_STATIC if class is declared in an
12288 interface.
12289
12290 2000-12-15 Tom Tromey <tromey@redhat.com>
12291
12292 * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
12293 set.
12294
12295 2000-12-14 Andrew Haley <aph@redhat.com>
12296
12297 * boehm.c (mark_reference_fields): Change test to correctly detect
12298 bitmap overflow.
12299
12300 2000-12-15 Andreas Jaeger <aj@suse.de>
12301
12302 * config-lang.in (lang_dirs): Added.
12303
12304 2000-12-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
12305
12306 * parse.y (end_artificial_method_body): Fixed undefined behavior.
12307 Credits go to rth for finding it.
12308
12309 2000-12-13 Mike Stump <mrs@wrs.com>
12310
12311 * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
12312
12313 2000-11-07 Tom Tromey <tromey@cygnus.com>
12314
12315 * Make-lang.in (JAVA_LEX_C): Added chartables.h.
12316 * lex.c (java_ignorable_control_p): Removed.
12317 (java_letter_or_digit_p): Removed.
12318 (java_start_char_p): New function.
12319 (java_read_char): Return `int', not `unicode_t'. Changed
12320 callers.
12321 (java_read_unicode): Likewise.
12322 (java_read_unicode_collapsing_terminators): Likewise.
12323 (java_get_unicode): Likewise.
12324 (java_new_lexer): Initialize hit_eof.
12325 (java_parse_end_comment): Take `int' argument.
12326 (java_parse_doc_section): Likewise.
12327 (java_parse_escape_sequence): Don't allow backlash-newline.
12328 Return `int'.
12329 * lex.h (JAVA_DIGIT_P): Removed.
12330 (_JAVA_LETTER_OR_DIGIT_P): Removed.
12331 (_JAVA_IDENTIFIER_IGNORABLE): Removed.
12332 (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
12333 (JAVA_PART_CHAR_P): New macro.
12334 (UEOF): Now -1.
12335 (JAVA_CHAR_ERROR): Now -2.
12336 (java_lexer): New field `hit_eof'.
12337 * chartables.h: New file.
12338 * gen-table.pl: new file.
12339
12340 2000-11-20 Tom Tromey <tromey@cygnus.com>
12341 Alexandre Petit-Bianco <apbianco@cygnus.com>
12342
12343 * parse.y (java_complete_lhs): Only allow compound assignment of
12344 reference type if type is String.
12345
12346 2000-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
12347
12348 * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
12349 jcf-path.c: Likewise.
12350
12351 2000-12-09 Anthony Green <green@redhat.com>
12352
12353 * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
12354 filestart and filename_length as int values.
12355
12356 2000-12-07 Mo DeJong <mdejong@redhat.com>
12357
12358 * jcf-io.c (find_class): Correct the logic that tests to see if a
12359 .java file is newer than its .class file. The compiler was
12360 incorrectly printing a warning when file mod times were equal.
12361
12362 2000-12-07 Zack Weinberg <zack@wolery.stanford.edu>
12363
12364 * jvgenmain.c: Use ISPRINT not isascii.
12365
12366 2000-12-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
12367
12368 * parse.y (end_artificial_method_body): Fixed typo.
12369
12370 2000-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
12371
12372 * parse.y (patch_method_invocation): Pick the correct enclosing
12373 context when creating inner class instances.
12374 Fixes gcj/332.
12375
12376 2000-11-26 Joseph S. Myers <jsm28@cam.ac.uk>
12377
12378 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
12379 Update copyright year to 2000.
12380
12381 2000-11-23 Anthony Green <green@redhat.com>
12382
12383 * jcf-parse.c (init_jcf_parse): Register current_file_list root.
12384 Move current_file_list out of yyparse and make it static.
12385
12386 * expr.c: Declare quick_stack and tree_list_free_list as static
12387 (init_expr_processing): Register quick_stack and
12388 tree_list_free_list roots.
12389
12390 2000-11-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
12391
12392 * parse.y (build_outer_field_access): New local `decl_ctx', use
12393 it. Check for field's context and current class immediate outer
12394 context inheritance.
12395 (outer_field_access_p): Consider fields inherited from the last
12396 enclosing context.
12397 (build_access_to_thisn): Stop at the last enclosing context if
12398 necessary.
12399 Fixes gcj/367.
12400
12401 2000-11-23 J"orn Rennecke <amylaar@redhat.com>
12402
12403 * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
12404
12405 2000-11-22 Bryce McKinlay <bryce@albatross.co.nz>
12406
12407 * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
12408 scratch buffer.
12409
12410 2000-11-20 Tom Tromey <tromey@cygnus.com>
12411
12412 * jv-scan.c (help): Document --complexity.
12413 (options): Added --complexity.
12414 (flag_complexity): New global.
12415 (main): Call `report'.
12416 * parse-scan.y (complexity): New global.
12417 (if_then_statement, if_then_else_statement,
12418 if_then_else_statement_nsi, switch_block_statement_group,
12419 while_expression, do_statement, for_begin, continue_statement,
12420 throw_statement, catch_clause, finally, method_invocation,
12421 conditional_and_expression, conditional_or_expression,
12422 conditional_expression): Update complexity.
12423 (reset_report): Reset complexity.
12424 (report): New function.
12425
12426 2000-11-20 Tom Tromey <tromey@cygnus.com>
12427
12428 * lex.c (yylex): Added STRICT_TK case.
12429 * parse.y (STRICT_TK): Added.
12430 * parse-scan.y (STRICT_TK): Added.
12431 * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
12432 `;'. Use 4, not 3, with -k option. Correctly rename resulting
12433 file.
12434 * keyword.h: Rebuilt.
12435 * keyword.gperf (strictfp): Added.
12436
12437 2000-11-20 Tom Tromey <tromey@cygnus.com>
12438
12439 * lex.c (yylex): Recognize floating point constants with leading
12440 0.
12441
12442 2000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12443
12444 * java-tree.h (cyclic_inheritance_report): Constify.
12445 * parse.y (cyclic_inheritance_report): Likewise.
12446
12447 2000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
12448
12449 * parse.y (goal): Remove call to ggc_add_string_root.
12450
12451 2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
12452
12453 * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
12454 Create string in scratch buffer, then pass to build_string.
12455
12456 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
12457
12458 * parse.y (issue_warning_error_from_context): Add
12459 ATTRIBUTE_PRINTF.
12460
12461 2000-11-11 Anthony Green <green@redhat.com>
12462
12463 * jcf-parse.c (process_zip_dir): Add finput parameter.
12464 (jcf_figure_file_type): Call process_zip_dir with appropriate
12465 argument.
12466
12467 2000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12468
12469 * decl.c (copy_lang_decl): Use memcpy, not bcopy.
12470 * jcf-parse.c (jcf_figure_file_type): Likewise.
12471
12472 2000-11-09 Joseph S. Myers <jsm28@cam.ac.uk>
12473
12474 * parse.y (create_new_parser_context): Use memset () instead of
12475 bzero ().
12476
12477 2000-11-08 Tom Tromey <tromey@cygnus.com>
12478
12479 * gjavah.c (process_file): Only include gcj/cni.h when generating
12480 CNI stubs.
12481
12482 2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
12483
12484 * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
12485 (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
12486 instead of bzero ().
12487
12488 2000-11-05 Tom Tromey <tromey@cygnus.com>
12489
12490 * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
12491 * lex.c (IS_ZERO): New define.
12492 (java_perform_atof): Error on floating point underflow.
12493
12494 2000-11-04 Tom Tromey <tromey@cygnus.com>
12495
12496 * lex.c (java_parse_escape_sequence): Only read two octal
12497 characters if the first one is greater than 3. Don't allow
12498 "octal" numbers to include the digits 8 or 9.
12499
12500 2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
12501
12502 * Make-lang.in (java.distdir): Remove.
12503
12504 2000-11-03 Tom Tromey <tromey@cygnus.com>
12505
12506 * Make-lang.in (java.dvi): New target.
12507 Partial fix for PR other/567.
12508
12509 * lang-options.h: Mention -Wout-of-date.
12510 * jcf-dump.c (flag_newer): New global.
12511 * gjavah.c (flag_newer): New global.
12512 * jcf-io.c (find_class): Only warn when flag_newer set.
12513 * lang.c (flag_newer): New global.
12514 (struct string_option): New declaration.
12515 (lang_W_options): New global.
12516 (process_option_with_no): New function.
12517 (lang_decode_option): Use it.
12518
12519 * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
12520 * gjavah.c (cxx_keyword_subst): Handle any number of trailing
12521 `$'.
12522
12523 * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
12524 (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
12525 * lex.c (java_read_unicode): Removed `term_context' argument.
12526 Recognize any number of `u' in `\u'.
12527 (java_read_unicode_collapsing_terminators): New function.
12528 (java_get_unicode): Use it.
12529 (java_lineterminator): Removed.
12530 (yylex): Produce error if character literal is newline or single
12531 quote. Return if eof found in middle of `//' comment. EOF in
12532 `//' comment is only an error if pedantic.
12533 (java_ignorable_control_p): New function.
12534 (java_parse_end_comment): Return if eof found in middle of
12535 comment.
12536 Include flags.h.
12537 * jv-scan.c (pedantic): New global.
12538
12539 2000-10-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
12540
12541 * parse.y (outer_field_access_p): Inherited fields aren't
12542 consider outer fields.
12543 (maybe_build_thisn_access_method): Use
12544 PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
12545 (resolve_expression_name): Trigger an error if a static field
12546 is being accessed as an outer field.
12547
12548 2000-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12549
12550 * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
12551 Fixes gcj/365.
12552
12553 2000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
12554
12555 * Make-lang.in: Move all build rules here from Makefile.in,
12556 adapt to new context. Wrap all rules that change the current
12557 directory in parentheses. Expunge all references to $(P).
12558 When one command depends on another and they're run all at
12559 once, use && to separate them, not ;. Add OUTPUT_OPTION to
12560 all object-file generation rules. Delete obsolete variables.
12561
12562 * Makefile.in: Delete.
12563 * config-lang.in: Delete outputs= line.
12564
12565 2000-10-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
12566
12567 * parse.y (patch_method_invocation): NULLify this_arg when already
12568 inserted.
12569 (maybe_use_access_method): Handle call to methods unrelated to the
12570 current class. Fixed comment.
12571 Fixes gcj/361.
12572
12573 2000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
12574
12575 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
12576 scope.
12577
12578 2000-10-24 Tom Tromey <tromey@cygnus.com>
12579
12580 * lex.c (java_new_lexer): Initialize new fields. Work around
12581 broken iconv() implementations.
12582 (java_read_char): Swap bytes if required. Use fallback decoder if
12583 required.
12584 (byteswap_init, need_byteswap): New globals.
12585 (java_destroy_lexer): Only close iconv handle if it is in use.
12586 * lex.h (java_lexer): New fields read_anything, byte_swap,
12587 use_fallback.
12588 Made out_buffer unsigned.
12589
12590 2000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
12591
12592 * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
12593 where an enclosing context can be set on the jdep.
12594 (do_resolve_class): Fixed identation.
12595
12596 2000-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12597
12598 * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
12599
12600 * jcf-reader.c (peek_attribute, skip_attribute): Only define
12601 when requested.
12602
12603 * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
12604
12605 * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
12606
12607 2000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
12608
12609 * jcf-write.c (OP1): Update `last_bc'.
12610 (struct jcf_block): Fixed indentation and typo in comments. New
12611 field `last_bc'.
12612 (generate_bytecode_insns): Insert `nop' if `jsr' immediately
12613 follows `monitorenter'.
12614 * parse.y (patch_synchronized_statement): New local `tmp'. Call
12615 `patch_string'.
12616 Fixes gcj/232.
12617
12618 2000-10-16 Tom Tromey <tromey@cygnus.com>
12619
12620 * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
12621 * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
12622 * lang-options.h: Added -MA, -MT, -MF..
12623 * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
12624 (DEPEND_TARGET_SET): New macro.
12625 (DEPEND_FILE_ALREADY_SET): Likewise.
12626 (init_parse): Handle new flags.
12627 * jcf.h (jcf_dependency_print_dummies): Declare.
12628 * Make-lang.in (s-java): Added mkdeps.o.
12629 * Makefile.in (BACKEND): Added mkdeps.o.
12630 (../gcjh$(exeext)): Added mkdeps.o.
12631 (../jcf-dump$(exeext)): Added mkdeps.o.
12632 * jcf-depend.c: Include mkdeps.h.
12633 (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
12634 add_entry): Removed.
12635 (jcf_dependency_reset): Rewrote.
12636 (dependencies): New global.
12637 (jcf_dependency_set_target): Rewrote.
12638 (jcf_dependency_add_target): Likewise.
12639 (jcf_dependency_add_file): Likewise.
12640 (munge): Removed.
12641 (print_ents): Removed.
12642 (jcf_dependency_write): Rewrote.
12643 (print_dummies): New global.
12644 (jcf_dependency_print_dummies): New function
12645 (jcf_dependency_write): Call deps_dummy_targets if required.
12646
12647 2000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
12648
12649 * gjavah.c (add_class_decl): Removed unused variables `tname',
12650 `tlen' and `name_index'.
12651 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
12652 * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
12653 in `wfl_operator' with value.
12654 (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
12655 (jcf_figure_file_type): Fixed identation.
12656 * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
12657 * parse.y (analyze_clinit_body): New function.
12658 (static_initializer:): Reset `current_static_block'.
12659 (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
12660 `wfl_operator' with new value.
12661 (lookup_cl): Use EXPR_WFL_FILENAME.
12662 (maybe_yank_clinit): Handle bogus <clinit> bodies, call
12663 analyze_clinit_body.
12664 (build_outer_field_access): Access to this$<n> built from
12665 current_class, not its outer context.
12666 (build_access_to_thisn): Fixed leading comment. Tidied things up.
12667 (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
12668 (patch_method_invocation): Use `is_static_flag' when already
12669 initialized.
12670 (patch_newarray): Removed assignment in ternary operator.
12671
12672 2000-10-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
12673
12674 * except.c (free_eh_ranges): Don't free `whole_range'.
12675
12676 2000-10-15 Anthony Green <green@redhat.com>
12677
12678 * decl.c (init_decl_processing): Call init_class_processing before
12679 anything else.
12680
12681 2000-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12682
12683 * check-init.c (check_init): Fixed leading comment. Use
12684 LOCAL_FINAL_P.
12685 * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12686 (give_name_to_locals): Likewise.
12687 (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
12688 fields in lang_decl_var.
12689 * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
12690 DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
12691 (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
12692 (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
12693 DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
12694 (LOCAL_FINAL): Rewritten.
12695 (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
12696 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
12697 (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
12698 `init_final' fields.
12699 (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
12700 `final_uid', `final_liic', `final_ierr' and `local_final' fields.
12701 (TYPE_HAS_FINAL_VARIABLE): New macro.
12702 (struct lang_type): Added `afv' field.
12703 * parse.y (check_static_final_variable_assignment_flag): New function.
12704 (reset_static_final_variable_assignment_flag): Likewise.
12705 (check_final_variable_local_assignment_flag): Likewise.
12706 (reset_final_variable_local_assignment_flag): Likewise.
12707 (check_final_variable_indirect_assignment): Likewise.
12708 (check_final_variable_global_assignment_flag): Likewise.
12709 (add_inner_class_fields): Use LOCAL_FINAL_P.
12710 (register_fields): Handle local finals and final variables.
12711 (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
12712 (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12713 (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
12714 on local finals.
12715 (java_complete_expand_methods): Loop to set
12716 TYPE_HAS_FINAL_VARIABLE. Call
12717 `reset_final_variable_local_assignment_flag' and
12718 `check_final_variable_local_assignment_flag' accordingly before
12719 and after constructor expansion. Call
12720 `reset_static_final_variable_assignment_flag'
12721 before expanding <clinit> and after call
12722 `check_static_final_variable_assignment_flag' if the
12723 current_class isn't an interface. After all methods have been
12724 expanded, call `check_final_variable_global_assignment_flag' and
12725 `check_static_final_variable_assignment_flag' if the current class
12726 is an interface.
12727 (maybe_yank_clinit): Fixed typo in comment.
12728 (build_outer_field_access_methods): Removed old sanity check. Use
12729 FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
12730 Don't create access methods for finals.
12731 (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
12732 (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
12733 existing DECL_INIT has been processed.
12734 (java_complete_lhs): Likewise.
12735 (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
12736 Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
12737 logic.
12738 (patch_assignment): Use LOCAL_FINAL_P.
12739 (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
12740 DECL_INITIAL is nullified.
12741 Fixes gcj/163.
12742
12743 2000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12744
12745 * Make-lang.in (parse.c, parse-scan.c): Create atomically.
12746
12747 * Makefile.in (parse.c, parse-scan.c): Likewise.
12748
12749 2000-10-12 Mark Mitchell <mark@codesourcery.com>
12750
12751 * class.c (temporary_obstack): Remove.
12752 (make_class): Don't mess with obstascks.
12753 (push_class): Likewise.
12754 (set_super_info): Likewise.
12755 (add_method_1): Likewise.
12756 (add_method): Likewise.
12757 (add_field): Likewise.
12758 (build_utf8_ref): Likewise.
12759 (build_class_ref): Likewise.
12760 (build_static_field_ref): Likewise.
12761 (finish_class): Likewise.
12762 (push_super_field): Likewise.
12763 (layout_class): Likewise.
12764 (layout_class_methods): Likewise.
12765 (init_class_processing): Likewise.
12766 * constants.c (get_tag_node): Likewise.
12767 (build_constant_data_ref): Likewise.
12768 * decl.c (ggc_p): Remove.
12769 (copy_lang_decl): Use ggc_alloc.
12770 (complete_start_java_method): Don't mess with obstacks.
12771 (start_java_method): Likewise.
12772 (end_java_method): Likewise.
12773 * except.c (link_handler): Use xmalloc.
12774 (free_eh_ranges): New function.
12775 (method_init_exceptions): Use it.
12776 (add_handler): Use xmalloc.
12777 (expand_start_java_handler): Don't mess with obstacks.
12778 (prepare_eh_table_type): Likewise.
12779 (expand_end_java_handler): Likewise.
12780 * expr.c (push_value): Likewise.
12781 (create_label_decl): Likewise.
12782 (build_jni_stub): Likewise.
12783 (java_lang_expand_expr): Likewise.
12784 (note_instructions): Use xrealloc.
12785 (java_push_constant_from_pool): Don't mess with obstacks.
12786 (process_jvm_instruction): Likewise.
12787 * java-tree.h (cyclic_inheritance_report): Remove duplicate
12788 declaration.
12789 * jcf-parse.c (get_constant): Don't mess with obstacks.
12790 (read_class): Likewise.
12791 (jcf_parse): Likewise.
12792 * lex.c (expression_obstack): Remove.
12793 (java_lex): Don't use obstack_free.
12794 * parse.h (exit_java_complete_class): Don't mess with obstacks.
12795 (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
12796 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
12797 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
12798 * parse.y (gaol): Add more GC roots.
12799 (add_inner_class_fields): Adjust calls to MANGLE_* macros.
12800 (lookup_field_wrapper): Likewise.
12801 (obtain_incomplete_type): Don't mess with obstacks.
12802 (build_alias_initializer_parameter_list): Adjust calls to MANGLE_*
12803 macros.
12804 (craft_constructor): Don't mess with obstacks.
12805 (safe_layout_class): Likewise.
12806 (java_complete_class): Likewise.
12807 (source_end_java_method): Likewise.
12808 (build_outer_field_access_methods): Likewise.
12809 (build_outer_method_access_method): Likewise.
12810 (maybe_build_thisn_access_method): Likewise.
12811 (build_dot_class_method_invocation): Likewise.
12812 (java_complete_tree): Likewise.
12813 (java_complete_lhs): Likewise.
12814 (do_merge_string_cste): Likewise.
12815 (patch_string_cst): Likewise.
12816 (array_constructor_check_entry): Likewise.
12817 * typeck.c (build_java_array_type): Likewise.
12818 (parse_signature_string): Likewise.
12819 (build_java_signature): Likewise.
12820
12821 2000-10-12 Tom Tromey <tromey@cygnus.com>
12822
12823 Fix for PR gcj/356:
12824 * gjavah.c (add_class_decl): Don't special-case inner classes.
12825 (add_namelet): Likewise.
12826
12827 2000-10-11 Rodney Brown <RodneyBrown@mynd.com>
12828
12829 * java-tree.h: Constify current_encoding.
12830 * lang.c: Constify current_encoding.
12831
12832 2000-10-10 Jeff Sturm <jeff.sturm@appnet.com>
12833
12834 * jvgenmain.c (class_mangling_suffix): Omit `.'.
12835 (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
12836
12837 2000-10-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12838
12839 * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
12840 patch. Fixes gcj/340.
12841
12842 2000-10-10 Tom Tromey <tromey@cygnus.com>
12843
12844 * lex.c (java_new_lexer): Initialize out_first and out_last
12845 fields.
12846 * lex.h (java_lexer): Added out_buffer, out_first, out_last.
12847
12848 2000-10-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
12849
12850 * parse.y (pop_current_osb): New function.
12851 (array_type:): Use `dims:', changed actions
12852 accordingly. Suggested by Anthony Green.
12853 (array_creation_expression:): Used pop_current_osb.
12854 (cast_expression:): Likewise.
12855 (search_applicable_method_list): Fixed indentation.
12856
12857 2000-10-08 Anthony Green <green@redhat.com>
12858
12859 * parse.y (array_type_literal): Remove production.
12860 (type_literals): Refer to array_type, not array_type_literal.
12861
12862 2000-10-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12863
12864 Patch contributed by Corey Minyard.
12865 * decl.c (check_local_named_variable): New function.
12866 (tree check_local_unnamed_variable): Likewise.
12867 (find_local_variable): Splitted. Call check_local_{un}named_variable.
12868
12869 2000-10-07 Anthony Green <green@redhat.com>
12870
12871 * class.c (layout_class): Handle case where superclass can't be
12872 layed out yet.
12873
12874 2000-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
12875
12876 * Makefile.in (keyword.h): Refer to GNU FTP site for updated
12877 gperf.
12878
12879 2000-10-05 Tom Tromey <tromey@cygnus.com>
12880
12881 * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
12882 * jvgenmain.c (class_mangling_prefix): Removed.
12883 (class_mangling_suffix): New global.
12884 (main): Use it.
12885 * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
12886 `$'.
12887 (print_method_info): Handle overrides for static and final
12888 methods.
12889 (process_file): Generate declaration for class object field.
12890 * class.c (cxx_keywords): New array.
12891 (utf8_cmp): New function.
12892 (cxx_keyword_p): New function.
12893 (layout_class_method): Mangle C++ keywords by appending `$'.
12894 (mangle_field): New function.
12895 (mangle_class_field): Use mangle_field. Mangle class name as
12896 `class$'.
12897 (mangle_static_field): Use mangle_field.
12898
12899 2000-10-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
12900
12901 * decl.c (find_local_variable): Removed uncessary type check and
12902 fixed range check typo. From Corey Minyard.
12903
12904 2000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12905
12906 * decl.c (give_name_to_locals): New local `code_offset'. Call
12907 `maybe_adjust_start_pc'.
12908 * expr.c (note_instructions): New function.
12909 (expand_byte_code): Don't collect insn starts here.
12910 (peek_opcode_at_pc): New function.
12911 (maybe_adjust_start_pc): Likewise.
12912 * java-tree.h (maybe_adjust_start_pc): Declare.
12913 (note_instructions): Likewise.
12914 * jcf-parse.c (parse_class_file): Call `note_instructions'.
12915
12916 2000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12917
12918 * parse.y (field_access:): Fixed indentation.
12919 (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
12920
12921 2000-09-07 Tom Tromey <tromey@cygnus.com>
12922
12923 Fix for PR gcj/307:
12924 * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
12925 JPRIMITIVE_TYPE_P, for arithmetic operators.
12926 (patch_method_invocation): Indentation fix.
12927 (try_builtin_assignconv): Handle boolean specially. Fixed typo.
12928 (valid_builtin_assignconv_identity_widening_p): Handle boolean.
12929 (do_unary_numeric_promotion): Cleaned up code.
12930 (valid_cast_to_p): Handle boolean correctly.
12931
12932 2000-09-27 Tom Tromey <tromey@cygnus.com>
12933
12934 * lex.c (java_read_unicode): Reset bs_count when finished with
12935 `\u' sequence.
12936
12937 2000-10-01 Mark Mitchell <mark@codesourcery.com>
12938
12939 Convert to GC.
12940 * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
12941 * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
12942 (typeck.o): Depend on ggc.h.
12943 * class.c (add_method_1): Use GC functions for allocation.
12944 (init_class_processing): Register roots.
12945 * decl.c (ggc_p): Set to 1.
12946 (pending_local_decls): Make it static.
12947 (push_jvm_slot): Use GC functions for allocation.
12948 (init_decl_processing): Register roots.
12949 (give_name_to_locals): Use GC functions for allocation.
12950 (lang_mark_tree): New function.
12951 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
12952 functions for allocation.
12953 * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
12954 * lex.c (java_lex): Use build_string, rather than replicating it
12955 inline.
12956 * parse.y (goal): Add more roots.
12957 (mark_parser_ctxt): New function.
12958 * typeck.c: Include ggc.h.
12959
12960 2000-09-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12961
12962 * parse.y (maybe_yank_clinit): Also keep <clinit> if its body
12963 contains something else than MODIFY_EXPR.
12964
12965 2000-09-23 Mark Mitchell <mark@codesourcery.com>
12966
12967 * Make-lang.in (JAVA_SRCS): Include java-tree.h.
12968 * Makefile.in (parse.o): Depend on ggc.h.
12969 (class.o): Likewise.
12970 (constants.o): Likewise.
12971 (decl.o): Likewise.
12972 (expr.o): Likewise.
12973 (jcf-parse.o): Likewise.
12974 (jcf-write.o): Likewise.
12975 (mangle.o): Likewise.
12976 * class.c: Include ggc.h.
12977 (build_static_field_ref): Register GC roots.
12978 (layout_class): Likewise.
12979 (init_class_processing): Likewise.
12980 * constants.c: Include ggc.h.
12981 (current_constant_pool_data_ref): Remove.
12982 (tag_nodes): Move it to ...
12983 (get_tag_node): ... here. Register GC roots.
12984 * decl.c: Include ggc.h. Remove many global tree definitions.
12985 (throw_node): Define.
12986 (java_global_trees): Likewise.
12987 (predef_filenames): Make the size a constant.
12988 (init_decl_processing): Adjust accordingly.
12989 (init_decl_processing): Call init_jcf_parse. Register GC roots.
12990 * expr.c: Include ggc.h.
12991 (init_expr_processing): Register GC roots.
12992 (build_invokeinterface): Likewise.
12993 * java-tree.h: Replace extern tree declarations with macros.
12994 (java_global_trees): New variable.
12995 (java_tree_index): New enumeration.
12996 (init_jcf_parse): Declare.
12997 * jcf-parse.c: Include ggc.h.
12998 (current_class): Remove declaration.
12999 (main_class): Likewise.
13000 (all_class_list): Likewise.
13001 (predefined_filename_p): Adjust for constant size of
13002 predef_filenames.
13003 (init_jcf_parse): New function.
13004 * jcf-write.c: Include ggc.h.
13005 (generate_classfile): Register GC roots.
13006 (append_synthetic_attribute): Likewise.
13007 (append_innerclass_attribute_entry): Likewise.
13008 * lang.c: Include ggc.h.
13009 (lang_print_error): Register GC roots.
13010 * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
13011 with macros.
13012 * parse.y: Include ggc.h.
13013 (wfl_operator): Remove.
13014 (goal): Register GC roots.
13015 (java_pop_parser_context): Adjust for new field names.
13016 (java_parser_context_save_global): Likewse.
13017 (java_parser_context_restore_global): Likewise.
13018 (java_parser_context_suspend): Likewise.
13019 (java_parser_context_resume): Likewise.
13020 (verify_constructor_circularity): Register GC roots.
13021 (lookup_cl): Likewise.
13022 (java_reorder_fields): Likewise.
13023 (build_current_this): Likewise.
13024 (class_in_current_package): Likewise.
13025 (argument_types_convertible): Likewise.
13026 (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
13027
13028 2000-09-14 Tom Tromey <tromey@cygnus.com>
13029
13030 * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
13031
13032 2000-09-13 Tom Tromey <tromey@cygnus.com>
13033
13034 * jcf-parse.c: Include <locale.h>.
13035 * jv-scan.c: Include <locale.h>.
13036
13037 2000-09-12 Tom Tromey <tromey@cygnus.com>
13038
13039 * expr.c (pop_type_0): Return `Object' if trying to merge two
13040 interface types.
13041 * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
13042 interface types; `Object' is always a valid supertype.
13043
13044 2000-09-12 Tom Tromey <tromey@cygnus.com>
13045
13046 Fix for PR gcj/33:
13047 * jv-scan.c (help): Document --encoding.
13048 (options): Added `encoding' entry.
13049 (OPT_ENCODING): New define.
13050 (main): Handle --encoding.
13051 Include <langinfo.h> if nl_langinfo exists.
13052 * lang-options.h: Document --classpath, --CLASSPATH, --main, and
13053 --encoding.
13054 * jcf-parse.c Include <langinfo.h> if we have nl_langinfo.
13055 (parse_source_file): Correctly call java_init_lex. Added `finput'
13056 argument. Use nl_langinfo to determine default encoding.
13057 * java-tree.h (current_encoding): Declare.
13058 * parse.y (java_parser_context_restore_global): Don't restore
13059 `finput'.
13060 (java_parser_context_save_global): Don't set `finput' field.
13061 (java_pop_parser_context): Don't restore `finput'. Free old lexer
13062 if required.
13063 * lang.c (current_encoding): New global.
13064 (lang_decode_option): Recognize `-fencoding='.
13065 (finish_parse): Don't close finput.
13066 * parse.h (struct parser_ctxt): Removed `finput' and
13067 `unget_utf8_value' fields. Added `lexer' field.
13068 (java_init_lex): Fixed declaration.
13069 * lex.c (java_new_lexer): New function.
13070 (java_destroy_lexer): Likewise.
13071 (java_read_char): Added `lex' argument. Handle iconv case.
13072 (java_read_unicode): Added `lex' argument. Count backslashes in
13073 lexer structure.
13074 (java_init_lex): Added `finput' and `encoding' arguments. Set
13075 `lexer' field in ctxp.
13076 (BAD_UTF8_VALUE): Removed.
13077 (java_lex): Handle seeing UEOF in the middle of a string literal.
13078 * lex.h: Include <iconv.h> if HAVE_ICONV defined.
13079 (java_lexer): New structure.
13080 (UNGETC): Removed.
13081 (GETC): Removed.
13082 (DEFAULT_ENCODING): New define.
13083 (java_destroy_lexer): Declare.
13084
13085 2000-09-12 Tom Tromey <tromey@cygnus.com>
13086
13087 Fix for PR gcj/343:
13088 * lex.c (java_init_lex): Initialize java_io_serializable.
13089 * parse.y (java_io_serializable): New global.
13090 (valid_ref_assignconv_cast_p): An array can be cast to
13091 serializable.
13092
13093 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
13094
13095 * decl.c, expr.c: Include defaults.h if not already included.
13096 Don't define the *_TYPE_SIZE macros.
13097
13098 2000-09-09 Geoffrey Keating <geoffk@cygnus.com>
13099
13100 * typeck.c (build_java_array_type): Correct first parameter
13101 in ADJUST_FIELD_ALIGN invocation.
13102
13103 2000-09-06 Tom Tromey <tromey@cygnus.com>
13104
13105 * lang-specs.h: Also recognize `-femit-class-files'.
13106
13107 2000-09-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13108
13109 * verify.c (merge_types): Load the types to merge if necessary.
13110
13111 2000-09-02 Anthony Green <green@redhat.com>
13112
13113 * jcf-io.c: Include zlib.h.
13114 (open_in_zip): Read compressed class file archives.
13115 * zipfile.h (ZipDirectory): Add uncompressed_size and
13116 compression_method fields.
13117 * zextract.c (read_zip_archive): Collect file compression info.
13118
13119 2000-08-15 Bryce McKinlay <bryce@albatross.co.nz>
13120
13121 * parse.y (do_resolve_class): Also explore superclasses of
13122 intermediate enclosing contexts when searching for inner classes.
13123
13124 2000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
13125
13126 * parse.y (variable_declarator_id:): Better error message.
13127 (expression_statement:): Use YYNOT_TWICE.
13128 (cast_expression:): Likewise.
13129 (assignment:): Likewise.
13130
13131 2000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
13132
13133 * parse.y (do_merge_string_cste): New locals. Create new
13134 STRING_CSTs each time, use memcpy. Fixes gcj/311.
13135
13136 2000-08-07 Hans Boehm <boehm@acm.org>
13137
13138 * boehm.c (mark_reference_fields): Set marking bits for all words in
13139 a multiple-word record.
13140 (get_boehm_type_descriptor): Use the procedure marking descriptor for
13141 java.lang.Class.
13142
13143 2000-08-31 Mike Stump <mrs@wrs.com>
13144
13145 * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
13146 jcf-dump$(exeext)): Make parallel safe.
13147
13148 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
13149
13150 * jcf-parse.c (set_source_filename): Constify a char *.
13151 * jcf-write.c (append_innerclasses_attribute,
13152 make_class_file_name): Constify a char *. Don't recycle a
13153 variable for an unrelated purpose.
13154 * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
13155 (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
13156
13157 2000-08-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
13158
13159 * expr.c (can_widen_reference_to): Fixed indentation.
13160 * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
13161 * parse.y: `finit$' replaces `$finit$' in comments.
13162 (try_builtin_assignconv): Fixed leading comment.
13163
13164 2000-08-25 Greg McGary <greg@mcgary.org>
13165
13166 * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
13167
13168 2000-08-24 Greg McGary <greg@mcgary.org>
13169
13170 * lang.c (lang_decode_option): Use ARRAY_SIZE.
13171 * parse.y (BINOP_LOOKUP): Likewise.
13172
13173 2000-08-22 Andrew Haley <aph@cygnus.com>
13174
13175 * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
13176 sign extending. Fixes gcj/321.
13177 * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
13178 combining to make a jlong. Fixes gcj/321.
13179
13180 2000-08-21 Nix <nix@esperi.demon.co.uk>
13181
13182 * lang-specs.h: Do not process -o or run the assembler if
13183 -fsyntax-only.
13184
13185 2000-08-16 Andrew Haley <aph@cygnus.com>
13186
13187 * typeck.c (build_java_array_type): Rewrite code to do array
13188 alignment. Take into account back-end macros when aligning array
13189 data. Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
13190 user to set alignment. Fixes gcj/252 and 160.
13191
13192 2000-08-09 Tom Tromey <tromey@cygnus.com>
13193
13194 * parse.y (check_abstract_method_definitions): Now return `int'.
13195 Check implemented interfaces. Fixes PR gcj/305.
13196
13197 * parse.y (patch_switch_statement): Disallow `long' in switch
13198 expressions. Fixes PR gcj/310.
13199
13200 2000-08-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
13201
13202 * decl.c (finit_leg_identifier_node): New global.
13203 (init_decl_processing): Use `finit$' to initialize
13204 finit_identifier_node. Use `$finit$' to initialize
13205 finit_leg_identifier_node.
13206 * expr.c (expand_java_field_op): Use ID_FINIT_P.
13207 * java-tree.h (finit_identifier_node): Changed attached comment.
13208 (finit_leg_identifier_node): New declaration.
13209 (ID_FINIT_P): Take finit_identifier_node and
13210 finit_leg_identifier_node into account. This is a backward
13211 compatibility hack.
13212
13213 2000-08-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
13214
13215 * jcf-write.c (generate_bytecode_conditional): Re-installed lost
13216 Jan 6 2000 patch.
13217 (generate_bytecode_insns): Check `nargs' before emitting it.
13218 * verify.c (merge_type_state): Fixed typo.
13219 * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
13220 generate_bytecode_{conditional,insns}.
13221
13222 2000-08-13 Anthony Green <green@redhat.com>
13223
13224 * check-init.c (check_init): Add case for BIT_FIELD_REF (required
13225 for -pg builds).
13226
13227 2000-08-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
13228
13229 * class.c (maybe_layout_super_class): Fixed indentation.
13230 * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
13231 (java_check_methods): New function declaration.
13232 * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
13233 instead of `str_ptr'.
13234 * jcf-write.c (generate_bytecode_insns): Emit number the of args
13235 of a `invokeinterface' at the right time.
13236 * parse.h (WFL_STRIP_BRACKET): New macro.
13237 (SET_TYPE_FOR_RESOLUTION): Use it.
13238 * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
13239 (check_class_interface_creation): Don't check for cross package
13240 innerclass name clashes.
13241 (method_header): Behave properly if MDECL is `error_mark_node'.
13242 (method_declarator): Return `error_mark_node' if bogus current
13243 class.
13244 (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
13245 (resolve_and_layout): New local `decl_type', set and used. Call
13246 java_check_methods.
13247 (java_check_methods): New method.
13248 (java_layout_classes): Use it.
13249 (resolve_qualified_expression_name): No EH check necessary in
13250 access$<n>.
13251 (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
13252 `case' statement.
13253 (patch_assignment): Set DECL_INITIAL on integral final local.
13254
13255 2000-08-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
13256
13257 * java-tree.h (flag_extraneous_semicolon): New extern.
13258 * lang-options.h: (-Wextraneous-semicolon): New option.
13259 * lang.c (flag_redundant): Fixed typo in leading comment.
13260 (flag_extraneous_semicolon): New global.
13261 (lang_decode_option): Set `flag_extraneous_semicolon' when
13262 -Wall. Decode `-Wextraneous-semicolon'.
13263 * parse.y (type_declaration:): Removed `SC_TK' hack, added
13264 `empty_statement' rule.
13265 (class_body_declaration): Likewise.
13266 (method_body:): Accept `;' as a method body.
13267 (static_initializer:): Removed `SC_TK' hack.
13268 (constructor_block_end:): Likewise.
13269 (empty_statement:): Report deprecated empty declaration. Fixes
13270 gcj/295
13271
13272 2000-08-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13273
13274 * parse.y (build_dot_class_method_invocation): Changed parameter
13275 name to `type'. Build signature from `type' and convert it to a
13276 STRING_CST if it's an array.
13277 (patch_incomplete_class_ref): `build_dot_class_method_invocation'
13278 to use `ref_type' directly.
13279
13280 2000-08-06 Ovidiu Predescu <ovidiu@cup.hp.com>
13281
13282 * lang-options.h: Added a comma after the last element to avoid
13283 syntax errors when other languages define additional options.
13284
13285 2000-08-04 Zack Weinberg <zack@wolery.cumb.org>
13286
13287 * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
13288 * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
13289 (jc1): Link with $(BACKEND).
13290 (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
13291
13292 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
13293
13294 * jvspec.c: Adjust type of second argument to
13295 lang_specific_driver, and update code as necessary.
13296
13297 * class.c (build_dtable_decl): Initialize dummy.
13298
13299 2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13300
13301 * parse.y (maybe_yank_clinit): When generating bytecode: non empty
13302 method bodies not to rule out discarding `<clinit>'; don't use
13303 <clinit> to initialize static fields with constant initializers.
13304
13305 2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13306
13307 * gjavah.c (print_method_info): Added `synth' parameter. Skip
13308 synthetic methods.
13309 (method_synthetic): New global.
13310 (HANDLE_METHOD): Recognize synthetic method and tell
13311 `print_method_info' about it.
13312 (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
13313 processing a synthetic method.
13314 * jcf-reader.c (skip_attribute): New function.
13315 ( skip_attribute): Likewise.
13316
13317 2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13318
13319 * parse.y (build_outer_field_access): Fixed comments.
13320 (fix_constructors): Emit the initialization of this$<n> before
13321 calling $finit$.
13322 (resolve_qualified_expression_name): Build an access to `decl' if
13323 necessary.
13324
13325 2000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
13326
13327 * parse-scan.y (curent_class): Non longer const.
13328 (inner_qualifier, inner_qualifier_length): Deleted.
13329 (current_class_length): New global.
13330 (bracket_count): Fixed typo in leading comment.
13331 (anonymous_count): New global.
13332 (class_instance_creation_expression:): Handle anonymous classes.
13333 (anonymous_class_creation:): New rule.
13334 (push_class_context): Rewritten.
13335 (pop_class_context): Likewise.
13336 (INNER_QUALIFIER): Macro deleted.
13337 (report_class_declaration): call `push_class_context' when
13338 entering the function. `fprintf' format modified not to use
13339 INNER_QUALIFIER.
13340 (report_class_declaration): Assign `package_name' and
13341 `current_class' to NULL separately.
13342
13343 2000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
13344
13345 * expr.c (build_invokeinterface): Call layout_class_methods on
13346 target interface.
13347
13348 2000-07-27 Tom Tromey <tromey@cygnus.com>
13349 Anthony Green <green@cygnus.com>
13350 Alexandre Petit-Bianco <apbianco@cygnus.com>
13351
13352 * class.c (make_class_data): Create vtable for abstract classes.
13353 (get_dispatch_table): Changed to cope with abstract classes.
13354
13355 2000-07-27 Tom Tromey <tromey@cygnus.com>
13356
13357 * parse.y (patch_method_invocation): Don't reverse the argument
13358 list when dealing with anonymous class constructors. Fixed typo in
13359 comment.
13360
13361 2000-07-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
13362
13363 * parse.y (build_alias_initializer_parameter_list): Reverse
13364 crafted list when building aliases for anonymous class
13365 constructors.
13366
13367 2000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13368
13369 * parse.y (jdep_resolve_class): Don't bother checking potential
13370 innerclass access if `decl' is NULL.
13371 (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
13372 WFL.
13373
13374 2000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13375
13376 * parse.c: Remove (again.)
13377
13378 2000-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
13379
13380 * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
13381 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
13382 outside the `if' statement, alias to innerclass removed, `decl'
13383 used to mark the class complete.
13384
13385 2000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
13386
13387 * parse.y (simple_name:): Fixed typo in error message.
13388
13389 2000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
13390
13391 * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
13392 or its first operand can be error marks.
13393
13394 2000-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
13395
13396 * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
13397 * parse.y (method_header): Likewise.
13398
13399 2000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
13400
13401 * parse.y (process_imports): Consider that one might be trying to
13402 import an innerclass. Fixes gcj/254
13403
13404 2000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
13405
13406 * parse.y (find_as_inner_class): Handle the case where the
13407 enclosing context of an innerclass has been loaded as bytecode.
13408
13409 2000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
13410
13411 * parse.y (simple_name:): Reject `$' in type names.
13412 (resolve_type_during_patch): Use `type' as a second
13413 argument to resolve_no_layout. Fixes gcj/257.
13414
13415 2000-07-18 Bryce McKinlay <bryce@albatross.co.nz>
13416
13417 * parse.y (find_most_specific_methods_list): Select the only
13418 non-abstract method even if max has been set.
13419 Fixes gcj/285, gcj/298.
13420
13421 2000-07-18 Jeff Sturm <jeff.sturm@appnet.com>
13422
13423 * lang-specs.h: Added %(jc1) to java compiler options.
13424
13425 2000-07-14 Zack Weinberg <zack@wolery.cumb.org>
13426
13427 * .cvsignore: New file.
13428
13429 2000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13430
13431 * parse.y (not_accessible_p): Access granted to innerclasses
13432 (indirectly) extending the reference type. Fixes gcj/249.
13433
13434 2000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13435
13436 * parse.y (patch_method_invocation): Fixed comment.
13437 (maybe_use_access_method): Build this$<n>s to the context of the
13438 target method, or a type that extends it. Fixes gcj/242.
13439
13440 2000-07-13 Mark Mitchell <mark@codesourcery.com>
13441
13442 * parse.c: Remove.
13443
13444 2000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13445
13446 * parse.y (fold_constant_for_init): Avoid bullish conversion.
13447
13448 2000-07-13 Tom Tromey <tromey@cygnus.com>
13449
13450 * lang-specs.h: Added %{I*}.
13451
13452 2000-07-13 Zack Weinberg <zack@wolery.cumb.org>
13453
13454 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
13455
13456 2000-07-12 Mark Mitchell <mark@codesourcery.com>
13457
13458 * parse-scan.c: Remove.
13459
13460 2000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
13461
13462 * class.c (set_super_info): Handled protected inner classes.
13463 (common_enclosing_context_p): Bail early if arguments aren't both
13464 inner classes.
13465 (get_access_flags_from_decl): Handle private and protected inner
13466 classes.
13467 * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
13468 (CLASS_PROTECTED): Likewise.
13469 (struct lang_type): New bitfield `poic'.
13470 * parse.y (jdep_resolve_class): Call check_inner_class_access on
13471 inner classes only.
13472 (check_inner_class_access): Renamed arguments, added
13473 comments. Handles protected inner classes (fixes gcj/225)
13474 (not_accessible_p): Fixed comments. Avoid handling inner classes.
13475
13476 2000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
13477
13478 * parse.y (resolve_qualified_expression_name): Verify qualified
13479 access to `this'. Fixes gcj/239.
13480
13481 2000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
13482
13483 * jcf-write.c (generate_classfile): Don't install ConstantValue
13484 for null pointers.
13485
13486 2000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13487
13488 * parse.y (resolve_qualified_expression_name): Handle inner class
13489 access. Fixes gcj/256.
13490
13491 2000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13492
13493 * jcf-write.c (generate_classfile): Properly install the
13494 ConstantValue attribute and the initial value constant pool index
13495 on string constants.
13496 * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
13497 class files.
13498
13499 2000-07-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
13500
13501 * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
13502 construct.
13503 * parse.y (find_as_inner_class): Fixed typo.
13504 (do_resolve_class): Explore enclosing contexts when searching for
13505 innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
13506 (check_inner_class_access): Check `decl' which can be null in case
13507 of previous errors.
13508
13509 2000-07-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13510
13511 * java-tree.h (java_debug_context): Declared `extern'.
13512 (safe_layout_class): Likewise.
13513 * parse.y (resolve_field_access): Field must be `static' in order
13514 to be replaced by its initial value. Added comments.
13515 (find_applicable_accessible_methods_list): Fixed typo.
13516 (find_most_specific_methods_list): Methods found in innerclasses
13517 take over methods founds in the enclosing contexts.
13518 (java_complete_tree): Loosen restrictions on the type of DECLs
13519 that can be replaced by their initialization values.
13520 (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
13521
13522 2000-07-05 Tom Tromey <tromey@cygnus.com>
13523
13524 * Make-lang.in (PARSE_DIR): New macro.
13525 (PARSE_RELDIR): Likewise.
13526 (PARSE_C): Likewise.
13527 (PARSE_SCAN_C): Likewise.
13528 ($(PARSE_C)): New target.
13529 ($(PARSE_SCAN_C)): Likewise.
13530 (SET_BISON): New macro.
13531 (BISONFLAGS): Likewise.
13532 (JAVABISONFLAGS): Likewise.
13533
13534 2000-07-02 Bryce McKinlay <bryce@albatross.co.nz>
13535
13536 * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
13537 argument on the first pass for CNI as well as JNI.
13538 (print_method_info): Set up method name on the first pass only.
13539
13540 2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13541
13542 * parse.y (parser_qualified_classname): Removed parameter
13543 `is_static'.
13544 (create_interface): Removed first passed parameter to
13545 parser_qualified_classname.
13546 (create_class): Likewise. Don't install alias on static
13547 innerclasses. Fixes gcj/275.
13548
13549 2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13550
13551 * parse.y (maybe_generate_pre_expand_clinit): Don't build a
13552 debugable statement with empty_stmt_node. Fixes gcj/272
13553
13554 2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13555
13556 * expr.c (build_instanceof): Layout type after it's loaded. Fixes
13557 gcj/271.
13558
13559 2000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
13560
13561 * jcf-write.c (push_long_const): Appropriately cast short negative
13562 constant to jword.
13563
13564 2000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
13565
13566 * parse.y (verify_constructor_super): Use loop variable
13567 `m_arg_type' initialized with `mdecl_arg_type'.
13568
13569 2000-06-29 Tom Tromey <tromey@cygnus.com>
13570
13571 * parse.y (resolve_field_access): Handle case where `type_found'
13572 is NULL.
13573
13574 2000-06-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
13575
13576 * expr.c (lookup_field): The same field can be found through two
13577 different interface. Don't declare it ambiguous in that case.
13578
13579 2000-06-27 Tom Tromey <tromey@cygnus.com>
13580
13581 * lex.c (java_lineterminator): Don't recognize \r after \n. If \r
13582 follows \r, then unget it at a lower level.
13583
13584 2000-06-26 Tom Tromey <tromey@cygnus.com>
13585
13586 * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
13587 java_complete_tree.
13588
13589 2000-06-25 Tom Tromey <tromey@cygnus.com>
13590
13591 * parse.y (for_statement): Wrap expression in a WFL if it is a
13592 constant. For PR gcj/268.
13593
13594 2000-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13595
13596 * parse.y (do_resolve_class): Minor optimiztion in the package
13597 list search. Removed unnecessary test and return statement.
13598 (valid_ref_assignconv_cast_p): Order of arguments to
13599 enclosing_context_p fixed.
13600
13601 2000-06-24 Tom Tromey <tromey@cygnus.com>
13602
13603 * expr.c (lookup_field): Print error and return error_mark_node if
13604 field reference is ambiguous.
13605
13606 * parse.y (check_abstract_method_definitions): Also check if
13607 `other_method' is abstract.
13608
13609 2000-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
13610
13611 * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
13612 classes.
13613 * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
13614 (struct lang_type): New field `pic'.
13615 (CLASS_PRIVATE): New macro.
13616 * parse.y (check_inner_class_access): New function.
13617 (jdep_resolve_class): Call it.
13618
13619 2000-06-23 Tom Tromey <tromey@cygnus.com>
13620
13621 * parse.y (patch_incomplete_class_ref): Initialize the returned
13622 class. For PR gcj/260.
13623
13624 2000-06-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
13625
13626 * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
13627
13628 2000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
13629
13630 * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
13631 Java specific checks.
13632 * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
13633 screened by DECL_P.
13634 * java-tree.def (CASE_EXPR): Marked 'e'.
13635 (DEFAULT_EXPR): Likewise.
13636 * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
13637 screened by DECL_P.
13638 * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
13639 Java specific checks.
13640 (generate_bytecode_insns): Test try_block for BLOCK before using
13641 BLOCK_EXPR_BODY.
13642 * parse.y (build_wfl_wrap): Added `location' argument. Set
13643 EXPR_WFL_LINECOL accordingly.
13644 (dim_expr:): Wrap constants with WFLs.
13645 (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
13646 (resolve_package): Check for `stmt' not being a BLOCK before
13647 building a debuggable statement with it.
13648 (make_qualified_primary): Added extra parameter to build_wfl_wrap
13649 invocation.
13650 (resolve_field_access): Make sure `decl' is a DECL before treating
13651 it as such.
13652 (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
13653 IDENTIFIER_NODE before treating it as such.
13654 (patch_new_array_init): Make sure `elt' is a TREE_LIST before
13655 treating it as such.
13656 (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
13657 to be applied only on non array types.
13658
13659 2000-06-16 Per Bothner <per@bothner.com>
13660
13661 * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN): Don't
13662 define in terms of DECL_RESULT, as that fails when --enable-checking.
13663
13664 2000-06-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13665
13666 * jcf-write.c (CHECK_PUT): Add static prototype. Make pointer
13667 types the same in comparison.
13668 (CHECK_OP): Add static prototype.
13669
13670 2000-06-13 Jakub Jelinek <jakub@redhat.com>
13671
13672 * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
13673 * parse.y (java_complete_class): Set DECL_USER_ALIGN.
13674 * parse.c: Rebuilt.
13675
13676 2000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13677
13678 * decl.c (create_primitive_vtable): Prototype.
13679
13680 * jcf-write.c (generate_bytecode_insns): Initialize variable
13681 `saved_context'.
13682
13683 * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
13684
13685 2000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
13686
13687 * parse.y (find_applicable_accessible_methods_list): Use a hashtable
13688 to track searched classes, and do not search the same class more than
13689 once. Call find_applicable_accessible_methods_list on immediate
13690 superclass, instead of search_applicable_method_list on all ancestors.
13691 Fix for PR gcj/238.
13692
13693 2000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
13694
13695 * parse.y (register_fields): Permit static fields in inner classes
13696 if they are final. Fix for PR gcj/255.
13697
13698 2000-06-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
13699
13700 * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
13701 * parse.y (find_in_imports): Returned type changed to void,
13702 leading comment fixed.
13703 (register_package): New function.
13704 (qualify_and_find): Likewise.
13705 (package_declaration:): Use `register_package'.
13706 (single_type_import_declaration:): Removed local variable
13707 `node'. Added missing `;' for consistency.
13708 (type_import_on_demand_declaration:): Use `chainon' to link new
13709 entries.
13710 (lookup_field_wrapper): Lookup local variables defined in outer
13711 contexts first.
13712 (java_complete_class): Don't reverse the list of imported on demand.
13713 (do_resolve_class): Reorganized. Removed local variable
13714 `original_name'. Call `qualify_and_find' with the current package
13715 name, invoke `find_in_imports_on_demand' right after. Call
13716 `qualify_and_find' with the packages we've seen so far. Fixed
13717 operations numbering in comments.
13718 (java_expand_class): Don't reverse `package_list'.
13719 (find_most_specific_methods_list): New local variables `abstract'
13720 and `candidates'. Use them to pick the right method.
13721
13722 2000-06-06 Tom Tromey <tromey@ferrule.cygnus.com>
13723
13724 * parse.y (check_modifiers_consistency): Don't subtract out
13725 `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
13726
13727 2000-06-04 Philipp Thomas <pthomas@suse.de>
13728
13729 * Makefile.in (INTLLIBS): New.
13730 (LIBS): Add above.
13731 (DEPLIBS): Ditto.
13732
13733 2000-06-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13734
13735 * class.c (get_dispatch_table): Build the vtable dummy entry list
13736 element with a null purpose. Fixed leading comment.
13737 (build_dtable_decl): Build an accurate dtable type when appropriate
13738 and use it.
13739
13740 2000-06-02 Richard Henderson <rth@cygnus.com>
13741
13742 * lang.c (lang_get_alias_set): New.
13743
13744 2000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
13745
13746 * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
13747 before using it as the accessed field.
13748
13749 2000-05-31 Tom Tromey <tromey@cygnus.com>
13750
13751 * java-tree.h (boolean_array_vtable, byte_array_vtable,
13752 char_array_vtable, short_array_vtable, int_array_vtable,
13753 long_array_vtable, float_array_vtable, double_array_vtable):
13754 Declare.
13755 * expr.c (get_primitive_array_vtable): New function.
13756 (create_primitive_vtable): New function.
13757 (java_lang_expand_expr): Enable code to statically generate
13758 arrays.
13759 * decl.c (init_decl_processing): Create primitive vtables.
13760 (boolean_array_vtable, byte_array_vtable, char_array_vtable,
13761 short_array_vtable, int_array_vtable, long_array_vtable,
13762 float_array_vtable, double_array_vtable): Define.
13763
13764 2000-05-26 Zack Weinberg <zack@wolery.cumb.org>
13765
13766 * java/parse.y (find_applicable_accessible_methods_list):
13767 Don't add an uninitialized value to the list.
13768
13769 2000-05-25 Tom Tromey <tromey@cygnus.com>
13770
13771 * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
13772 when trying to see if field's class should be initialized. Always
13773 initialize field's declaring class, not qualified class.
13774 For PR gcj/162.
13775
13776 * parse.y (array_constructor_check_entry): Pass `wfl_value', not
13777 `wfl_operator', to maybe_build_primttype_type_ref.
13778 Fixes PR gcj/235.
13779
13780 2000-05-23 Bryce McKinlay <bryce@albatross.co.nz>
13781
13782 * parse.y (patch_method_invocation): Don't try to lookup methods
13783 in primitive types.
13784
13785 2000-05-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13786
13787 * parse.y (resolve_field_access): Call the appropriate <clinit>
13788 before accessing the length of a static array. Craft a decl for
13789 the field while its time. Fixes PR gcj/129.
13790
13791 2000-05-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13792
13793 * parse.y (resolve_package): Correctly set `*next' (was off by
13794 one.)
13795 (resolve_qualified_expression_name): Fixed comment.
13796
13797 2000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
13798
13799 * jcf-parse.c (jcf_parse_source): Reset current_class and
13800 current_function_decl to NULL before parsing a new file.
13801
13802 2000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
13803
13804 * parse.y (block_end:): If the collected block doesn't feature a
13805 statement, insert an empty statement.
13806
13807 2000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13808
13809 * parse.y (maybe_yank_clinit): New function.
13810 (maybe_generate_pre_expand_clinit): Always link <clinit> at the
13811 end of the list of methods belonging to a class.
13812 (java_complete_expand_method): Check whether <clinit> is really
13813 necessary and expand it accordingly.
13814
13815 2000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13816
13817 * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
13818 processed by the method's switch statement.
13819
13820 2000-05-19 Tom Tromey <tromey@cygnus.com>
13821
13822 * java-tree.h: Added init state enum.
13823 * decl.c (emit_init_test_initialization): Initialize class
13824 initialization check variable by looking at class' state.
13825
13826 2000-05-19 Tom Tromey <tromey@cygnus.com>
13827
13828 * java-tree.h (build_instanceof): Declare.
13829 (build_get_class): Declare.
13830 * parse.y (patch_binop): Use build_instanceof.
13831 * expr.c (build_instanceof): New function. If class is final,
13832 don't make a function call.
13833 (expand_java_INSTANCEOF): Use it.
13834 (build_get_class): New function.
13835
13836 2000-05-18 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13837
13838 * jcf-write.c (generate_classfile): Scan the source_file for
13839 slashes with the right pointer variable.
13840
13841 2000-05-17 Andrew Cagney <cagney@b1.cygnus.com>
13842
13843 * lang.c (lang_decode_option): Update -Wunused flags by calling
13844 set_Wunused.
13845 * decl.c (poplevel): Replace warn_unused with warn_unused_label.
13846
13847 2000-05-09 Zack Weinberg <zack@wolery.cumb.org>
13848
13849 * check_init.c (check_init): Constify local char *.
13850 * class.c (push_class): Constify local char *.
13851 * java_tree.h: Update prototypes.
13852 * jcf-io.c (open_class): Constify filename parameter and
13853 return value.
13854 (find_class): Remove redundant string copy. Cast return from
13855 open_class.
13856 * jcf-parse.c (read_class, parse_class_file, yyparse):
13857 Constify local char *.
13858 * jcf-write.c (generate_bytecode_insns, generate_classfile):
13859 Constify local char *.
13860 * jcf.h (JCF): Constify filename and classname.
13861 (JCF_FINISH): Cast args to FREE to char * when appropriate.
13862 * lang.c (init_parse): Constify parameter and return value.
13863 * lex.c (java_get_line_col): Constify filename parameter.
13864 * parse.h: Constify parser_ctxt.filename. Update prototypes.
13865 * parse.y (java_parser_context_suspend,
13866 issue_warning_error_from_context, safe_layout_class): Constify
13867 local char *.
13868 * parse.c: Regenerate.
13869
13870 2000-05-08 Tom Tromey <tromey@cygnus.com>
13871
13872 * expr.c (build_jni_stub): Cache the result of
13873 _Jv_LookupJNIMethod.
13874
13875 2000-05-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13876
13877 * decl.c (predef_filenames_size): Now 7.
13878 (predef_filenames): New seventh entry.
13879
13880 2000-05-04 Tom Tromey <tromey@cygnus.com>
13881
13882 * boehm.c (mark_reference_fields): Don't mark RawData fields.
13883 Keep track of when we've seen a reference field after a
13884 non-reference field.
13885 (get_boehm_type_descriptor): Handle case where we see
13886 non-reference fields but no trailing reference field.
13887 * decl.c (rawdata_ptr_type_node): Define.
13888 (init_decl_processing): Initialize rawdata_ptr_type_node.
13889 * java-tree.h (rawdata_ptr_type_node): Declare.
13890
13891 2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13892
13893 * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
13894 specifiers in calls to fprintf.
13895
13896 2000-05-03 Andrew Haley <aph@cygnus.com>
13897
13898 * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
13899
13900 * javaop.h (WORD_TO_INT): New function.
13901 (IMMEDIATE_s4): Use WORD_TO_INT.
13902 * jcf.h (JPOOL_INT): Ditto.
13903
13904 * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
13905 separator.
13906
13907 2000-04-19 Tom Tromey <tromey@cygnus.com>
13908
13909 * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
13910 on native function.
13911 * jcf-parse.c (parse_class_file): Call build_jni_stub for native
13912 JNI methods.
13913 * expr.c (build_jni_stub): New function.
13914 * lang-specs.h: -fjni and -femit-class-file are incompatible.
13915 * parse.c: Rebuilt.
13916 * parse.y (java_complete_expand_methods): Expand a native method
13917 and call build_jni_stub if -fjni given.
13918 * lang-options.h: Document -fjni.
13919 * lang.c (flag_jni): New global.
13920 (lang_f_options): Added `jni' entry.
13921 * java-tree.h (soft_lookupjnimethod_node,
13922 soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
13923 Declare.
13924 (flag_jni): Declare.
13925 (build_jni_stub): Declare.
13926 (struct lang_decl): Added `native' flag.
13927 (METHOD_NATIVE): Redefined to use `native' field of lang specific
13928 structure.
13929 * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
13930 soft_jnipopsystemframe_node): New globals.
13931 (init_decl_processing): Set them. _Jv_InitClass only takes one
13932 argument.
13933
13934 * java-tree.def: Put into `C' mode.
13935
13936 2000-04-27 Tom Tromey <tromey@cygnus.com>
13937
13938 Fix for PR gcj/2:
13939 * expr.c (expand_invoke): Generate check to see if object pointer
13940 is null in nonvirtual invocation case.
13941 * java-tree.h (soft_nullpointer_node): Declare.
13942 * decl.c (soft_nullpointer_node): New global.
13943 (init_decl_processing): Initialize soft_nullpointer_node.
13944 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13945 or `private' methods.
13946 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13947
13948 2000-04-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
13949
13950 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
13951 from <clinit>
13952
13953 2000-04-26 Tom Tromey <tromey@cygnus.com>
13954
13955 * zextract.c (find_zip_file_start): New function.
13956 (read_zip_archive): Use it.
13957
13958 2000-04-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13959
13960 * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
13961
13962 2000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
13963
13964 * class.c (common_enclosing_context_p): New function.
13965 * java-tree.h (common_enclosing_context_p): Added prototype.
13966 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
13967 classes sharing an outer context with the current instance.
13968 * parse.y (build_access_to_thisn): Fixed leading comment.
13969 (verify_constructor_super): New local `supper_inner'. Skip
13970 enclosing context argument in the case of inner class constructors.
13971 (patch_method_invocation): Insert proper context as second
13972 parameter to pure inner class constructor super invocations.
13973
13974 2000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
13975
13976 * parse.y (end_class_declaration): Reset the interface number
13977 counter.
13978
13979 2000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
13980
13981 * parse.y (source_start_java_method): Deleted unnecessary code.
13982 (patch_method_invocation): Fixed comment.
13983
13984 2000-04-24 Robert Lipe <robertlipe@usa.net>
13985
13986 * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
13987
13988 2000-04-23 Tom Tromey <tromey@cygnus.com>
13989
13990 * boehm.c (mark_reference_fields): Use int_byte_position.
13991
13992 2000-04-22 Tom Tromey <tromey@cygnus.com>
13993
13994 * boehm.c (mark_reference_fields): Only call byte_position on
13995 non-static fields.
13996
13997 2000-04-22 Tom Tromey <tromey@cygnus.com>
13998
13999 * boehm.c (mark_reference_fields): Added `last_view_index'
14000 argument. Use DECL_FIELD_OFFSET to determine field's offset.
14001
14002 2000-04-20 Mo DeJong <mdejong@cygnus.com>
14003
14004 * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
14005 * parse.y (check_class_interface_creation): Fixed comments. Select
14006 permitted modifiers for (inner) interfaces. Changed error message
14007 to report rejected modifiers used with local classes.
14008
14009 2000-04-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
14010
14011 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
14012 of directly inherited type considered in scope.
14013 * parse.y (do_resolve_class): Search inherited classes for inner
14014 classes.
14015
14016 2000-04-20 Tom Tromey <tromey@cygnus.com>
14017
14018 * parse.y (not_accessible_p): Use member's class, not current
14019 class, when doing inheritance check for protected reference.
14020 Fixes PR gcj/124.
14021
14022 2000-04-20 Jason Schroeder <shrode@subnature.com>
14023
14024 * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
14025
14026 2000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
14027
14028 * parse.y (lookup_field_wrapper): Search for final local aliases.
14029 (resolve_expression_name): Let lookup_field_wrapper search for
14030 final local aliases. Force the value of `name' if one is found.
14031 (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
14032 an expression name. Fixed comments.
14033
14034 2000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
14035
14036 * parse.y (yyerror): `msg' can be null, don't use it in that case.
14037
14038 2000-04-19 Tom Tromey <tromey@cygnus.com>
14039
14040 * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
14041
14042 2000-04-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
14043
14044 * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
14045
14046 2000-04-18 Tom Tromey <tromey@cygnus.com>
14047
14048 PR gcj/211:
14049 * gjavah.c (utf8_cmp): Changed return value.
14050 (cxx_keyword_subst): Handle all C++ keywords. Allocate new return
14051 result.
14052 (cxx_keywords): New global.
14053 (get_field_name): Handle new result of cxx_keyword_subst.
14054 (print_method_info): Likewise.
14055
14056 2000-04-17 Bryce McKinlay <bryce@albatross.co.nz>
14057
14058 * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
14059 with a newline, for CNI.
14060 (print_stub_or_jni): Print a space or newline before method name for
14061 CNI as well as JNI.
14062 (print_cxx_classname): Don't write leading "::" in CNI stub method.
14063 (process_file): Include gcj/cni.h if generating CNI stubs.
14064
14065 2000-04-16 Tom Tromey <tromey@cygnus.com>
14066
14067 * gjavah.c (decompile_method): Use print_field_name.
14068 Fixes PR gcj/205.
14069
14070 2000-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14071
14072 * parse.y (java_expand_classes): Reverse the package list once.
14073 (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
14074 reduction.
14075 (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
14076 the `==' and `!=' operators.
14077
14078 2000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
14079
14080 * jcf-write.c (generate_bytecode_insns): At invocation time,
14081 always relate an interface method to the type of its selector.
14082
14083 2000-04-05 Tom Tromey <tromey@cygnus.com>
14084
14085 Fix for PR gcj/2:
14086 * expr.c (expand_invoke): Generate check to see if object pointer
14087 is null in nonvirtual invocation case.
14088 * java-tree.h (soft_nullpointer_node): Declare.
14089 * decl.c (soft_nullpointer_node): New global.
14090 (init_decl_processing): Initialize soft_nullpointer_node.
14091 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
14092 or `private' methods.
14093 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
14094
14095 2000-04-05 Tom Tromey <tromey@cygnus.com>
14096
14097 Fix for PR gcj/140:
14098 * parse.y (check_final_assignment): Recognize assignments to the
14099 `length' field of an array when generating class files.
14100
14101 2000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
14102
14103 * class.c (decl_hash): Prototype removed.
14104 (decl_compare): Likewise.
14105
14106 2000-04-05 Tom Tromey <tromey@cygnus.com>
14107
14108 * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
14109 * parse.y (check_modifiers_consistency): Check for final/volatile
14110 clash. Fixes PR gcj/164.
14111
14112 2000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
14113
14114 * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
14115 made global.
14116 (java_hash_compare_tree_node): Renamed from `decl_compare, made
14117 global.
14118 (add_method_1): Use `java_hash_hash_tree_node' and
14119 `java_hash_compare_tree_node'.
14120 * java-tree.h: (java_hash_hash_tree_node): Prototyped.
14121 (java_hash_compare_tree_node): Likewise.
14122 * parse.y (find_applicable_accessible_methods_list): Create,
14123 delete and use a hash table to remember already searched interfaces.
14124
14125 2000-04-03 Matt Welsh <mdw@cs.berkeley.edu>
14126
14127 * jcf-depend.c (add_entry): Fixed bug where list was always replaced
14128 with latest entry.
14129
14130 2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14131
14132 * boehm.c (mark_reference_fields, set_bit): Prototype.
14133 (set_bit): Un-ANSI-fy definition.
14134
14135 * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
14136 Prototype.
14137
14138 * decl.c (emit_init_test_initialization): Likewise.
14139
14140 * gjavah.c (jni_print_char): Likewise.
14141
14142 * parse.y (create_new_parser_context): Likewise.
14143
14144 2000-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
14145
14146 * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
14147 patch missing hunk. Fixed indentation.
14148
14149 2000-03-30 Tom Tromey <tromey@cygnus.com>
14150
14151 * gjavah.c (D_NAN_MASK): Only define as word-reversed when
14152 HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
14153
14154 2000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
14155
14156 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
14157 when negative *before* using it as an array index.
14158 * ChangeLog: Fixed typo.
14159
14160 2000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
14161
14162 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
14163 to 0 when it reaches -1.
14164
14165 2000-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
14166
14167 * jcf-parse.c (get_constant): Properly cast `num' during the
14168 invocation of `add_double'.
14169 * jcf-write.c (push_long_const): Properly cast `lo' before
14170 comparing it to short bounds.
14171 * parse-scan.y (interface_declaration:): Rule re-arrange so that
14172 `interface_body:' is reduced after the current interface is
14173 pushed.
14174
14175 2000-03-26 Tom Tromey <tromey@cygnus.com>
14176
14177 * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
14178 Java-specific `-f' option.
14179
14180 2000-03-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14181
14182 * decl.c (init_decl_processing): Only call initialize_sizetypes once.
14183 Adjust order of making types.
14184 Make bitsize_*_node values.
14185
14186 2000-03-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14187
14188 * class.c (make_field_value): Use byte_position.
14189 * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
14190 (java_array_data_offset): Likewise.
14191 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
14192 bzero call.
14193
14194 2000-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
14195
14196 * parse.y (check_abstract_method_definitions): New local
14197 `end_type_reached'. Make sure we also consider `end_type'.
14198 (java_check_abstract_method_definitions): Make sure we eventually
14199 consider `java.lang.Object'.
14200 (maybe_use_access_method): Don't use access method if not in the
14201 context of a pure inner class or if the method's context is right.
14202 (find_applicable_accessible_methods_list): New static flag
14203 `object_done'. Don't search abstract classes as interfaces. Fixed
14204 indentation. Fixed the `java.lang.Object' only search. Search
14205 class interface(s) first, then fully search enclosing contexts.
14206 (find_most_specific_methods_list): Pick the closest candidate when
14207 they're all abstract.
14208
14209 2000-03-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
14210
14211 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
14212 properly initialize `finished_label'. Don't emit gotos for empty
14213 try statements.
14214
14215 2000-03-19 Martin v. Löwis <loewis@informatik.hu-berlin.de>
14216
14217 * except.c (emit_handlers): Clear catch_clauses_last.
14218
14219 2000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
14220
14221 * parse.y (check_method_types_complete): New function.
14222 (create_class): Reset anonymous class counter only when seeing an
14223 non inner classe.
14224 (java_complete_class): JDEP_METHOD: Don't recompute signature
14225 if incomplete.
14226
14227 2000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
14228
14229 * class.c (build_static_ref): Fixed indentation in comment.
14230 * java-tree.def (TRY_EXPR): Fixed typo in name.
14231 (CLASS_LITERAL): Likewise.
14232 * java-tree.h: (TYPE_DOT_CLASS): New macro.
14233 (struct lang_type): New field `dot_class'.
14234 * jcf-write.c (generate_bytecode_insns): Fixed error message.
14235 (generate_classfile): Method `class$' is synthetic.
14236 * parse.y (build_do_class_method): New function.
14237 (build_dot_class_method_invocation): Likewise.
14238 (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary.
14239 (resolve_qualified_expression_name): Handle CLASS_LITERAL.
14240 (qualify_ambiguous_name): Likewise.
14241 (patch_incomplete_class_ref): Invoke synthetic method if necessary.
14242 (build_try_statement): Fixed leading comment.
14243
14244 2000-03-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14245
14246 * class.c (make_field_value): Properly handle sizes.
14247 (get_dispatch_vector): Use tree_low_cst and host_integerp.
14248 (layout_class_method): Count using trees.
14249 * decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node.
14250 * expr.c (java_array_data_offset): Use int_bit_position.
14251 (build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
14252 (build_invokevirtual): Use tree_low_cst and do computations with trees.
14253
14254 2000-03-16 Tom Tromey <tromey@cygnus.com>
14255
14256 * lang.c (flag_hash_synchronization): New global.
14257 (lang_f_options): Added `hash-synchronization'.
14258 * lang-options.h: Mention -fhash-synchronization.
14259 * java-tree.h (flag_hash_synchronization): Declare.
14260 * expr.c (java_lang_expand_expr): Only push `sync_info' value when
14261 hash table synchronization is disabled.
14262 * decl.c (init_decl_processing): Only push `sync_info' value when
14263 hash table synchronization is disabled.
14264 * class.c (make_class_data): Only push `sync_info' field when hash
14265 table synchronization is disabled. Removed dead code.
14266
14267 2000-03-16 Tom Tromey <tromey@cygnus.com>
14268
14269 * lang.c (lang_decode_option): Enable -Wunused when -Wall given.
14270
14271 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
14272
14273 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous
14274 classes.
14275 * parse.y (patch_method_invocation): Handle anonymous classes
14276 creation in static context.
14277
14278 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
14279
14280 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro.
14281 * parse.y (resolve_qualified_expression_name): Use it.
14282 (patch_method_invocation): Likewise.
14283
14284 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
14285
14286 * parse.y (register_incomplete_type): JDEP_ENCLOSING set
14287 depending on the type of dependency which dictates what the
14288 current class is.
14289 (unresolved_type_p): Resolved types limited to the current class.
14290
14291 2000-03-15 Tom Tromey <tromey@cygnus.com>
14292
14293 * decl.c (init_decl_processing): Set type of `sync_info' to be
14294 pointer to Object.
14295
14296 * boehm.c (get_boehm_type_descriptor): Correctly compute `bits'.
14297 Correctly compute bit number for current slot. Zero `high' and
14298 `low' in DS_LENGTH case. Don't skip inherited fields. Use
14299 mark_reference_fields.
14300 (mark_reference_fields): New function.
14301
14302 2000-03-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14303
14304 * parse.y (register_incomplete_type): Fixed initialization of
14305 JDEP_ENCLOSING.
14306
14307 2000-02-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
14308
14309 * parse-scan.y (inner_qualifier, inner_qualifier_length): New
14310 static globals.
14311 (push_class_context, pop_class_context): New function.
14312 (class_body:): Call pop_class_context.
14313 (interface_body:): Likewise.
14314 (INNER_QUALIFIER): New macro.
14315 (report_class_declaration): Changed output format and use
14316 INNER_QUALIFIER. Call push_class_context.
14317
14318 2000-02-14 Andrew Haley <aph@cygnus.com>
14319
14320 * check-init.c (check_init): Add new cases for unary and binary
14321 tree nodes.
14322
14323 2000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
14324
14325 * parse.y (resolve_package): Set `next' once a type name has been
14326 progressively discovered.
14327 (resolve_qualified_expression_name): Propagate resolution only if
14328 there are remaining qualifiers. Take into account `q' might have
14329 been cleared after re-qualification.
14330 * parse.y (patch_method_invocation): New local `resolved'.
14331 Section dealing with qualified expression rewritten to use
14332 resolve_field_access.
14333
14334 2000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
14335
14336 * parse.h (PUSH_CPC): Fixed indentation.
14337 (DEBUG_CPC): New macro.
14338 (SET_CPC_INITIALIZER_STMT, SET_CPC_STATIC_INITIALIZER_STMT,
14339 SET_CPC_INSTANCE_INITIALIZER_STMT): New macros.
14340 * parse.y (class_body_declaration:): Use
14341 SET_CPC_INSTANCE_INITIALIZER_STMT.
14342 (method_declaration:): Check for null current_function_decl.
14343 (static_initializer:): Use SET_CPC_STATIC_INITIALIZER_STMT.
14344 (java_parser_context_pop_initialized_field): Better handling of
14345 empty lists.
14346 (maybe_make_nested_class_name): Mark nested class name as
14347 qualified when necessary.
14348 (end_class_declaration): Don't call java_parse_context_resume when
14349 one or more error occurred.
14350 (add_inner_class_fields): Use SET_CPC_INITIALIZER_STMT.
14351 (register_fields): Use SET_CPC_STATIC_INITIALIZER_STMT and
14352 SET_CPC_INITIALIZER_STMT.
14353 (method_header): Check for inner classes declaring static methods.
14354 (resolve_qualified_expression_name): Handle situation where `this'
14355 is implied.
14356
14357 2000-03-13 Hans Boehm <boehm@acm.org>
14358
14359 * typeck.c (build_prim_array_type): Correctly set the high word too.
14360
14361 2000-03-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
14362
14363 * parse.y (java_complete_expand_methods): Leave <clinit> out of
14364 ordinary methods.
14365 (maybe_generate_pre_expand_clinit): Put <clinit> at the end of the
14366 list of methods for interfaces.
14367
14368 2000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
14369
14370 * parse.y (qualify_ambiguous_name): Properly handle expressions
14371 using `null'.
14372
14373 2000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
14374
14375 * parse.y (check_final_assignment): Extended to process
14376 COMPOUND_EXPR.
14377 (patch_assignment): Have check_final_assignment called only once.
14378
14379 2000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
14380
14381 * java-tree.h (IS_INIT_CHECKED): New flag.
14382 * check-init.c (check_init): Test and set IS_INIT_CHECKED.
14383 * parse.y (patch_string): Call force_evaluation_order on the
14384 completed string concatenation tree.
14385 * expr.c (force_evaluation_order): Call force_evaluation_order on
14386 function's arguments too.
14387
14388 2000-03-06 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14389
14390 * decl.c (emit_init_test_initialization): Mark KEY as unused.
14391 * expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
14392 (build_anewarray): Likewise.
14393 * parse.y (patch_newarray): Likewise.
14394 * parse.c: Regenerated.
14395
14396 2000-03-06 Bryce McKinlay <bryce@albatross.co.nz>
14397
14398 * decl.c (init_decl_processing): Added new class fields `depth',
14399 `ancestors', and `idt' to class_type_node. Use
14400 _Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node.
14401 * class.c (make_class_data): Push initial values for new fields.
14402 * java-tree.h: Updated prototype for `build_invokeinterface'.
14403 * expr.c (build_invokeinterface): Changed parameters to accept
14404 `method' tree. Calculate index of `method' in its declaring
14405 interface. Build call to _Jv_LookupInterfaceMethodIdx.
14406 (expand_invoke): Call `build_invokeinterface' with new parameters.
14407 * parse.y (patch_invoke): Call `build_invokeinterface' with new
14408 parameters.
14409
14410 2000-03-06 Bryce McKinlay <bryce@albatross.co.nz>
14411
14412 * typeck.c (lookup_do): Search superinterfaces first
14413 when looking up an interface method. From Godmar Back
14414 <gback@cs.utah.edu>
14415
14416 2000-03-06 Tom Tromey <tromey@cygnus.com>
14417
14418 * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
14419
14420 2000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
14421
14422 * java-tree.h (lookup_argument_method2): Declared.
14423 (safe_layout_class): Prototype moved from parse.h.
14424 * parse.h (safe_layout_class): Prototype moved to java-tree.h.
14425 * parse.y (java_check_regular_methods): Local `super_class' gone.
14426 Call lookup_argument_method2 instead of lookup_argument_method.
14427 Perform modifier match for methods found declared in implemented
14428 interfaces. Fixed indentation problem. Overriding/hiding error
14429 report to take place only for methods found in classes.
14430 * typeck.c (lookup_argument_method): Changed leading
14431 comment. Re-written by calling lookup_do.
14432 (lookup_argument_method2): New function.
14433 (lookup_java_method): Re-written by calling lookup_do.
14434 (lookup_do): New function.
14435
14436 2000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
14437
14438 * check-init.c (check_init): Removed dead code. Handle (blank)
14439 final variables.
14440 * parse.y (declare_local_variables): New local `final_p', set it
14441 and use it to initialize LOCAL_FINAL.
14442 (check_final_assignment): Only check FIELD_DECLs.
14443
14444 2000-02-17 Tom Tromey <tromey@cygnus.com>
14445
14446 * Makefile.in (JAVA_OBJS): Added boehm.o.
14447 (boehm.o): New target.
14448 * Make-lang.in (JAVA_SRCS): Added boehm.c.
14449 * java-tree.h (flag_use_boehm_gc): Declare.
14450 (get_boehm_type_descriptor): Declare.
14451 * lang.c (lang_f_options): Added `use-boehm-gc'.
14452 (flag_use_boehm_gc): New global.
14453 * lang-options.h: Added -fuse-boehm-gc.
14454 * boehm.c: New file.
14455 * class.c (get_dispatch_table): If class uses a Boehm type
14456 descriptor, put it in the vtable.
14457 (make_class_data): Removed dead code.
14458
14459 2000-03-03 Per Bothner <per@bothner.com>
14460
14461 * decl.c (init_decl_processing): Initialize sizetype properly.
14462
14463 2000-03-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
14464
14465 * java-tree.h (LOCAL_CLASS_P): New flag usage and macro.
14466 (PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros.
14467 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
14468 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise.
14469 (jcf_parse): New local `current'. Load innerclasses seen in outer
14470 context being processed.
14471 * jcf-reader.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
14472 * jcf-write.c (append_innerclasses_attribute): New function.
14473 (append_innerclasses_attribute_entry): Likewise.
14474 (get_access_flags): Handle static classes. Set anonymous and local
14475 classes to be private.
14476 (generate_classfile): Attribute count adjusted. Call
14477 append_innerclasses_attribute.
14478 * parse.h (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use
14479 PURE_INNER_CLASS_TYPE_P.
14480 * parse.y (parser_qualified_classname): New parameter `is_static',
14481 produce non qualified name accordingly.
14482 (block_statement:): Set LOCAL_CLASS_P when declaring local class.
14483 (create_interface): Added argument to parser_qualified_classname.
14484 (create_class): Added argument to parser_qualified_classname. Setup
14485 alias for top level classes. Use PURE_INNER_CLASS_DECP_P.
14486 (add_inner_class_fields): Fixed indentation.
14487 (method_declarator): Use PURE_INNER_CLASS_DECP_P.
14488 (method_declarator): Fixed typo in comment.
14489 (craft_constructor): Use PURE_INNER_CLASS_DECP_P.
14490 (build_current_thisn): Likewise.
14491 (patch_method_invocation): Likewise.
14492
14493 2000-03-01 Martin von Löwis <loewis@informatik.hu-berlin.de>
14494
14495 * decl.c (current_function_decl): Move to toplev.c.
14496
14497 2000-02-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14498
14499 * java-tree.h (LABEL_PC): Relect name changes in ../tree.h.
14500 (DECL_BIT_INDEX): Use underlying representation.
14501 * parse.h (DECL_INHERITED_SOURCE_LINE): Likewise.
14502
14503 2000-02-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14504
14505 * expr.c (build_java_ret): Pass proper type to size_binop.
14506
14507 2000-02-25 Anthony Green <green@cygnus.com>
14508
14509 * expr.c (build_class_init): Mark the decl to be ignored by
14510 check_init.
14511 * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c
14512 * check-init.c: Move DECL_BIT_INDEX to java-tree.h
14513 * class.c (init_test_hash_newfunc): New function.
14514 (decl_hash): New function.
14515 (decl_compare): New function.
14516 * decl.c (emit_init_test_initialization): New function.
14517 (complete_start_java_method): Traverse the init test hashtable,
14518 calling emit_init_test_initialization.
14519 (always_initialize_class_p): Define.
14520 * expr.c (build_class_init): Use initialization tests when
14521 emitting class initialization code.
14522 (always_initialize_class_p): Declare.
14523 * jcf-parse.c (parse_class_file): Set always_initialize_class_p to
14524 1.
14525 * java-tree.h: Include hash.h.
14526 (DECL_FUNCTION_INIT_TEST_TABLE): Define.
14527 (struct lang_decl): Add init_test_table field.
14528 (init_test_hash_entry): Define.
14529
14530 2000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
14531
14532 * gjavah.c (main): Avoid using `argi' to report unimplemented
14533 options.
14534
14535 2000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
14536
14537 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
14538 initialize locals to avoid warnings. Local `exception_type' moved
14539 into if statement.
14540
14541 2000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
14542
14543 * parse.y (resolve_expression_name): Use `orig' as a second
14544 argument to resolve_field_access.
14545 (resolve_field_access): Removed unnecessary code when dealing with
14546 static fields.
14547
14548 2000-02-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
14549
14550 * class.c (push_super_field): Don't push the field twice.
14551 * jcf-parse.c (parse_source_file): Call java_reorder_fields.
14552 * parse.h (java_reorder_fields): Prototyped.
14553 * parse.y (java_reorder_fields): New function.
14554 (java_layout_class): Simplified not to worry about re-ordering.
14555
14556 2000-02-23 Tom Tromey <tromey@cygnus.com>
14557
14558 * gjavah.c (print_name): In JNI case, correctly quote string.
14559 (print_method_info): Don't handle overrides in JNI mode.
14560
14561 2000-02-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
14562
14563 * parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned
14564 value type set to `boolean_type_node'.
14565
14566 2000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
14567
14568 * jcf-dump.c (main): Test for correct condition after
14569 output file creation.
14570
14571 2000-02-19 Anthony Green <green@cygnus.com>
14572
14573 * jcf-depend.c (add_entry): Fix test for first list entry.
14574
14575 2000-02-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14576
14577 * class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT.
14578 * constants.c (build_constants_constructor): Likewise.
14579
14580 2000-02-19 Anthony Green <green@cygnus.com>
14581
14582 * jcf-depend.c (add_entry): Add entries to the end of the list.
14583
14584 1999-11-03 Pekka Nikander <pekka.nikander@hut.fi>
14585
14586 * decl.c (INT_TYPE_SIZE): Define if necessary.
14587 (expand_java_return): Handle the case of a native integer smaller
14588 than a JVM integer.
14589
14590 2000-02-18 Martin von Löwis <loewis@informatik.hu-berlin.de>
14591
14592 * gjavah.c (help): Use GCCBUGURL.
14593 * jv-scan.c (help): Likewise.
14594 * jcf-dump.c (help): Likewise.
14595
14596 2000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
14597
14598 * jcf-write.c (generate_bytecode_insns): Don't generate empty
14599 `finally' clauses.
14600
14601 2000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
14602
14603 * jcf-parse.c (load_class): Call `fatal' if no file containing
14604 the target class are found.
14605
14606 2000-02-16 Zack Weinberg <zack@wolery.cumb.org>
14607
14608 * Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
14609 lex.c, lex.h, and PARSE_H to...
14610 (parse.o, parse-scan.o): ...here, respectively.
14611
14612 * lex.c: Split out code that may trigger SIGFPE from yylex()
14613 to its own function.
14614 * lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value.
14615
14616 2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14617
14618 * Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h.
14619
14620 2000-02-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
14621
14622 * parse.y (outer_field_access_p): Stop in time when outer contexts
14623 are exhausted.
14624 (resolve_qualified_expression_name): Properly qualify *everything*
14625 after a package.type to be resoled as expression names.
14626 (find_applicable_accessible_methods_list): Save/restore `class' to
14627 isolate it from a possible outer context search.
14628
14629 2000-02-15 Tom Tromey <tromey@cygnus.com>
14630
14631 * gjavah.c (jni_print_char): New function.
14632 (print_full_cxx_name): Use it.
14633 (decode_signature_piece): Likewise.
14634 (print_cxx_classname): Likewise.
14635
14636 2000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14637
14638 * Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with
14639 version.o.
14640 (jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.
14641
14642 * gjavah.c: Include version.h.
14643
14644 * jcf-dump.c: Likewise.
14645
14646 * jv-scan.c: Likewise.
14647
14648 2000-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
14649
14650 * parse.y (outer_field_access_fix): First parameter now a tree
14651 node. Check for assignment to final. First argument to
14652 build_outer_field_access_fix modified to accommodate prototype.
14653 (build_outer_field_access): Don't check for assignment to final
14654 here.
14655 (java_complete_lhs): MODIFY_EXPR case: Check for `error_mark_node'
14656 possibly returned by outer_field_access_fix. Changed
14657 outer_field_access_fix's first argument.
14658 (check_final_assignment): $finit$'s context is OK.
14659 (patch_unaryop): Use node instead of its line/column value when
14660 calling outer_field_access_fix.
14661
14662 2000-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
14663
14664 * parse.y (interface_declaration:): No longer tagged
14665 <node>. Re-installed default action.
14666 (class_member_declaration:): Handle inner interfaces.
14667 (interface_member_declaration): Handle inner interfaces and
14668 classes.
14669 (create_interface): Push error if one seen. Suspend parsing
14670 context when processing an inner interface.
14671 (register_fields): Inner class static field limitations not to
14672 apply to inner interfaces.
14673
14674 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14675
14676 * jcf-parse.c (load_class): Update `java_error_count' when a
14677 class' file can't be found.
14678 (parse.y): Avoid (byte)code generation when errors seen.
14679
14680 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14681
14682 * parse.y (java_complete_lhs): Handle TRUNC_DIV_EXPR. Ensure `fatal'
14683 decodes a valid node.
14684 (patch_binop): Handle TRUNC_DIV_EXPR.
14685
14686 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14687
14688 * parse.y (resolve_package): New local `acc'. Try to progressively
14689 build and guess a package and type name.
14690
14691 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14692
14693 * parse.y (find_applicable_accessible_methods_list): Load and
14694 layout the search class if necessary.
14695 (java_complete_tree): Keep to original type of the folded initial
14696 value.
14697
14698 2000-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
14699
14700 * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
14701 Generate error message if circularity is detected. New static
14702 local `list'.
14703 * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro. *
14704 * jcf-write.c (generate_bytecode_insns): Very simply handle
14705 SAVE_EXPR.
14706 * parse.y (java_check_circular_reference): Use
14707 `cyclic_inheritance_report' during report, if necessary.
14708 (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
14709 walking NEW_ARRAY_INIT twice.
14710
14711 2000-02-09 Tom Tromey <tromey@cygnus.com>
14712
14713 * parse.y (check_class_interface_creation): Allow inner classes to
14714 be `private' or `protected', check modifiers' consistency. Prevent
14715 block local classes from bearing any modifiers.
14716
14717 2000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14718
14719 * except.c (check_start_handlers): Re-add prototype lost in last
14720 patch.
14721 (maybe_start_try): Remove excess argument to `check_start_handlers'.
14722
14723 2000-02-09 Andrew Haley <aph@cygnus.com>
14724
14725 * decl.c (clear_binding_level): Remove excess initializer.
14726 (maybe_poplevels): Remove unused variable.
14727 (force_poplevels): Ditto.
14728 (struct binding_level): Add comment.
14729
14730 2000-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
14731
14732 * jcf-write.c (generate_classfile): Don't consider
14733 pre-initialization with reference value (use <clinit> instead.)
14734 * parse.y (java_fix_constructors): No generated constructor for
14735 interfaces.
14736 (build_outer_field_access): Removed debug message.
14737 (outer_field_expanded_access_p): Adapted to bytecode generation.
14738 (build_outer_field_access_method): Use fix_method_argument_names.
14739 (build_outer_method_access_method): Fixed indentation. Added
14740 comment. Handle access method generation for static and also void
14741 methods.
14742 (build_access_to_thisn): Inserted debug message.
14743 (maybe_build_thisn_access_method): Use fix_method_argument_names.
14744 (resolve_qualified_expression_name): Fixed comment.
14745 (not_accessible_p): Adapted to bytecode generation. Added comment.
14746 (patch_method_invocation): Added comment.
14747 (maybe_use_access_method): Fixed leading comment. Handle static
14748 methods.
14749 (java_complete_lhs): Don't shortcut handling of initialized upon
14750 declaration String type static fields when generating bytecode.
14751 (patch_unaryop): Handle outer field access when generating
14752 bytecode.
14753
14754 2000-02-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
14755
14756 * java-tree.h (FIELD_THISN): New macro.
14757 * jcf-write.c (append_synthetic_attribute): New function.
14758 (generate_classfile): Set "Synthetic" attribute on this$<n>,
14759 val$<name> fields, access$<n> and $finit$ methods. Fixed indentation.
14760 * parse.y (add_inner_class_fields): Set FIELD_THISN for created
14761 this$<n> fields.
14762 (build_outer_field_access): Turned on access functions usage and
14763 generation when compiling to bytecode.
14764 (maybe_use_access_method): Likewise.
14765
14766 2000-01-25 Andrew Haley <aph@cygnus.com>
14767
14768 * java-except.h (struct eh_range): Add `expanded' field.
14769 (maybe_start_try): Add end_pc arg.
14770 (maybe_end_try): Ditto.
14771 * java-tree.h (force_poplevels): new function.
14772 * expr.c (expand_byte_code): Don't call maybe_start_try or
14773 maybe_end_try.
14774 * except.c (add_handler): Reset expanded.
14775 (expand_start_java_handler): Set expanded.
14776 (check_start_handlers): Don't expand a start handler that's
14777 already been expanded.
14778 (maybe_start_try): Add end_pc arg. Only expand a handler which
14779 ends after end_pc.
14780 (expand_end_java_handler): call force_poplevels.
14781 (force_poplevels): new function.
14782 * decl.c (binding_level): Add start_pc of binding level.
14783 (maybe_pushlevels): Call maybe_start_try when pushing binding
14784 levels.
14785 (maybe_poplevels): Call maybe_end_try when popping binding levels.
14786 (LARGEST_PC): Define.
14787 (clear_binding_level): Use LARGEST_PC.
14788
14789 * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
14790 * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
14791 (binding_depth, is_class_level, current_pc): new variables.
14792 (struct binding_level): ditto.
14793 (indent): new function.
14794 (push_jvm_slot): add debugging info.
14795 (maybe_pushlevels): ditto.
14796 (maybe_poplevels): ditto.
14797 (pushlevel): ditto.
14798 (poplevel): ditto.
14799 (start_java_method): ditto.
14800 (give_name_to_locals): comment only.
14801 * except.c (binding_depth, is_class_level, current_pc):
14802 new variables.
14803 (expand_start_java_handler): add debugging info.
14804 (expand_end_java_handler): ditto.
14805
14806 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14807
14808 * gjavah.c (overloaded_jni_method_exists_p): Add prototype.
14809 (print_name_for_stub_or_jni, process_file): Constify a char*.
14810
14811 2000-02-03 Tom Tromey <tromey@cygnus.com>
14812
14813 * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input.
14814
14815 2000-01-31 Scott Bambrough <scottb@netwinder.org>
14816
14817 * gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to
14818 assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is
14819 defined to be 1.
14820
14821 2000-02-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
14822
14823 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): New tree code.
14824 * java-tree.h (TYPE_II_STMT_LIST): New macro.
14825 (struct lang_type): New field `ii_block'.
14826 * lex.c (java_init_lex): Use CPC_INITIALIZER_LIST,
14827 CPC_STATIC_INITIALIZER_LIST and CPC_INSTANCE_INITIALIZER_LIST.
14828 * parse.h (struct parser_ctxt): New field `instance_initializers'.
14829 (CPC_INITIALIZER_LIST, CPC_STATIC_INITIALIZER_LIST,
14830 CPC_INSTANCE_INITIALIZER_LIST, CPC_INITIALIZER_STMT,
14831 CPC_STATIC_INITIALIZER_STMT, CPC_INSTANCE_INITIALIZER_STMT): New
14832 macros.
14833 * parse.y (add_instance_initializer): New function.
14834 (in_instance_initializer): New static global.
14835 (class_body_declaration:): Link instance initializer block.
14836 (static_initializer:): Use CPC_STATIC_INITIALIZER_STMT.
14837 (array_creation_expression:): Remove unused local.
14838 (java_parser_context_push_initialized_field): Fixed leading
14839 comment. Use CPC_STATIC_INITIALIZER_LIST, CPC_INITIALIZER_LIST and
14840 CPC_INSTANCE_INITIALIZER_LIST.
14841 (java_parser_context_pop_initialized_field): Likewise.
14842 (add_inner_class_fields): Use CPC_INITIALIZER_STMT.
14843 (register_fields): Use CPC_STATIC_INITIALIZER_STMT and
14844 CPC_INITIALIZER_STMT.
14845 (fix_constructors): New local `class_type'. Use it. Call
14846 add_instance_initializer.
14847 (java_complete_lhs): New case INSTANCE_INITIALIZERS_EXPR.
14848 (patch_return): Forbid return in instance initializers.
14849 (patch_throw_statement): Enforce exception handling in the context
14850 of instance initializers.
14851
14852 2000-02-03 Tom Tromey <tromey@cygnus.com>
14853
14854 * Make-lang.in (java.mostlyclean): Remove executables in
14855 `mostlyclean'.
14856
14857 2000-01-31 Scott Bambrough <scottb@netwinder.org>
14858
14859 * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
14860 HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
14861 (java_float_finite): Convert to use union Word from javaop.h.
14862 (java_double_finite): Convert to use union DWord from javaop.h.
14863
14864 2000-02-02 Tom Tromey <tromey@cygnus.com>
14865
14866 * gjavah.c (options): Added `jni' entry.
14867 (help): Document -jni.
14868 (flag_jni): New global.
14869 (process_file): Handle JNI output. Don't print text from
14870 -prepend, -add, etc, when generating stubs. Only remove `.class'
14871 suffix if it actually exists.
14872 (main): Create a `.c' file when run with `--jni --stubs'. Create
14873 correct output file name with `--jni'.
14874 (print_include): Mangle header name differently in JNI case.
14875 (HANDLE_METHOD): In JNI mode, call print_method_info to generate
14876 method list.
14877 (print_method_info): Handle JNI case. Put signature info into
14878 method name. Handle case when STREAM is NULL.
14879 (print_name_for_stub_or_jni): New function.
14880 (print_stub_or_jni): Renamed from `print_stub'. Handle JNI.
14881 (print_cxx_classname): Handle JNI.
14882 (print_full_cxx_name): Likewise.
14883 (decode_signature_piece): Likewise.
14884 (overloaded_jni_method_exists_p): New function.
14885 (struct method_name): Added `signature' and `sig_length' fields.
14886 (HANDLE_END_FIELD): Do nothing in JNI mode.
14887
14888 2000-02-02 Tom Tromey <tromey@cygnus.com>
14889
14890 * jv-scan.c: Include version.c, <getopt.h>.
14891 (LONG_OPT, OPT_HELP, OPT_VERSION): New macros.
14892 (options): New array.
14893 (usage): New function.
14894 (version): New function.
14895 (main): Use getopt_long to parse command line.
14896 * jcf-dump.c: Include version.c, <getopt.h>.
14897 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_VERSION,
14898 OPT_JAVAP): New macros.
14899 (options): New array.
14900 (usage): Return `void'. Changed message.
14901 (help): New function.
14902 (version): New function.
14903 (main): Use getopt_long_only to parse command line.
14904 * gjavah.c: Include <getopt.h>.
14905 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_TEMP,
14906 OPT_VERSION, OPT_PREPEND, OPT_FRIEND, OPT_ADD, OPT_APPEND, OPT_M,
14907 OPT_MM, OPT_MG, OPT_MD, OPT_MMD): New macros.
14908 (options): New array.
14909 (java_no_argument): Removed.
14910 (help): Updated with missing options.
14911 (main): Use getopt_long_only to parse command line.
14912 (usage): Changed message.
14913
14914 2000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
14915
14916 * java-tree.def (NEW_ANONYMOUS_ARRAY_EXPR): New tree code.
14917 * parse.h (ANONYMOUS_ARRAY_BASE_TYPE, ANONYMOUS_ARRAY_DIMS_SIG,
14918 ANONYMOUS_ARRAY_INITIALIZER): New access macros.
14919 * parse.y (array_creation_expression:): Handle anonymous arrays.
14920 (build_array_from_name): Don't set `ret_name' if null.
14921 (resolve_qualified_expression_name): New case NEW_ANONYMOUS_ARRAY_EXPR.
14922 (qualify_ambiguous_name): Likewise.
14923 (java_complete_expand_class): Likewise.
14924
14925 2000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
14926
14927 * java-tree.def (SYNCHRONIZED_EXPR): Fixed typo.
14928 * parse.h (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): New macro.
14929 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR): Likewise.
14930 (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P.
14931 (AIPL_FUNCTION_FINIT_INVOCATION): Replaces
14932 AIPL_FUNCTION_COMPLETED_INVOCATION.
14933 (AIPL_FUNCTION_CTOR_INVOCATION): Replaces
14934 AIPL_FUNCTION_INVOCATION_READY.
14935 (AIPL_FUNCTION_DECLARATION): New enum entry.
14936 * parse.y (reorder_static_initialized): New function.
14937 (java_parser_context_pop_initialized_field): Use it.
14938 (add_inner_class_fields): Use
14939 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. Comment
14940 augmented. Install marker after last alias initializer, if any.
14941 (generate_finit): Fixed typo. Don't try to retain only the used
14942 fields.
14943 (method_header): Compute and set DECL_FUNCTION_NAP.
14944 (method_declarator): Fixed comment. Insert alias initializer in
14945 parameter list.
14946 (build_alias_initializer_parameter_list): Fixed leading
14947 comment. New case for AIPL_FUNCTION_DECLARATION. Old enum value
14948 replaced by new ones. Use MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID.
14949 (java_complete_expand_class): Code to retain only used aliases
14950 removed.
14951 (java_complete_expand_methods): New local `first_decl'. Generate
14952 $finit$ first, then expand the constructors, regular methods and
14953 <clinit>.
14954 (java_complete_expand_method): Don't report error on missing
14955 return statement if previously detected bogus.
14956 (fix_constructors): Don't patch constructor parameters list.
14957 (patch_method_invocation): Use new AIPL enum values. Reverse
14958 alias initializer list for anonymous classes.
14959
14960 2000-01-30 Anthony Green <green@redhat.com>
14961
14962 * jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
14963 determine how many stack slots to pop.
14964
14965 2000-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
14966
14967 * parse.y (formal_parameter:): Set `$$' to NULL_TREE for better
14968 error handling/recovery.
14969 * java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.
14970
14971 2000-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
14972
14973 * java-tree.h (ARG_FINAL_P, FIELD_LOCAL_ALIAS,
14974 FIELD_LOCAL_ALIAS_USED): New macros.
14975 (DECL_FUNCTION_NAP): New macro.
14976 (struct lang_decl): New field `nap'.
14977 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST): New macros.
14978 (struct lang_type): New fields `finit_stmt_list' and
14979 `clinit_stmt_list'.
14980 (CLASS_HAS_FINIT_P): Defined using TYPE_FINIT_STMT_LIST.
14981 * parse.h (MANGLE_OUTER_LOCAL_VARIABLE_NAME): New macro.
14982 (SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
14983 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP): New macros.
14984 (AIPL_FUNCTION_CREATION, AIPL_FUNCTION_COMPLETED_INVOCATION,
14985 AIPL_FUNCTION_INVOCATION_READY): New enum fields.
14986 (BUILD_THROW): Macro line separator re-indented.
14987 * parse.y (end_class_declaration): New function.
14988 (maybe_generate_pre_expand_clinit): New name for
14989 java_pre_expand_clinit. Create <clinit> off TYPE_CLINIT_STMT_LIST,
14990 pre-expand static fields.
14991 (maybe_generate_clinit): Function deleted.
14992 (check_for_static_method_reference): Prototype's parameter list
14993 indented.
14994 (generate_finit): New name for maybe_generate_finit. Changed
14995 leading comment. Function rewritten to use
14996 TYPE_FINIT_STMT_LIST. Call build_alias_initializer_parameter_list.
14997 (build_alias_initializer_parameter_list): New function.
14998 (java_parser_context_pop_initialized_field): Likewise.
14999 (add_inner_class_fields): Likewise.
15000 (type_declaration:): Call end_class_declaration.
15001 (class_member_declaration:): Likewise.
15002 (formal_parameter_list:): Fixed typos.
15003 (formal_parameter:): Use ARG_FINAL_P to mark created tree list
15004 element. Improved error handling.
15005 (block_statement:): Call end_class_declaration.
15006 (anonymous_class_creation:): Likewise.
15007 (create_anonymous_class): Fixed comments.
15008 (create_class): Call add_inner_class_fields.
15009 (register_fields): Set FIELD_LOCAL_ALIAS according to ARG_FINAL_P.
15010 (method_header): Use MARK_FINAL_PARMS.
15011 (finish_method_declaration): Use UNMARK_FINAL_PARMS.
15012 (method_declarator): Propagate final argument flag.
15013 (craft_constructor): New local `artificial'. Call
15014 build_alias_initializer_parameter_list. Use
15015 CRAFTED_PARAM_LIST_FIXUP, assign DECL_FUNCTION_NAP.
15016 (source_start_java_method): Mark parm decls with LOCAL_FINAL if
15017 necessary.
15018 (complete_expand_class): Get rid of unused outer context local
15019 alias fields.
15020 (java_complete_expand_methods): Fixed leading
15021 comment. Generate/pre-expand <clinit> first. Changed method
15022 expansion order to regular, $finit$, constructors, <clinit>.
15023 (java_complete_expand_method): Set current_function_decl.
15024 (fix_constructors): Fix constructor parameter list to account for
15025 outer context local alias initializers.
15026 (verify_constructor_super): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
15027 (resolve_expression_name): Lookup outer context local aliases. New
15028 local `access', use it.
15029 (patch_method_invocation): Patch inner class ctor invocation with
15030 outer context local aliases initialization values. $finit$
15031 invocation patching now includes things generated with
15032 build_alias_initializer_parameter_list.
15033 (argument_types_convertible): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
15034 (build_super_invocation): Likewise.
15035 (patch_assignment): Changed comment.
15036
15037 2000-01-27 Andrew Haley <aph@cygnus.com>
15038
15039 * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
15040 (emit_if): Ditto.
15041 (emit_jsr): Ditto.
15042
15043 2000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15044
15045 * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string
15046 concatenation.
15047 (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args.
15048
15049 * parse.y (register_fields): Don't pass a format specifier to
15050 OBSOLETE_MODIFIER_WARNING.
15051 (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2
15052 instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format
15053 specifier.
15054 (check_modifiers): Change function into a macro.
15055 (check_class_interface_creation): Pass a literal format string.
15056
15057 2000-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15058
15059 * buffer.h: PROTO -> PARAMS.
15060 * check-init.c: Likewise.
15061 * class.c: Likewise.
15062 * constants.c: Likewise.
15063 * convert.h: Likewise.
15064 * decl.c: Likewise.
15065 * except.c: Likewise.
15066 * expr.c: Likewise.
15067 * gjavah.c: Likewise.
15068 * java-except.h: Likewise.
15069 * java-tree.h: Likewise.
15070 * jcf-depend.c: Likewise.
15071 * jcf-dump.c: Likewise.
15072 * jcf-parse.c: Likewise.
15073 * jcf-path.c: Likewise.
15074 * jcf-reader.c: Likewise.
15075 * jcf-write.c: Likewise.
15076 * jcf.h: Likewise.
15077 * jv-scan.c: Likewise.
15078 * jvgenmain.c: Likewise.
15079 * jvspec.c: Likewise.
15080 * lang.c: Likewise.
15081 * lex.c: Likewise.
15082 * lex.h: Likewise.
15083 * parse-scan.y: Likewise.
15084 * parse.h: Likewise.
15085 * parse.y: Likewise.
15086 * typeck.c: Likewise.
15087 * verify.c: Likewise.
15088 * xref.c: Likewise.
15089 * xref.h: Likewise.
15090 * zextract.c: Likewise.
15091 * zipfile.h: Likewise.
15092
15093 2000-01-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
15094
15095 * class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
15096 (is_compiled_class): Remove test on TYPE_LANG_SPECIFIC, use TYPE_JCF.
15097 * constants.c (build_constant_data_ref): Check for cached
15098 current_constant_pool_data_ref. Cache current_constant_pool_data_ref
15099 in TYPE_CPOOL_DATE_REF.
15100 * java-tree.h (TYPE_JCF, TYPE_CPOOL, TYPE_CPOOL_DATA_REF,
15101 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC:) New macros.
15102 (struct lang_type): New fields `cpool' and `cpool_data_ref'.
15103 (LOCAL_FINAL): New macro.
15104 * jcf-parse.c (init_outgoing_cpool): Always allocate new outgoing
15105 constant pool -- don't try to reuse.
15106 (parse_zip_file_entries): Use TYPE_JCF, don't lazily allocate
15107 TYPE_LANG_SPECIFIC.
15108 (find_in_current_zip): Use TYPE_JCF.
15109 * parse.h (java_check_final): Prototype removed.
15110 * parse.y (create_class): Reversed Jan 12, 2000 extra argument patch.
15111 (maybe_create_class_interface_decl,
15112 check_class_interface_creation): Likewise.
15113 (java_expand_finals): Function removed.
15114 (class_declaration:): Reversed Jan 12, 2000 extra argument patch.
15115 (block_statement:): Fixed comment.
15116 (anonymous_class_creation:): Likewise.
15117 (check_class_interface_creation): Reversed Jan 12, 2000 extra
15118 argument patch.
15119 (check_class_interface_creation): Loosened error report on (inner)
15120 public class declarations. CPC_INNER_P replaces GET_CPC_LIST.
15121 (link_nested_class_to_enclosing): Reversed Jan 12, 2000 patch.
15122 (maybe_create_class_interface_decl): Reversed Jan 12, 2000 extra
15123 argument patch.
15124 (create_interface): Likewise.
15125 (anonymous_class_counter): New static global.
15126 (create_anonymous_class): Reversed Jan 12, 2000 extra argument
15127 patch. Fixed comments.
15128 (create_class): Reversed Jan 12, 2000 extra argument patch. Reset
15129 anonymous_class_counter when declaring a toplevel class.
15130 (craft_constructor): Fixed constructor name when handling
15131 anonymous classes. Anonymous class constructors to feature hidden
15132 this$<n> parameter.
15133 (java_fix_constructors): Added comment.
15134 (java_check_final): Function removed.
15135 (java_complete_expand_methods): Fixed comment. Don't generate
15136 class data, save its outgoing constant pool instead.
15137 (verify_constructor_super): Skip anonymous class constructor
15138 hidden this$<n> parameter.
15139 (java_expand_classes): New local `saved_ctxp'. Removed call to
15140 java_expand_finals and java_check_final. Expand anonymous class
15141 constructors. Generate class data.
15142 (build_super_invocation): Skip anonymous class hidden this$<n>
15143 parameter.
15144 * typeck.c (build_java_signature): Use TYPE_SIGNATURE and
15145 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
15146 (set_java_signature): Likewise.
15147
15148 2000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
15149
15150 * gjavah.c: Delete ACC_VISIBILITY define.
15151 * jcf.h: Add ACC_VISIBILITY define.
15152 * parse.y: final: rule tagged <value>.
15153 (java_check_regular_methods): Use ACC_VISIBILITY define for
15154 default package access check.
15155 (local_variable_declaration_statement): Use final: rule.
15156
15157 2000-01-17 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
15158
15159 * parse.y (format_parameter:): Use final: rule instead of modifiers:.
15160 (final:): New rule.
15161
15162 2000-01-17 Tom Tromey <tromey@cygnus.com>
15163
15164 * gjavah.c (print_field_info): Allow non-static final fields.
15165
15166 2000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15167
15168 * parse.h (enum jdep_code): New entry `JDEP_ANONYMOUS'.
15169 * parse.y (patch_anonymous_class): New function.
15170 (create_anonymous_class): Register incomplete type when the
15171 class/interface to extends/implement isn't known yet.
15172 (parser_check_super_interface): Simplify argument to CLASS_INTERFACE.
15173 (verify_constructor_super): Tuned error message.
15174
15175 2000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15176
15177 * java-tree.h (FOR_LOOP_P): Replaces IS_FOR_LOOP_P.
15178 (ANONYMOUS_CLASS_P): New macro.
15179 (TYPE_SIGNATURE, TYPE_JCF): New macros.
15180 (INNER_CLASS_TYPE_P): Fixed typo in leading comment.
15181 * parse.y (create_class): Added leading argument.
15182 (maybe_create_class_interface_decl,
15183 check_class_interface_creation): Likewise.
15184 (craft_constructor): New function.
15185 (verify_constructor_super): Added argument in prototype.
15186 (class_declaration:): Inserted leading argument.
15187 (for_begin:): Use FOR_LOOP_P.
15188 (anonymous_class_creation): Create WFL of the anonymous class to
15189 instantiate. Call build_new_invocation. Added comments.
15190 (check_class_interface_creation): Handle parameter `anonymous' in
15191 verbose mode class creation announce.
15192 (link_nested_class_to_enclosing): Exclude anonymous classes.
15193 (maybe_create_class_interface_decl): Don't set DECL_CONTEXT on
15194 anonymous class, even though they appear to have an enclosing
15195 context.
15196 (create_interface): Pass extra argument to
15197 check_class_interface_creation.
15198 (create_anonymous_class): Set ANONYMOUS_CLASS_P to 1.
15199 (create_class): Call check_class_interface_creation and
15200 maybe_create_class_interface_decl with extra new argument. Don't
15201 add private this$<n> to anonymous classes.
15202 (method_declarator): Insert hidden this$<n> to anonymous class
15203 constructors.
15204 (java_fix_constructors): Deleted code creating default
15205 constructor. Call craft_constructor instead.
15206 (java_check_regular_methods): Set `saw_constructor' to 1 for
15207 anonymous classes.
15208 (fix_constructors): Pass extra argument to verify_constructor_super.
15209 (verify_constructor_super): New local `sdecl', use it. Search for
15210 matching constructor (possibly featuring arguments) in super
15211 class.
15212 (lookup_method_invoke): Craft constructor according to arguments
15213 list when dealing with anonymous class constructors.
15214 (build_super_invocation): Pass arguments to anonymous class super
15215 constructors.
15216 (search_loop): Use FOR_LOOP_P.
15217 (labeled_block_contains_loop_p): Likewise.
15218
15219 2000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
15220
15221 * class.c (set_super_info): Set CLASS_STATIC when appropriate.
15222 (enclosing_context_p): New function.
15223 (get_access_flags_from_decl): Handle CLASS_STATIC.
15224 (maybe_layout_super_class): Extra first argument passed to
15225 do_resolve_class.
15226 (layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and
15227 ID_INIT_P.
15228 * decl.c (access0_identifier_node): New global.
15229 (init_decl_processing): access0_identifier_node initialized.
15230 (pushdecl): Set DECL_CONTEXT only on non type decls.
15231 * expr.c (lookup_field): Lookup inner class fields in enclosing
15232 contexts.
15233 (expand_invoke): Use ID_INIT_P.
15234 (expand_java_field_op): Use DECL_CLINIT_P.
15235 * java-tree.def (CLASS_LITERAL): New tree code.
15236 * java-tree.h (DECL_FUNCTION_ACCESS_DECL,
15237 DECL_FUNCTION_INNER_ACCESS, FIELD_INNER_ACCESS): New macros.
15238 (struct lang_decl): New field `inner_access'.
15239 (enclosing_context_p): Prototyped.
15240 (DECL_INIT_P, DECL_FINIT_P, DECL_CLINIT_P, ID_INIT_P, ID_FINIT_P,
15241 ID_CLINIT_P): New macros.
15242 (CLASS_STATIC): New macro.
15243 (CLASS_ACCESS0_GENERATED_P): New macro.
15244 (OUTER_FIELD_ACCESS_IDENTIFIER_P, INNER_CLASS_DECL_P,
15245 TOPLEVEL_CLASS_DECL_P, INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
15246 INNER_CLASS_P): New macros.
15247 (DECL_INNER_CLASS_LIST): New macro.
15248 * jcf-parse.c (yyparse): Avoid the use of ANSI string
15249 concatenation.
15250 * jcf-write.c (generate_bytecode_insns): binop: Change the type of
15251 the shift value to int. Fixed typo in comment.
15252 * lex.c (inst_id, wpv_id): Initialize.
15253 * mangle.c (unicode_mangling_length): Take `$' into account.
15254 * parse.h (DRECOVER, RECOVER): Terminate properly.
15255 (IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS): New macro.
15256 (typedef struct _jdep): New field `enclosing'.
15257 (JDEP_ENCLOSING): New macro.
15258 (IS_CLINIT): Deleted (DECL_CLINIT_P replaces it.)
15259 (struct parser_ctxt): New fields `marker_beginning', `marked_end'.
15260 (GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE,
15261 GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
15262 GET_ENCLOSING_CPC_CONTEXT): New macros.
15263 (PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.
15264 (do_resolve_class): Added extra argument in prototype.
15265 * parse.y (resolve_class): Added extra argument in prototype.
15266 (maybe_create_class_interface_decl): Likewise.
15267 (maybe_use_access_method, build_wfl_wrap): New functions.
15268 (java_complete_expand_classes, java_complete_expand_class):
15269 Likewise.
15270 (java_parser_context_push_initialized_field,
15271 java_parser_context_suspend, java_parser_context_resume):
15272 Likewise.
15273 (maybe_make_nested_class_name, make_nested_class_name,
15274 set_nested_class_simple_name_value,
15275 link_nested_class_to_enclosing, find_as_inner_class,
15276 find_as_inner_class_do, check_inner_class_redefinition,
15277 build_thisn_assign, build_current_thisn, build_access_to_thisn,
15278 maybe_build_thisn_access_method, build_outer_field_access,
15279 build_outer_field_access_methods, build_outer_field_access_expr,
15280 build_outer_method_access_method, build_new_access_id,
15281 build_outer_field_access_method, outer_field_access_p,
15282 outer_field_expanded_access_p, outer_field_access_fix,
15283 build_incomplete_class_ref, patch_incomplete_class_ref,
15284 create_anonymous_class): Likewise.
15285 (inst_id, wpv_id): New static global variables.
15286 (synchronized:): New rule, tagged <node>.
15287 (type_declaration:): No longer tagged <node>. Call POP_CPC in sub
15288 rules.
15289 (anonymous_class_creation:): New rule, tagged <node>.
15290 (NEW_TK): Tagged <node>.
15291 (type_literals, array_type_literal): New rules, tagged <node>.
15292 (class_declaration:): Removed action when reducing by class_body:
15293 (class_body:): Set DECL_END_SOURCE_LINE and rule's returned value
15294 using GET_CPC in sub-rules.
15295 (class_member_declaration): Handle inner classes.
15296 (method_declaration): When reducing method_header:, reset
15297 current_function_decl when appropriate.
15298 (method_declarator:): Set the number of formal parameter to 0 for
15299 method declared without arguments.
15300 (constructor_declarator:): Likewise.
15301 (static_initializer:): List of elements kept in a list.
15302 (static:): Rule modifiers: replaces MODIFIER_TK. Enforce correct
15303 use of the keyword `static' for type declarations.
15304 (block_statement:): Handle inner class declarations.
15305 (primary_no_new_array:): Use type_literals:. Fixed comment. Handle
15306 type qualified `this'.
15307 (class_instance_creation_expression): Use anonymous_class_creation:
15308 to handle inner class instances creation. Handle qualified `new'.
15309 (something_dot_new): Added appropriate actions.
15310 (create_new_parser_context): New function.
15311 (java_push_parser_context, java_parser_context_save_global,
15312 java_parser_context_suspend): Use create_new_parser_context.
15313 (check_modifiers): Changed leading comment.
15314 (check_class_interface_creation): Handle interclasses.
15315 (add_superinterfaces): Fixed comment.
15316 (create_interface): Build qualified name from the raw_name instead
15317 of its matching WFL. Push the initialized fields list. raw_name added
15318 as an extra argument to maybe_create_class_interface_decl.
15319 (create_class): Build qualified name from the raw_name instead of
15320 its matching WFL. Removed assignment to current_parsed_class_un.
15321 Call PUSH_ERROR before returning an error. Suspend the current
15322 parser context when processing an inner class. Push the
15323 initialized fields list. raw_name added as an extra argument to
15324 maybe_create_class_interface_decl. Add the private this$<n>
15325 field.
15326 (duplicate_declaration_error_p): Use GET_CPC when calling find_field.
15327 (register_fields): Get the class type from GET_CPC and handle
15328 previous errors. Added code to handle the creation of static
15329 fields in inner classes. Initialized fields initialization
15330 statements kept in a list of lists.
15331 (maybe_generate_finit): Initialized fields initialization
15332 statements kept in a list of lists. Use GET_CPC.
15333 (maybe_generate_clinit): Likewise.
15334 (method_header): Use GET_CPC and GET_CPC_UN.
15335 (parser_qualified_classname): Handle inner classes.
15336 (register_incomplete_type): Set JDEP_ENCLOSING using GET_CPC.
15337 (java_fix_constructors): Hide pointer to enclosing context
15338 instance in constructor list when dealing with inner classes.
15339 (jdep_resolve_class): Call resolve_class with extra first argument
15340 JDEP_ENCLOSING.
15341 (resolve_class): Add enclosing context as a first extra argument
15342 to do_resolve_class.
15343 (do_resolve_class): Call find_as_inner_class. Handle WFLs
15344 properly.
15345 (resolve_no_layout): Extra argument added to resolve_class
15346 invocation.
15347 (reset_method_name): Use DECL_CLINIT_P, DECL_FINIT_P.
15348 (java_get_real_method_name): Use GET_CPC_UN.
15349 (check_abstract_method_definitions): Use DECL_CLINIT_P.
15350 (java_check_abstract_methods): Handle static method declared in
15351 inner classes by an error.
15352 (java_check_regular_methods): Use DECL_CLINIT_P.
15353 (source_start_java_method): Also set DECL_MAX_LOCALS.
15354 (create_artificial_method): Call java_parser_context_save_global
15355 and java_parser_context_restore_global instead of saving/restoring
15356 the context by hand.
15357 (expand_start_java_method): Improved verbose mode message.
15358 (java_complete_expand_methods): Fixed leading comment. Use
15359 DECL_CLINIT_P.
15360 (fix_constructors): Added assignment to this$<n> if necessary.
15361 (java_expand_classes): Call java_complete_expand_classes instead
15362 of java_complete_expand_methods.
15363 (make_qualified_primary): Simplified.
15364 (merge_qualified_name): Optimized for missing left or right parts.
15365 (resolve_expression_name): Handle access to outer class fields from
15366 interclasses.
15367 (resolve_qualified_expression_name): New macro
15368 RESTORE_THIS_AND_CURRENT_CLASS, used. Handle creation of inner
15369 classes. Report error on non appropriate qualification of
15370 `new'. Handle qualified `this'.
15371 (not_accessible_p): Allow access to outer class private fields from
15372 inner classes.
15373 (patch_method_invocation): Handle method invocations through
15374 access methods and inner class constructor invocations.
15375 (find_applicable_accessible_methods_list): Search enclosing
15376 contexts of an inner class.
15377 (search_applicable_methods_list): Fixed typo.
15378 (argument_types_convertible): Handle inner class constructors'
15379 hidden outer context reference argument.
15380 (qualify_ambiguous_name): Handle qualified `this'.
15381 (java_complete_lhs): Handle use of field accessed through
15382 artificial access methods in various cases of assignments. Handle
15383 CLASS_LITERAL node.
15384 (check_final_assignment): Use DECL_CLINIT_P.
15385 (valid_ref_assignconv_cast_p): Handle the destination being an
15386 enclosing context of the source.
15387 (patch_unaryop): Handle use of field accessed through artificial
15388 access methods.
15389 (patch_return): Use DECL_CLINIT_P.
15390 (patch_throw_statement): Use DECL_CLINIT_P.
15391 (check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P.
15392 * verify.c (verify_jvm_instructions): Use ID_CLINIT_P and
15393 ID_INIT_P.
15394
15395 2000-01-16 Anthony Green <green@cygnus.com>
15396
15397 * parse.y (build_string_concatenation): Only use
15398 StringBuffer(String) shortcut if String arg is constant.
15399
15400 2000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
15401
15402 * jcf-write.c (generate_bytecode_insns): binop: Change the type of
15403 the shift value to int. Fixed typo in comment.
15404
15405 2000-01-11 Mumit Khan <khan@xraylith.wisc.edu>
15406
15407 * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
15408 * jcf-write.c: Likewise.
15409 * parse.y: Likewise.
15410 * parse.c: Regenerate.
15411
15412 2000-01-09 Anthony Green <green@cygnus.com>
15413
15414 * jcf-write.c (generate_bytecode_insns): Emit invokeinterface
15415 bytecodes in the correct order.
15416
15417 2000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15418
15419 * Makefile.in (jcf-dump, gcjh): Move ../errors.o before $(LIBS).
15420
15421 2000-01-06 Anthony Green <green@cygnus.com>
15422
15423 * expr.c (java_lang_expand_expr): Switch to permanent obstack
15424 before building constant array decl.
15425
15426 2000-01-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
15427
15428 * jcf-write.c (generate_bytecode_conditional): Fixed indentation in
15429 method invocation and typo in conditional expression.
15430 (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
15431 the appropriate NOTE_POP.
15432 * parse.y (patch_binop): Shift value mask to feature the right
15433 type.
15434
15435 1999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15436
15437 * class.c (assume_compiled, assume_compiled_node): Add static
15438 prototype.
15439 (add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup.
15440
15441 * jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch.
15442
15443 * jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN.
15444
15445 * parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier'
15446 to `__modifier' to avoid stringifying it.
15447
15448 * parse.y (verify_constructor_circularity): Don't call a variadic
15449 function with a non-literal format string.
15450 (java_check_abstract_methods): Move unreachable code inside
15451 `continue' statement.
15452 (lookup_method_invoke): Call xstrdup, not strdup.
15453
15454 * expr.c (expand_java_field_op): Avoid the use of ANSI string
15455 concatenation.
15456
15457 * jcf-parse.c (yyparse): Likewise.
15458
15459 * jv-scan.c (main): Likewise.
15460
15461 1999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15462
15463 * parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
15464 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
15465 ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string
15466 concatenation.
15467
15468 * parse.y (synchronized, variable_redefinition_error,
15469 check_class_interface_creation, create_interface, create_class,
15470 method_header, finish_method_declaration,
15471 check_modifiers_consistency, method_declarator,
15472 complete_class_report_errors, check_abstract_method_definitions,
15473 java_check_regular_methods, check_throws_clauses,
15474 java_check_abstract_methods, read_import_dir,
15475 check_pkg_class_access, declare_local_variables, fix_constructors,
15476 cut_identifier_in_qualified, resolve_expression_name,
15477 resolve_qualified_expression_name, patch_method_invocation,
15478 java_complete_lhs, patch_assignment, try_builtin_assignconv,
15479 patch_binop, patch_array_ref, patch_newarray, build_labeled_block,
15480 patch_exit_expr, patch_exit_expr, patch_switch_statement,
15481 patch_try_statement, patch_synchronized_statement,
15482 patch_throw_statement, check_thrown_exceptions,
15483 patch_conditional_expr): Likewise.
15484
15485 1999-12-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
15486
15487 * Makefile.in (LIBDEPS): Added gcc's errors.o
15488 (../jcf-dump$(exeext):): Link with gcc's errors.o
15489 (../gcjh$(exeext):): Likewise.
15490 * expr.c (expand_java_NEW): Layout the entire target type instead of
15491 laying out its methods only.
15492 (lookup_field): Layout the class after having loaded it.
15493 * java-tree.h (java_debug_context): Declared.
15494 * jcf-io.c (toplev.h): Included.
15495 (find_class): Removed assignment to jcf's outofsynch
15496 field. Force source file to be read if newer than its matching
15497 class file. Tweaked debug messages.
15498 * jcf-parse.c (jcf_out_of_synch): Deleted.
15499 (read_class): Call to jcf_out_of_synch removed.
15500 * jcf.h (typedef struct JCF): Field `outofsynch' deleted.
15501 (jcf_out_of_synch): Prototype deleted.
15502 * parse.h (struct parser_ctxt): `minus_seen', `java_error_flag',
15503 `deprecated' and `class_err': integer turned into bit-fields.
15504 New bit-fields `saved_data_ctx' and `saved_data'. Fixed comments.
15505 * parse.y (package_list): New global.
15506 (package_declaration:): Record newly parsed package name.
15507 (extra_ctxp_pushed_p): Static global deleted.
15508 (java_parser_context_save_global): Create buffer context for the
15509 purpose of saving globals, if necessary.
15510 (java_parser_context_restore_global): Pop context pushed for the
15511 purpose of saving globals, if necessary.
15512 (java_debug_context_do): New prototype and function.
15513 (java_debug_context): Likewise.
15514 (do_resolve_class): Use already parsed package names to qualify
15515 and lookup class candidate.
15516 (java_pre_expand_clinit): Removed unnecessary local variable.
15517
15518 1999-12-17 Tom Tromey <tromey@cygnus.com>
15519
15520 * gjavah.c (decode_signature_piece): Print "::" in JArray<>. This
15521 fixes PR gcj/119.
15522 (process_file): Use `\n\' at end of each line in string.
15523
15524 1999-12-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
15525
15526 * expr.c (expand_invoke): Layout the loaded class before
15527 attempting to use it.
15528 (expand_java_field_op): Allow final field assignments to take
15529 place in $finit$.
15530 * typeck.c (convert): Return error_mark_node if expr is null.
15531
15532 1999-12-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15533
15534 * class.c (class_depth): Return -1 if the class doesn't load
15535 properly.
15536 * expr.c (can_widen_reference_to): Check for errors during depth
15537 computation and return 0 accordingly.
15538 * jcf-parse.c (parse_source_file): Call java_fix_constructors to
15539 create default constructors and add an other error check.
15540 * parse.h (java_fix_constructors): Prototyped.
15541 * parse.y (java_pre_expand_clinit): Likewise.
15542 (build_super_invocation): Re-prototyped to feature one argument.
15543 (java_check_circular_reference): Directly use `current'.
15544 (java_fix_constructors): New function.
15545 (java_check_regular_methods): Don't create default constructors
15546 here, but abort if none were found.
15547 (java_complete_expand_methods): Pre-process <clinit> calling
15548 java_pre_expand_clinit.
15549 (java_pre_expand_clinit): New function.
15550 (fix_constructors): build_super_invocation invoked with the
15551 current method declaration as an argument.
15552 (build_super_invocation): Use the context of the processed method
15553 decl argument instead of current_class.
15554 * typeck.c (lookup_java_method): Take WFLs in method names into
15555 account.
15556
15557 1999-12-14 Per Bothner <per@bothner.com>
15558
15559 * class.c (make_class_data): flag_keep_inline_functions to keep
15560 private methods in the method array.
15561
15562 1999-12-15 Anthony Green <green@cygnus.com>
15563
15564 * check-init.c (check_init): Take into account both types of
15565 `throw's when checking for uninitialized variables.
15566
15567 1999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
15568
15569 * parse.y (java_complete_lhs): Force conversion of array
15570 dimensions to int_type_node, that's what runtime's ABI expects.
15571
15572 1999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
15573
15574 * parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third
15575 operand of a WFL, until the Java front-end gets fixed with regard
15576 to Mark Mitchell's gcc/tree.h patch (1999-12-04.)
15577
15578 1999-12-10 Andrew Haley <aph@cygnus.com>
15579
15580 * parse.h (BUILD_THROW): Add support for sjlj-exceptions.
15581 decl.c (init_decl_processing): Add _Jv_Sjlj_Throw.
15582 expr.c (build_java_athrow): Add support for sjlj-exceptions.
15583 java-tree.h: Ditto.
15584 jcf-write.c: Ditto.
15585
15586 1999-12-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
15587
15588 * expr.c (java_lang_expand_expr): Switch to permanent obstack
15589 before calling expand_eh_region_start and expand_start_all_catch.
15590 * except.c (expand_start_java_handler): Switch to permanent
15591 obstack before calling expand_eh_region_start.
15592 (expand_end_java_handler): Switch to permanent obstack before
15593 calling expand_start_all_catch.
15594
15595 1999-12-5 Anthony Green <green@cygnus.com>
15596
15597 * decl.c (init_decl_processing): Mark throw_node as a noreturn
15598 function with side effects.
15599 (init_decl_processing): Mark all memory allocating DECLs with
15600 DECL_IS_MALLOC.
15601
15602 1999-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15603
15604 * except.c (expand_end_java_handler): Call
15605 expand_resume_after_catch and end_catch_handler.
15606
15607 1999-11-30 Anthony Green <green@cygnus.com>
15608
15609 * verify.c (verify_jvm_instructions): Create new return label
15610 chain if non existent (don't rely on the verified state of the jsr
15611 target.)
15612
15613 1999-11-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
15614
15615 * jcf-write.c (generate_bytecode_insns): Fixed indentation for
15616 COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
15617
15618 * parse.y (patch_assignment): Removed bogus final class test on
15619 lhs when checking on whether to emit an ArrayStoreException runtime
15620 check.
15621 * expr.c (expand_java_arraystore): Likewise.
15622
15623 1999-11-28 Anthony Green <green@cygnus.com>
15624
15625 * decl.c (find_local_variable): Reuse single slot decls when
15626 appropriate.
15627
15628 1999-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
15629
15630 * jcf-parse.c (saw_java_source): Global variable removed.
15631 (read_class): Don't use `saw_java_source'. Added extra braces.
15632 (yyparse): Code setting `saw_java_source' removed.
15633
15634 1999-11-24 Mark Mitchell <mark@codesourcery.com>
15635
15636 * except.c (emit_handlers): Zero catch_clauses after emitting them.
15637
15638 1999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
15639
15640 * verify.c (merge_type_state): Non verified subroutines being
15641 considered more than once to trigger passive type merge.
15642
15643 1999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
15644
15645 * parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE
15646 in case of error. Error message tuned.
15647
15648 1999-11-21 Anthony Green <green@cygnus.com>
15649
15650 * constants.c (find_methodref_index): Unwrap method names before
15651 inserting them in the constant pool.
15652
15653 * jcf-parse.c (jcf_parse): Display `interface' when appropriate.
15654
15655 * class.c (assume_compiled_node): New typedef.
15656 (assume_compiled_tree): New static data.
15657 (find_assume_compiled_node): New function.
15658 (add_assume_compiled): New function.
15659 (assume_compiled): New function.
15660 * class.c (make_class_data): Use assume_compiled.
15661 (is_compiled_class): Use assume_compiled.
15662
15663 * java-tree.h (add_assume_compiled): Declare.
15664
15665 * lang.c (lang_decode_option): Parse new options.
15666
15667 1999-11-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
15668
15669 * class.c (layout_class): Always convert TYPE_SIZE_UNIT to
15670 int_type_node: that's what `_Jv_AllocObject' expects.
15671
15672 1999-11-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
15673
15674 * parse.y (lookup_method_invoke): Use lang_printable_name to
15675 reliably build the type name during error report. Fixes PR gcj/97.
15676
15677 1999-11-09 Tom Tromey <tromey@cygnus.com>
15678
15679 * jcf-path.c: Include <sys/stat.h>.
15680 (jcf_path_init): Search for libjava.zip. Fixes PR gcj/84.
15681 (DIR_UP): New macro.
15682
15683 1999-11-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
15684
15685 * parse.y (source_end_java_method): Resume permanent allocation,
15686 reversing Apr 27 1998 patch.
15687 (patch_string_cst): Pop obstacks after having pushed the permanent
15688 ones.
15689
15690 1999-11-05 Tom Tromey <tromey@cygnus.com>
15691
15692 * class.c (finish_class): Emit inlined methods if any native
15693 methods exist in the class. Fixes PR gcj/85.
15694
15695 1999-11-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
15696
15697 * parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR.
15698 (qualify_ambiguous_name): Likewise.
15699
15700 1999-11-03 Godmar Back <gback@cs.utah.edu>
15701
15702 * typeck.c: (lookup_java_method): search all inherited
15703 interfaces when looking up interface method.
15704
15705 1999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15706
15707 * parse.y (method_header:): Issue error message for rule `type
15708 error'.
15709 (synchronized:): Error report when not using synchronized.
15710
15711 1999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15712
15713 * parse.y (resolve_qualified_expression_name): Prevent `this' from
15714 being used before the superclass constructor has been called.
15715 (complete_function_arguments): Use CALL_EXPLICIT_CONSTRUCTOR_P
15716 instead of `CALL_THIS_CONSTRUCTOR_P'.
15717
15718 1999-10-30 Todd T. Fries <todd@lighthouse.fries.net>
15719
15720 * check-init.c: Fix typo in comment.
15721
15722 1999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
15723
15724 * class.c (add_method_1): Set DECL_INLINE to 1 for private, static
15725 and final method.
15726
15727 1999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
15728
15729 * parse.y (expression_statement:): Call function to report
15730 improper invocation of a constructor.
15731 (parse_ctor_invocation_error): New function.
15732
15733 1999-10-26 Mark Mitchell <mark@codesourcery.com>
15734
15735 * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
15736 remember_end_note.
15737
15738 1999-10-21 Tom Tromey <tromey@cygnus.com>
15739
15740 * jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set
15741 in generated `main'.
15742
15743 1999-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
15744
15745 * parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
15746 (qualify_ambiguous_name): Likewise.
15747
15748 1999-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
15749
15750 * parse.y (java_complete_tree): fold_constant_for_init to work on
15751 permanent_obstack.
15752 (java_complete_lhs): Likewise.
15753 (array_constructor_check_entry): Complete an initializer element
15754 on permanent_obstack.
15755
15756 1999-10-19 Tom Tromey <tromey@cygnus.com>
15757
15758 * jcf-parse.c (parse_source_file): Call jcf_dependency_add_file.
15759 From Mike Moreton <mike@pillim.demon.co.uk>.
15760
15761 1999-10-15 Greg McGary <gkm@gnu.org>
15762
15763 * java-tree.h (flag_bounds_check): Remove extern decl.
15764 * lang.c (flag_bounds_check): Remove global variable.
15765 (lang_f_options): Remove "bounds-check" entry.
15766 (lang_init_options): Default flag_bounds_check to "on".
15767
15768 1999-10-14 Tom Tromey <tromey@cygnus.com>
15769
15770 * jvgenmain.c (usage): New function.
15771 (main): Use it. Also, handle `-D' options.
15772 * jvspec.c (lang_specific_driver): Recognize -D.
15773 (jvgenmain_spec): Added `%{D*}' to jvgenmain invocation.
15774
15775 * jvspec.c (jvgenmain_spec): Use `%umain', not just `%u'.
15776
15777 1999-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15778
15779 * jcf-dump.c (print_constant, disassemble_method): Don't call a
15780 variadic function with a non-literal format string.
15781
15782 * parse-scan.y (report_main_declaration): Likewise.
15783
15784 * parse.h (ERROR_CAST_NEEDED_TO_INTEGRAL): Likewise.
15785
15786 * parse.y (read_import_dir, patch_assignment, patch_binop,
15787 patch_array_ref): Likewise.
15788
15789 * typeck.c (build_java_array_type): Likewise.
15790
15791 * verify.c (verify_jvm_instructions): Likewise.
15792
15793 1999-10-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
15794
15795 * jcf-write.c (RELOCATION_VALUE_1): Fixed integer value from 0 to 1.
15796
15797 1999-10-07 Anthony Green <green@cygnus.com>
15798
15799 * jcf-write.c (generate_classfile): Use UNSAFE_PUTx in cases
15800 where CHECK_PUT may fail for valid reasons.
15801
15802 * jcf-write.c (UNSAFE_PUT1, UNSAFE_PUT2, UNSAFE_PUT3,
15803 UNSAFE_PUTN): New macros.
15804
15805 1999-10-04 Tom Tromey <tromey@cygnus.com>
15806
15807 * lex.h (BUILD_OPERATOR2): Return ASSIGN_ANY_TK in `lite' case as
15808 well. Fixes Java PR gcj/59.
15809 * parse-scan.y (yyerror): Report errors.
15810
15811 1999-09-24 Glenn Chambers <GChambers@provsol.com>
15812
15813 * decl.c (insert_block): Remove unconditional `abort'.
15814
15815 1999-09-24 Bernd Schmidt <bernds@cygnus.co.uk>
15816
15817 * decl.c (builtin_function): No longer static. New arg CLASS. Arg
15818 FUNCTION_CODE now of type int. All callers changed.
15819 Set the builtin's DECL_BUILT_IN_CLASS.
15820
15821 1999-09-23 Tom Tromey <tromey@cygnus.com>
15822
15823 * jvspec.c (lang_specific_driver): Don't read spec file if
15824 -fsyntax-only given.
15825
15826 1999-09-22 Tom Tromey <tromey@cygnus.com>
15827
15828 * lang-specs.h: Added `%(jc1)' to the jc1 spec.
15829
15830 * javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally.
15831 (WORDS_TO_LONG): Likewise.
15832 (WORDS_TO_DOUBLE): Likewise.
15833
15834 1999-09-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15835
15836 * jcf-write.c (RELOCATION_VALUE_0): New macro.
15837 (RELOCATION_VALUE_1): Likewise.
15838 (emit_iinc, emit_reloc, push_constant1, push_constant2,
15839 push_in_const, push_long_const): Prototyped.
15840 (push_constant1): Argument `index' is of type HOST_WIDE_INT.
15841 (push_constant2): Likewise.
15842 (push_int_const): Cast find_constant1's integer arguments to `jword'.
15843 (find_constant_wide): Cast find_constant2's integer arguments to
15844 `jword'.
15845 (find_constant_index): Cast find_constant2's and find_constant2's
15846 integer arguments to `jword'.
15847 (emit_pop): Argument `value' is of type HOST_WIDE_INT.
15848 (emit_switch_reloc): Use RELOCATION_VALUE_0.
15849 (emit_if): Use RELOCATION_VALUE_1.
15850 (emit_goto): Likewise.
15851 (emit_jsr): Likewise.
15852 (generate_bytecode_insns): Use RELOCATION_VALUE_0. Cast second
15853 argument to push_long_const to HOST_WIDE_INT.
15854
15855 1999-09-15 Andreas Schwab <schwab@suse.de>
15856
15857 * Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
15858
15859 1999-09-20 Nick Clifton <nickc@cygnus.com>
15860
15861 * lang.c (lang_decode_option): Extend comment.
15862
15863 1999-09-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
15864
15865 * parse.y (java_method_add_stmt): Test against GET_CURRENT_BLOCK
15866 instead of fndecl.
15867
15868 1999-09-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15869
15870 * gjavah.c (get_field_name, print_method_info, print_include,
15871 add_namelet): Use xmalloc, not malloc.
15872
15873 * jcf-depend.c (add_entry): Likewise. Use xstrdup, not strdup.
15874 (munge): Use xrealloc, not realloc, trust xrealloc to handle a
15875 NULL pointer.
15876
15877 * jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.
15878
15879 * jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.
15880
15881 * jcf-path.c (add_entry): Likewise.
15882
15883 * jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.
15884
15885 * jv-scan.c (xmalloc): Remove definition.
15886
15887 * jvgenmain.c (xmalloc): Likewise.
15888
15889 * jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero.
15890
15891 * lex.c (java_store_unicode): Use xrealloc, not realloc.
15892
15893 * parse-scan.y: Use concat, not of xmalloc/assign/strcpy. Use
15894 concat, not xmalloc/sprintf.
15895 (java_push_parser_context): Use xcalloc, not xmalloc/bzero.
15896 (xstrdup): Remove definition.
15897
15898 * parse.y (duplicate_declaration_error_p,
15899 constructor_circularity_msg, verify_constructor_circularity,
15900 check_abstract_method_definitions, java_check_regular_methods,
15901 java_check_abstract_methods, patch_method_invocation,
15902 check_for_static_method_reference, patch_assignment, patch_binop,
15903 patch_cast, array_constructor_check_entry, patch_return,
15904 patch_conditional_expr): Use xstrdup, not strdup.
15905
15906 * zextract.c (ALLOC): Use xmalloc, not malloc.
15907
15908 1999-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15909
15910 * Make-lang.in (jvspec.o): Depend on system.h and gcc.h.
15911
15912 * jvspec.c: Include gcc.h. Don't include gansidecl.h.
15913 (do_spec, lang_specific_pre_link, lang_specific_driver,
15914 input_filename, input_filename_length): Don't declare.
15915 (main_class_name, jvgenmain_spec, lang_specific_driver):
15916 Constify a char*.
15917 (lang_specific_driver): All calls to the function pointer
15918 parameter now explicitly call `fatal'.
15919
15920 1999-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
15921
15922 * parse.y (find_applicable_accessible_methods_list): Search
15923 abstract classes as interfaces.
15924
15925 1999-09-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
15926
15927 * class.c (finish_class): We're now outside a valid method
15928 declaration. Tell the rest of gcc so.
15929
15930 1999-09-08 Bruce Korb autogen@linuxbox.com
15931
15932 * Makefile.in: Give the gperf user a hint about why "gperf -F" fails.
15933
15934 1999-09-07 Tom Tromey <tromey@cygnus.com>
15935
15936 * gjavah.c (add_class_decl): Generate include for gcj/array.h, not
15937 java-array.h.
15938 (decode_signature_piece): Don't emit "::" in JArray<>.
15939 (print_namelet): Only print trailing `;' when printing a class.
15940
15941 1999-09-10 Bernd Schmidt <bernds@cygnus.co.uk>
15942
15943 * java-tree.h: Delete declarations for all tree nodes now moved to
15944 global_trees.
15945 * decl.c: Delete their definitions.
15946
15947 1999-09-04 Mark Mitchell <mark@codesourcery.com>
15948
15949 * Make-lang.in (jc1): Depend on ggc-callbacks.o.
15950 * Makefile.in (OBJS): Add ggc-callbacks.o.
15951 (OBJDEPS): Likewise.
15952
15953 1999-09-03 Tom Tromey <tromey@cygnus.com>
15954
15955 * parse.y (strip_out_static_field_access_decl): Return operand if
15956 it satisfies JDECL_P.
15957
15958 1999-09-02 Tom Tromey <tromey@cygnus.com>
15959
15960 * gjavah.c (decode_signature_piece): Emit "::" in JArray<>.
15961 Handle nested arrays, like `[[I'.
15962
15963 1999-09-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15964
15965 * class.c (finish_class): Remove unused parameter, all callers
15966 changed.
15967
15968 * expr.c (build_java_athrow): Change return type to void.
15969 (java_lang_expand_expr): Make sure each case in switch returns a
15970 value.
15971
15972 * java-tree.h (finish_class): Fix prototype to take void args.
15973
15974 * jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN.
15975 (main): Issue return from main, not exit.
15976
15977 * jcf-parse.c (parse_class_file): Fix call to `finish_class'.
15978
15979 * jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN.
15980
15981 * jv-scan.c (main): Issue return from main, not exit.
15982
15983 * parse.y (check_abstract_method_definitions,
15984 java_check_abstract_method_definitions): Add static prototypes.
15985 (java_complete_expand_methods): Fix call to `finish_class'.
15986
15987 * verify.c (verify_jvm_instructions): Initialize variables `oldpc'
15988 and `prevpc'.
15989
15990 1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15991
15992 * lang.c (language_string): Constify.
15993
15994 1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15995
15996 * Makefile.in (LIBS): Fix definition so we link with $(CLIB).
15997 Remove hacks for stuff which comes from libiberty.
15998
15999 * Make-lang.in: Likewise.
16000
16001 1999-08-30 Hans-Peter Nilsson <hp@axis.se>
16002
16003 * Makefile.in (xref.o): Depend on xref.c explicitly.
16004
16005 1999-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16006
16007 * java-tree.h (lang_printable_name): Constify a char*.
16008
16009 * lang.c (lang_printable_name): Likewise.
16010
16011 1999-08-27 Jeffrey A Law (law@cygnus.com)
16012
16013 * gjavah.c, jcf-write.c, verify.c: Do not use C++ style
16014 comments in C code.
16015
16016 1999-08-26 Tom Tromey <tromey@cygnus.com>
16017
16018 * gjavah.c (print_cxx_classname): Print "::" before qualified
16019 name.
16020
16021 1999-08-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
16022
16023 * parse.y (lookup_cl): Changed leading comment. Now does its best
16024 to set the column number.
16025 (qualify_ambiguous_name): Take WFL wrappers into account.
16026
16027 1999-08-25 Gregg Townsend <gmt@cs.arizona.edu>
16028
16029 * verify.c (verify_jvm_instructions): Don't check instruction
16030 validity beyond end of method.
16031
16032 1999-08-25 Tom Tromey <tromey@cygnus.com>
16033
16034 * jvspec.c (lang_specific_driver): Correctly handle --help again.
16035
16036 1999-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16037
16038 * gjavah.c (print_name, print_base_classname, utf8_cmp,
16039 cxx_keyword_subst, generate_access, name_is_method_p,
16040 get_field_name, print_field_name, super_class_name, print_include,
16041 decode_signature_piece, print_class_decls, usage, help,
16042 java_no_argument, version, add_namelet, print_namelet): Add static
16043 prototype.
16044 (print_base_classname, utf8_cmp, cxx_keyword_subst,
16045 name_is_method_p): Constify a char*.
16046 (get_field_name): Likewise. Prefer xstrdup over malloc/strcpy.
16047 Provide a final else clause in an if-else-if.
16048 (print_field_info): Add missing final arg in function call to
16049 `print_field_name'.
16050 (print_method_info, decompile_method, decode_signature_piece,
16051 print_c_decl, print_full_cxx_name, print_stub,
16052 print_mangled_classname, super_class_name, print_include,
16053 add_namelet, add_class_decl, print_class_decls, process_file,
16054 help): Constify a char*.
16055
16056 * jcf-write.c (jcf_handler, push_constant1, push_constant2,
16057 push_int_const, find_constant_wide, find_constant_index,
16058 push_long_const, field_op, maybe_wide, emit_dup, emit_pop,
16059 emit_iinc, emit_load_or_store, emit_load, emit_store, emit_unop,
16060 emit_binop, emit_reloc, emit_switch_reloc, emit_case_reloc,
16061 emit_if, emit_goto, emit_jsr, call_cleanups,
16062 make_class_file_name): Add static prototypes.
16063 (generate_bytecode_return, generate_bytecode_insns): Pass a
16064 NULL_PTR, not a NULL_TREE.
16065
16066 * jv-scan.c: Include "jcf.h".
16067 (main): Declare using DEFUN macro.
16068
16069 * jvspec.c (find_spec_file, lang_specific_pre_link,
16070 lang_specific_driver): Add prototypes.
16071 (find_spec_file): Constify a char*.
16072
16073 * keyword.gperf (hash, java_keyword): Add prototypes.
16074
16075 * lang.c (lang_print_error): Add static prototype.
16076 (lang_init): Prefer memcpy over bcopy to avoid casts.
16077
16078 * lex.c (yylex): Add static prototype.
16079
16080 * parse-scan.y: Include "lex.c" earlier.
16081
16082 * parse.h: Remove redundant declaration for `yylex'.
16083
16084 * parse.y (java_decl_equiv, binop_compound_p, search_loop,
16085 labeled_block_contains_loop_p): Add static prototypes.
16086 (not_accessible_p): Make static to match prototype.
16087
16088 * verify.c (start_pc_cmp): Don't needlessly cast away const.
16089
16090 1999-08-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16091
16092 * parse.y (check_method_redefinition): Changed leading comment.
16093 (check_abstract_method_definitions): New function.
16094 (java_check_abstract_method_definitions): New function.
16095 (java_check_regular_methods): Call it.
16096 (verify_constructor_super): Fixed indentation.
16097 (lookup_method_invoke): Likewise.
16098
16099 1999-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
16100
16101 * parse.y (method_header): Return a null pointer if the current
16102 class node is null.
16103 (finish_method_declaration): Return if the current function decl
16104 is null.
16105 (source_start_java_method): Likewise.
16106 (java_method_add_stmt): Likewise.
16107
16108 1999-08-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
16109
16110 * class.c (emit_register_class): Removed unnecessary call to
16111 start_sequence.
16112 * parse.y (labeled_block_contains_loop_p): Removed unused local
16113 variable.
16114
16115 1999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16116
16117 * parse.y (java_refold): Added prototype.
16118
16119 1999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16120
16121 * parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
16122 (java_stabilize_reference): Removed unnecessary `else'.
16123 (java_complete_lhs): Set flag to remember boolean. Call
16124 java_refold. Added comments.
16125 (java_decl_equiv): New function.
16126 (binop_compound_p): Likewise.
16127 (java_refold): Likewise.
16128 (patch_unaryop): Striped static field access assigned to decl and
16129 op. Changed promotion scheme for ++/-- operators.
16130 (search_loop): New function.
16131 (labeled_block_contains_loop_p): Likewise.
16132 (patch_loop_statement): Call labeled_block_contains_loop_p. Added
16133 comment.
16134 (patch_bc_statement): Call search_loop. Fixed comment.
16135
16136 1999-08-14 Anthony Green <green@cygnus.com>
16137
16138 * expr.c (java_lang_expand_expr): Mark static array data as
16139 referenced.
16140
16141 1999-08-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16142
16143 * jvgenmain.c (main): NUL-terminate name_obstack.
16144
16145 1999-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16146
16147 * check-init.c (check_bool2_init, done_alternative): Add static
16148 prototypes.
16149
16150 * class.c (add_interface_do, maybe_layout_super_class): Likewise.
16151 (add_method, build_utf8_ref, build_class_ref,
16152 append_gpp_mangled_type, layout_class_method): Constify a char*.
16153
16154 * decl.c (push_promoted_type, make_binding_level): Add static
16155 prototypes.
16156 (push_promoted_type, pushdecl): Constify a char*.
16157
16158 * except.c (find_handler_in_range, link_handler,
16159 check_start_handlers): Add static prototypes.
16160
16161 * expr.c (process_jvm_instruction): Constify a char*.
16162
16163 * gjavah.c (main): Constify a char*.
16164
16165 * java-tree.h (verify_jvm_instructions, process_jvm_instruction):
16166 Constify a char*.
16167
16168 * jcf-depend.c (free_entry, add_entry, munge, print_ents): Add
16169 static prototypes.
16170 (add_entry, jcf_dependency_set_target, jcf_dependency_add_target,
16171 munge, print_ents): Constify a char*.
16172
16173 * jcf-dump.c (disassemble_method): Constify a char*.
16174 (print_constant_pool, print_exception_table): Add static prototypes.
16175 (print_constant, print_exception_table, main, disassemble_method):
16176 Constify a char*.
16177
16178 * jcf-io.c (find_classfile, find_class): Likewise.
16179
16180 * jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise.
16181 (set_source_filename, predefined_filename_p): Add static prototypes.
16182 (set_source_filename, get_constant, get_class_constant,
16183 find_in_current_zip): Constify a char*.
16184
16185 * jcf-path.c (free_entry, append_entry, add_entry, add_path): Add
16186 static prototypes.
16187 (add_entry, add_path, jcf_path_classpath_arg,
16188 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
16189
16190 * jcf-reader.c (get_attribute, jcf_parse_preamble,
16191 jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields,
16192 jcf_parse_one_method, jcf_parse_methods,
16193 jcf_parse_final_attributes): Add static prototypes.
16194 (get_attribute): Constify a char*.
16195
16196 * jcf.h (find_class, find_classfile, jcf_dependency_set_target,
16197 jcf_dependency_add_target, jcf_path_classpath_arg,
16198 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
16199
16200 * jv-scan.c (main): Constify a char*.
16201 (gcc_obstack_init): Add prototype arguments.
16202
16203 * jvgenmain.c (gcc_obstack_init): Likewise.
16204 (main): Constify a char*.
16205
16206 * lang.c (put_decl_string, put_decl_node, java_dummy_print): Add
16207 static prototypes.
16208 (put_decl_string, lang_print_error): Constify a char*.
16209 (lang_init): Remove redundant extern prototype.
16210
16211 * mangle.c (emit_unicode_mangled_name): Constify a char*.
16212
16213 * typeck.c (convert_ieee_real_to_integer, parse_signature_type):
16214 Add static prototypes.
16215 (get_type_from_signature): Constify a char*.
16216
16217 * verify.c (check_pending_block, type_stack_dup, start_pc_cmp ):
16218 Add static prototypes.
16219 (start_pc_cmp): Prefer PTR over GENERIC_PTR.
16220 (verify_jvm_instructions): Constify a char*.
16221
16222 * xref.c (xref_flag_value): Likewise.
16223
16224 * xref.h (xref_flag_value): Likewise.
16225
16226 * zextract.c (makeword, makelong): Add static prototypes.
16227 (makeword, makelong): Constify a uch*.
16228
16229 1999-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16230
16231 * lang.c (java_dummy_print): Constify a char*.
16232 (lang_print_error): Likewise.
16233 (lang_init): Remove redundant prototype for `print_error_function'.
16234 (lang_init_source): Likewise.
16235 (lang_identify): Constify a char*.
16236
16237 1999-08-09 Tom Tromey <tromey@cygnus.com>
16238
16239 * javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
16240 (WORDS_TO_LONG): Likewise.
16241 (WORDS_TO_DOUBLE): Likewise.
16242
16243 1999-08-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16244
16245 * Makefile.in (lang.o): Depend on $(RTL_H) $(EXPR_H).
16246
16247 * expr.c (java_stack_pop, java_array_data_offset,
16248 build_java_throw_out_of_bounds_exception, case_identity,
16249 build_java_check_indexed_type): Add static prototypes.
16250 (linenumber_table, expand_invoke, expand_java_field_op,
16251 build_primtype_type_ref, expand_byte_code): Constify a char*.
16252
16253 * java-tree.h (build_primtype_type_ref, linenumber_table):
16254 Constify a char*.
16255 (java_lang_expand_expr): Add prototype.
16256
16257 * lang.c: Include rtl.h and expr.h. Remove extern prototype for
16258 `java_lang_expand_expr'.
16259
16260 * lex.c (java_lex_error): Constify a char*.
16261 (java_get_unicode, java_read_char, java_allocate_new_line,
16262 java_unget_unicode, java_sneak_unicode): Prototype.
16263
16264 * parse-scan.y (current_class, package_name, method_declarator,
16265 report_class_declaration, yyerror): Constify a char*.
16266
16267 * parse.h (java_report_errors): Prototype.
16268 (yyerror): Constify a char*.
16269
16270 * parse.y (classitf_redefinition_error, check_modifiers,
16271 parse_jdk1_1_error, lookup_package_type,
16272 lookup_package_type_and_set_next, get_printable_method_name,
16273 purify_type_name): Constify a char*.
16274 (build_super_invocation, maybe_generate_finit,
16275 verify_constructor_super, parser_add_interface,
16276 add_superinterfaces, jdep_resolve_class, note_possible_classname,
16277 java_complete_expand_methods, java_expand_finals,
16278 cut_identifier_in_qualified, java_stabilize_reference,
16279 do_unary_numeric_promotion, operator_string, do_merge_string_cste,
16280 merge_string_cste): Prototype.
16281 (single_type_import_declaration, yyerror,
16282 variable_redefinition_error, build_array_from_name,
16283 build_unresolved_array_type, check_class_interface_creation,
16284 resolve_class, complete_class_report_errors,
16285 note_possible_classname, read_import_dir,
16286 find_in_imports_on_demand, resolve_package, fix_constructors,
16287 check_deprecation, lookup_method_invoke,
16288 maybe_build_primttype_type_ref, array_constructor_check_entry):
16289 Constify a char*.
16290 (java_complete_expand_methods, java_expand_finals): Make static.
16291 (convert_narrow): Remove static prototype.
16292
16293 1999-08-03 J"orn Rennecke <amylaar@cygnus.co.uk>
16294
16295 * Makefile.in (decl.o): Depends on $(srcdir)/../defaults.h.
16296
16297 1999-08-02 Richard Henderson <rth@cygnus.com>
16298
16299 * decl.c: Include defaults.h instead of expr.h.
16300 * parse.y: Likewise.
16301
16302 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
16303
16304 * java/decl.c (start_java_method): Change all uses of
16305 PROMOTE_PROTOTYPES, so that it tests it as a C expression.
16306 Ensure expr.h is included.
16307 * java/expr.c (pop_arguments): Ditto.
16308 * java/parse.y (expand_start_java_method): Ditto.
16309
16310 1999-08-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16311
16312 * Makefile.in (ALL_CFLAGS): Add '-W -Wall'.
16313
16314 1999-07-31 Bernd Schmidt <bernds@cygnus.co.uk>
16315
16316 * decl.c: Include "function.h".
16317 * except.c: Likewise.
16318 * parse.y: Likewise.
16319 * Makefile.in: Update dependencies.
16320
16321 1999-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16322
16323 * expr.c (build_java_soft_divmod): Provide a default case in switch.
16324 (java_lang_expand_expr): Mark parameters `target', `tmode' and
16325 `modifier' with ATTRIBUTE_UNUSED.
16326
16327 * gjavah.c (process_file): Add braces around ambiguous `else'.
16328
16329 * jcf-dump.c (print_access_flags, localvar_free): Change return
16330 type to void.
16331
16332 * parse.y (java_complete_expand_method): Initialize variable
16333 `exception_copy'.
16334 (resolve_qualified_expression_name): Likewise for `field_decl'.
16335 (patch_method_invocation): Likewise for `class_to_search'.
16336 (qualify_ambiguous_name): Likewise for `name' and `ptr_type'.
16337 (patch_assignment): Likewise for `lhs_type'.
16338
16339 * verify.c (verify_jvm_instructions): Remove unused variable
16340 `caller'.
16341
16342 1999-07-25 Richard Henderson <rth@cygnus.com>
16343
16344 * decl.c (va_list_type_node): New.
16345
16346 1999-07-25 Anthony Green <green@cygnus.com>
16347
16348 * gjavah.c (print_stub): New function.
16349 (METHOD_IS_NATIVE): New macro.
16350 (print_mangled_classname): Make static.
16351 (HANDLE_END_FIELD): Don't emit fields during stub generation.
16352 (process_file): Perform stub generation.
16353 (HANDLE_METHOD): Don't emit class decls during stub
16354 generation.
16355 (HANDLE_END_METHOD): Take into account stub generation.
16356 (print_method_info): Handle stub generation.
16357 (print_stub): New function.
16358 (print_cxx_classname): Make signature consistant with others.
16359 (help): Describe -stubs option.
16360 (main): Create stub file.
16361 (version): Use version.c.
16362 (print_full_cxx_name): New function.
16363 (print_c_decl): Use print_full_cxx_name.
16364
16365 1999-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16366
16367 * check-init.c (check_init): Handle MAX_EXPR.
16368
16369 1999-07-15 Andrew Haley <aph@cygnus.com>
16370
16371 * lang.c (flag_use_divide_subroutine): New variable.
16372 * typeck.c: (convert_ieee_real_to_integer): Bounds check
16373 fp-to-integer conversion.
16374 (convert): Call convert_ieee_real_to_integer when flag_fast_math
16375 is not set.
16376
16377 * expr.c (build_java_soft_divmod): New function.
16378 (build_java_binop): Call build_java_soft_divmod if
16379 flag_use_divide_subroutine is set.
16380 * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
16381 soft_lrem_node: new builtin functions.
16382 (init_decl_processing) Initialize the new builtins.
16383 * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
16384 soft_lrem_node: new builtin functions.
16385 (build_java_soft_divmod): New function.
16386 * parse.y: Call build_java_soft_divmod if
16387 flag_use_divide_subroutine is set.
16388 * parse.c: Rebuilt.
16389
16390 * jvspec.c (lang_specific_driver): Always allow an extra arg (for
16391 a --specs= arg) even if not linking.
16392 * lang-options.h (DEFINE_LANG_NAME ("Java")): Add
16393 -fuse-divide-subroutine
16394
16395 1999-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
16396
16397 * parse.y (resolve_and_layout): Check methods only once.
16398 (resolve_qualified_expression_name): Verify thrown exceptions
16399 compatibility.
16400 (check_thrown_exceptions): Reject exceptions thrown in
16401 initializer. Error message tuned.
16402
16403 1999-07-14 Andrew Haley <aph@cygnus.com>
16404
16405 * expr.c (expand_expr): Do not return the last statement in a
16406 block as the block's value.
16407
16408 1999-07-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
16409
16410 * expr.c (force_evaluation_order): Save the COMPOUND_EXPR'ed
16411 CALL_EXPR, to avoid order of evaluation changes.
16412
16413 1999-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
16414
16415 * parse.y (qualify_ambiguous_name): Do not use
16416 IDENTIFIER_LOCAL_VALUE when name is a STRING_CST.
16417
16418 1999-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
16419
16420 * check-init.c (check_init): Handle MAX_EXPR.
16421 * expr.c (force_evaluation_order): Force method call arguments to
16422 be evaluated in left-to-right order.
16423 * parse.y (qualify_ambiguous_name): Loop again to qualify
16424 NEW_ARRAY_EXPR properly.
16425
16426 1999-06-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
16427
16428 * parse.y (patch_invoke): Resolve unresolved invoked method
16429 returned type.
16430 (qualify_ambiguous_name): STRING_CST to qualify expression for
16431 type name resolution.
16432
16433 1999-06-24 Andrew Haley <aph@cygnus.com>
16434
16435 * class.c (finish_class): Whenever a deferred method is
16436 output, rescan the list of methods to see if a new candidate for
16437 output can be found.
16438
16439 1999-06-28 Tom Tromey <tromey@cygnus.com>
16440
16441 * jvspec.c (lang_specific_driver): Recognize --help.
16442
16443 1999-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
16444
16445 * parse.y (resolve_package): Fixed bogus return statement.
16446 (patch_method_invocation): Resolve method invocation beginning with
16447 a package name qualifier.
16448
16449 1999-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16450
16451 * Make-lang.in (java.stage1): Depend on stage1-start.
16452 (java.stage2): Likewise for stage2-start.
16453 (java.stage3): Likewise for stage3-start.
16454 (java.stage4): Likewise for stage4-start.
16455
16456 1999-06-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
16457
16458 * parse.y (java_complete_lhs): When doing cross referencing, don't
16459 try to keep file location on a WFL expanded as a CALL_EXPR.
16460
16461 1999-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
16462
16463 * parse.y (finish_method_declaration): Insert a RETURN_EXPR when
16464 compiling to class file a void method with an empty method body.
16465 As a side effect, the bytecode backend will generate the
16466 appropriate `return' instruction.
16467
16468 1999-06-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16469
16470 * parse.y (lookup_package_type_and_set_next): New function prototype.
16471 (resolve_package): Search current and imported packages.
16472 (lookup_package_type_and_set_next): New function.
16473
16474 1999-06-22 Andrew Haley <aph@cygnus.com>
16475
16476 * verify.c (verify_jvm_instructions): Check for pending blocks
16477 before invalid PC test and opcode switch, not after.
16478
16479 1999-06-21 Andrew Haley <aph@cygnus.com>
16480
16481 * except.c (find_handler_in_range): The upper limit for exception
16482 ranges is exclusive, not inclusive: (start <= pc < end).
16483 (link_handler): find child pointer which points to outer by
16484 searching sibling list: previous code incorrectly assumed that
16485 outer->outer->first_child must point to outer.
16486 * verify.c (verify_jvm_instructions): FIXME added to code for
16487 `athrow'.
16488 (verify_jvm_instructions): Do not assume that the last block
16489 processed in a subroutine is a block which ends with a `ret'
16490 instruction. With some control flows it is possible that the last
16491 block ends with an `athrow'.
16492
16493 1999-06-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
16494
16495 * parse.y (qualify_ambiguous_name): Reorganized the post
16496 evaluation of non WFL leading expression nodes.
16497
16498 1999-06-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
16499
16500 * parse.y (qualify_ambiguous_name): Handle ARRAY_REF after
16501 CONVERT_EXPR.
16502
16503 1999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
16504
16505 * parse.y (qualify_ambiguous_name): Handle qualified expression
16506 beginning with a STRING_CST.
16507
16508 1999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
16509
16510 * parse.y (register_fields): Set DECL_INITIAL on both
16511 pre-initialized static and public fields.
16512 (resolve_field_access): Static field access expressions to always
16513 use pointer types.
16514 (qualify_ambiguous_name): Work out buried CALL_EXPR for proper
16515 qualification. CONVERT_EXPR to be resolved as an expression name.
16516 (java_complete_lhs): Identify and access qualified final
16517 initialized field in switch statement case expression.
16518 (fold_constant_for_init): Pre-initialized field decl constant to
16519 be folded.
16520
16521 1999-06-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
16522
16523 * parse.y (note_possible_classname): Mark returned node with
16524 QUALIFIED_P only if the original class name contained a '/'.
16525
16526 1999-06-05 Anthony Green <green@cygnus.com>
16527
16528 * Make-lang.in (gcjh): More parallel build fixes.
16529
16530 1999-06-03 Mike Stump <mrs@wrs.com>
16531
16532 * Make-lang.in (JCF_DUMP_SOURCES, jvgenmain): Fix parallel builds.
16533
16534 1999-06-02 Anthony Green <green@cygnus.com>
16535
16536 * except.c (link_handler): Chain exception handlers in order.
16537
16538 1999-06-02 Anthony Green <green@cygnus.com>
16539
16540 * expr.c (expand_byte_code): Fill unreachable bytecode regions
16541 with nops and process as usual in order to always set correct EH
16542 ranges. Emit detailed warnings about unreachable bytecodes.
16543
16544 1999-06-02 Anthony Green <green@cygnus.com>
16545
16546 * class.c (build_utf8_ref): Mark cinit and utf8 tree nodes as
16547 constant.
16548
16549 1999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
16550
16551 * parse.y (lookup_field_wrapper): Unified returned value to NULL
16552 or the searched field decl.
16553
16554 1999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
16555
16556 * parse.y (fold_constant_for_init): Convert numerical constant
16557 values to the type of the assigned field.
16558
16559 1999-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
16560
16561 * expr.c (lookup_field): Relaxed the test on class loading error
16562 detection.
16563 * parse.y (fold_constant_for_init): Enabeled old code.
16564
16565 1999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
16566
16567 * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast'
16568 decide the validity of the cast of a java.lang.Cloneable reference
16569 to an array.
16570 (patch_conditional_expr): Fixed first argument passed to
16571 binary_numeric_promotion.
16572
16573 1999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
16574
16575 * parse.y (qualify_ambiguous_name): Take into account that a
16576 CONVERT_EXPR might specify a type as a WFL.
16577
16578 1999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
16579
16580 * parse.y (patch_assignment): Save the rhs before using it as an
16581 argument to _Jv_CheckArrayStore.
16582
16583 1999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
16584
16585 * lex.c (java_parse_doc_section): Fixed `tag' buffer size.
16586
16587 1999-05-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
16588
16589 * lex.c (java_lex): Accepts `+' or `-' after the beginning of a
16590 floating point literal only when the exponent indicator has been
16591 parsed.
16592
16593 1999-05-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16594
16595 * parse.y (formal_parameter:): Construct argument tree list
16596 element even if a yet unsupported final parameter was encountered.
16597
16598 1999-05-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
16599
16600 * parse.y (finish_method_declaration): Issue errors for native or
16601 abstract methods declared with a method body, as well as for non
16602 native or non abstract methods with no method body.
16603
16604 1999-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16605
16606 * class.c (build_utf8_ref): Initialize variable `field'.
16607
16608 * decl.c (init_decl_processing): Initialize variable `field'.
16609
16610 * expr.c (build_known_method_ref): Mark parameters `method_type',
16611 `method_signature' and `arg_list' with ATTRIBUTE_UNUSED.
16612 (process_jvm_instruction): Likewise for parameter `length'.
16613
16614 * jvspec.c (lang_specific_driver): Mark variables `saw_math',
16615 `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with
16616 ATTRIBUTE_UNUSED.
16617
16618 * parse.y (maybe_generate_clinit): Remove unused variable
16619 `has_non_primitive_fields'.
16620 (find_in_imports_on_demand): Initialize variables `node_to_use'
16621 and `cl'.
16622 (patch_binop): Likewise for variable `prom_type'.
16623 (patch_unaryop): Likewise for variable `prom_type'.
16624
16625 * verify.c (verify_jvm_instructions): Likewise for variable `last'.
16626
16627 * xref.c (xref_table): Add missing initializer.
16628
16629 1999-05-14 Tom Tromey <tromey@cygnus.com>
16630
16631 * java-except.h (struct eh_range): Removed unused `next' member.
16632 * verify.c (verify_jvm_instructions): Call check_nested_ranges
16633 after adding all exception handlers. Sort exception ranges in
16634 order of start PC.
16635 (struct pc_index): New structure.
16636 (start_pc_cmp): New function.
16637 * except.c (add_handler): Return `void'. Don't call link_handler;
16638 instead construct an ordinary linked list and do range
16639 coalescing.
16640 (check_nested_ranges): New function.
16641 (link_handler): Changed interface to allow merging of eh_ranges.
16642 Split overlapping ranges. Return `void'.
16643
16644 1999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16645
16646 * parse.y (constructor_block_end:): New rule, tagged <node>.
16647 (constructor_body:): Use `constructor_block_end' instead of
16648 `block_end'.
16649
16650 1999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16651
16652 * parse.y (statement_nsi:): Pop `for' statement block.
16653 (java_complete_lhs): Labeled blocks containing no statement are
16654 marked as completing normally.
16655
16656 1999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
16657
16658 * xref.c (xref_set_current_fp): New function, defined.
16659 * xref.h (xref_set_current_fp): New function, prototyped.
16660
16661 1999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
16662
16663 * check-init.c (check_init): Take into account that
16664 LABELED_BLOCK_STMT can be empty.
16665
16666 1999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
16667
16668 * parse.y (java_check_regular_methods): Warning check on not
16669 overriding methods with default access in other packages does not
16670 apply to `<clinit>'.
16671 (java_complete_lhs): If block body is an empty_stmt_node, replace
16672 it by NULL_TREE. This prevents gcc from generating an irrelevant
16673 warning.
16674
16675 1999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
16676
16677 * check-init.c (check_init): Removed code accepting to see things
16678 falling through default:, when doing xrefs.
16679 * java-tree.h (do_not_fold): New global variable, declared.
16680 * parse.y (do_not_fold): New global variable, defined.
16681 (java_complete_expand_method): Set `do_not_fold' to the value of
16682 `flag_emit_xref'. When doing xrefs: copy the thrown exceptions,
16683 and reinstall them after them have been purged; do not check for
16684 initializations; do not issue missing return errors.
16685 (java_complete_lhs): Do not attempt to patch INSTANCEOF_EXPR nodes
16686 when doing xrefs.
16687 (patch_binop): Skip the fold part when doing xrefs.
16688 (build_string_concatenation): Skip the concatenation part when
16689 doing xrefs.
16690 (patch_synchronized_statement): Do not generate a try-finally when
16691 doing xrefs.
16692 (patch_throw_statement): When doing xrefs, do not call BUILD_THROW
16693 and keep the location where the throw was seen.
16694 * typeck.c (convert): When `do_not_fold' is set, do not attempt
16695 any treatment on the converted node an simply return a NOP_EXPR of
16696 the targeted type.
16697 * xref.c (xref_get_data): New function, defined.
16698 * xref.h (xref_get_data): New function, declared.
16699 (XREF_GET_DATA): Use xref_get_data.
16700
16701 1999-05-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16702
16703 * gjavah.c (print_include): Cast the result of `strlen' to int
16704 when comparing against a signed value.
16705 (add_namelet): Likewise.
16706
16707 1999-05-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16708
16709 * expr.c (expand_invoke): Mark parameter `nargs' with
16710 ATTRIBUTE_UNUSED.
16711 (PRE_LOOKUP_SWITCH): Likewise for variable `match'.
16712
16713 * jcf-io.c (jcf_unexpected_eof): Mark parameter `count' with
16714 ATTRIBUTE_UNUSED.
16715
16716 * jcf-reader.c (get_attribute): Cast a value to long
16717 when comparing against a signed expression. Likewise.
16718
16719 * lex.h: Never define HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT or
16720 HOST_BITS_PER_CHAR.
16721
16722 1999-05-11 Andrew Haley <aph@cygnus.com>
16723
16724 * parse.y (source_end_java_method): If the current method contains
16725 any exception handlers, force asynchronous_exceptions: this is
16726 necessary because signal handlers in libjava may throw exceptions.
16727 * decl.c (end_java_method): Ditto.
16728
16729 1999-05-11 Tom Tromey <tromey@cygnus.com>
16730
16731 * Make-lang.in (jvspec.o): Don't define WITH_THREAD_x or WITH_GC_x
16732 flags.
16733 * jvspec.c (THREAD_NAME): Removed.
16734 (GC_NAME): Likewise.
16735 (MATHLIB): Likewise.
16736 (WITHLIBC): Likewise.
16737 (GCLIB): Likewise.
16738 (THREADLIB): Likewise.
16739 (MATH_LIBRARY): Likewise.
16740 (lang_specific_driver): Don't add `-l' options to command line.
16741 Instead, add a single --specs option. Recognize `-L' options and
16742 use them to search for spec file.
16743 (find_spec_file): New function.
16744 (SPEC_FILE): New define.
16745
16746 1999-05-11 Dave Brolley <brolley@cygnus.com>
16747
16748 * lang-options.h: -MD, -MMD, -M and -MM not needed here for
16749 cpplib-enabled build.
16750
16751 1999-05-05 Per Bothner <bothner@cygnus.com>
16752
16753 * class.c (make_field_value): DECL_INITIAL may be a string literal;
16754 temporarily zero it while calling rest_of_decl_compilation.
16755
16756 * java-tree.h (string_ptr_type_node): Add declaration.
16757 * decl.c: Define and initialize string_ptr_type_node.
16758 * parse.y (patch_string_cst): Use string_ptr_type_node.
16759
16760 * parse.h (LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P): Removed.
16761 * parse.y (for_statement): Now unconditionally exit_block.
16762 (finish_labeled_statement): No longer exit_block if for-loop.
16763 (patch_loop_statement): Check harder if the loop is already labeled.
16764
16765 * parse.y (patch_initialized_static_field): Removed function.
16766 (maybe_generate_clinit): Removed special handling for interfaces.
16767 (java_complete_expand_methods): Do a preliminary java_complete_tree
16768 on <clinit> to determine if it can be removed.
16769 (java_complete_expand_method): Remove special handling for <clinit>.
16770 (java_complete_lhs): For BLOCK and EXPR_WITH_FILE_LOCATION
16771 optimize if we get back empty_stmt_node.
16772 For MODIFY_EXPR, re-do checking of static initializers.
16773 (fold_constant_for_init): Don't return immediate if VAR_DECL.
16774 For VAR_DECL, pass correct context.
16775
16776 * verify.c (verify_jvm_instructions): Better error messages.
16777
16778 1999-05-03 Tom Tromey <tromey@cygnus.com>
16779
16780 * parse-scan.y (interface_declaration): Call
16781 report_class_declaration for interfaces.
16782
16783 1999-04-30 20:54 -0400 Zack Weinberg <zack@rabi.columbia.edu>
16784
16785 * Makefile.in: Remove -v from bison command lines.
16786
16787 1999-04-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
16788
16789 * check-init.c (check_init): Exclude a case of error when doing
16790 xrefs.
16791 * class.c (layout_class_method): Don't generate the error message
16792 twice when compiling from source.
16793 * lang-options.h: Added `-Wredundant-modifers' and
16794 `-Wunusupported-jdk11' flags and help text.
16795 * lang.c (lang_decode_option): Added support for
16796 `-Wunsupported-jdk11' and `-Wredundant-modifiers'.
16797 flag_static_local_jdk11 and flag_redundant set accordingly.
16798 * lex.c (java_lex): Call BUILD_OPERATOR on CCB_TK.
16799 * parse.h (EXPR_WFL_ADD_COL): New macro.
16800 (DECL_END_SOURCE_LINE): Likewise.
16801 (DECL_INHERITED_SOURCE_LINE): Likewise.
16802 * parse.y (static_ref_err): New function, prototyped.
16803 (CCB_TK): Now tagged <operator>.
16804 (class_body:): Remember the location of the closing '}' of a class
16805 definition when doing xrefs.
16806 (block:): Likewise.
16807 (block_end:): Likewise.
16808 (create_class): Remember the location of the inherited class
16809 identifier when doing xrefs.
16810 (register_fields): Added test on first operand of `init' before
16811 testing it TREE_CODE.
16812 (method_header): Store the location of the class identifier in the
16813 class decl when doing xrefs.
16814 (finish_method_declaration): Don't combine first/last method line
16815 when doing xref.
16816 (java_check_regular_methods): Warning check on not overriding
16817 methods with default access on other packages move before check on
16818 static methods. Initialization of `aflags' also moved up.
16819 (resolve_expression_name): Call static_ref_err to report the error.
16820 (static_ref_err): New function, implemented.
16821 (resolve_field_access): Returned simplified static field access
16822 when doing xrefs.
16823 (resolve_qualified_expression_name): Check for illegal use of
16824 static fields in a non static context. Call static_ref_err to
16825 report error in various places.
16826 (java_complete_tree): Do not fold initialized static fields when
16827 doing xrefs.
16828 (java_complete_lhs): Likewise.
16829
16830 1999-04-29 Anthony Green <green@cygnus.com>
16831
16832 * expr.c (generate_name): Use ASM_GENERATE_INTERNAL_LABEL to
16833 create internal labels.
16834 (lookup_label): Ditto.
16835
16836 1999-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
16837
16838 * class.c (layout_class_method): Generate <clinit>'s rtl for
16839 interfaces.
16840 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
16841 for interfaces' <clinit>.
16842 * expr.c (lookup_field): Search for fields in interfaces.
16843 (expand_invoke): Fixed indentation.
16844 (expand_java_field_op): Likewise. Use IS_CLINIT.
16845 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): Macro removed.
16846 (IS_CLINIT): New macro.
16847 * parse.y (type_declaration:): Call maybe_generate_clinit after an
16848 interface was parsed.
16849 (maybe_generate_clinit): Don't generate if the current class is an
16850 interface with only fields of primitive types.
16851 (reset_method_name): Use IS_CLINIT.
16852 (java_complete_expand_method): Expand <clinit> when it exists for
16853 interfaces. Use IS_CLINIT.
16854 (resolve_expression_name): Use DECL_CONTEXT instead of
16855 current_class to build static field references.
16856 (java_complete_lhs): Use IS__CLINIT. Don't use SAVE_EXPR on
16857 ARRAY_REF when doing xreferencing.
16858 (check_final_assignment): Fixed typo in leading comment. Use
16859 IS_CLINIT.
16860 (patch_array_ref): Don't fully expand array references when
16861 xreferencing.
16862 (patch_return): Use IS_CLINIT.
16863 (patch_throw_statement): Likewise.
16864
16865 1999-04-22 Tom Tromey <tromey@cygnus.com>
16866
16867 * Make-lang.in (JAVA_SRCS): Added check-init.c.
16868
16869 1999-04-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
16870
16871 * decl.c (predef_filenames, predef_filenames_size): New globals
16872 (init_decl_processing): predef_filenames and predef_filenames_size
16873 initialized.
16874 * java-tree.h (predef_filenames, predef_filenames_size): Declared
16875 extern.
16876 * jcf-parse.c (predefined_filename_p): New function.
16877 (yyparse): Check that files on the command line are specified only
16878 once and issue a warning otherwise.
16879 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): New macro.
16880 * parse.y (source_end_java_method): Nullify NOP method bodies, to
16881 avoid a gcc warning with -W -Wall turned on.
16882 (java_expand_classes): Abort if errors were encountered.
16883 (java_complete_lhs): If the cross reference flag is set, wrap
16884 field DECL node around a WFL when resolving expression name.
16885
16886 1999-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
16887
16888 * lang.c (lang_decode_option): Fixed returned value when parsing
16889 `-fxref=...' and `-Wall'.
16890 * parse.y (source_end_java_method): Do not generate code when
16891 flag_emit_xref is set.
16892 (resolve_expression_name): Do not build static field access when
16893 flag_emit_xref is set.
16894 (resolve_field_access): No special treatment on `length' when
16895 flag_emit_xref is set. Do not build qualified static field access
16896 when flag_emit_xref is set.
16897 (patch_invoke): Keep the method DECL as operand 0 of the CALL_EXPR
16898 when flag_emit_xref is set.
16899 (patch_assignment): Do not generate array store runtime check when
16900 flag_emit_xref is set.
16901 * xref.c (xref_flag_value): Fixed function declaration
16902 indentation.
16903 (xset_set_data): New function.
16904 * xref.h (xref_set_data): Added prototype for new function.
16905 (typedef struct xref_flag_table): New field data.
16906 (XREF_GET_DATA): New macro.
16907
16908 1999-04-19 Tom Tromey <tromey@cygnus.com>
16909
16910 * xref.h (enum): Removed trailing comma.
16911
16912 * parse.y (resolve_qualified_expression_name): Added missing
16913 `break'.
16914
16915 1999-04-15 Anthony Green <green@cygnus.com>
16916
16917 * gjavah.c: New prototypes for java_float_finite and
16918 java_double_finite.
16919
16920 1999-04-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
16921
16922 * parse.y (patch_unaryop): Fixed ++/-- operator check on array
16923 references.
16924
16925 1999-04-06 Jeffrey A Law (law@cygnus.com)
16926
16927 * Makefile.in (TREE_H): Add tree-check.h.
16928 (RTL_H): Add genrtl.h.
16929
16930 1999-04-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
16931
16932 * parse.y (patch_assignment): Added ArrayStoreException runtime
16933 check.
16934
16935 1999-04-06 Per Bothner <bothner@cygnus.com>
16936
16937 * expr.c (pop_type_0): New function.
16938 (pop_type): Use pop_type_0.
16939 * java-tree.h (pop_type_0): New declaration.
16940 * verify.c (verify_jvm_instructions): Check return instructions.
16941
16942 * parse.y (patch_binop): Don't fold if non-constant and emiting
16943 class files.
16944
16945 1999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16946
16947 * Makefile.in (gjavah.o): Depend on $(JAVA_TREE_H).
16948
16949 * gjavah.c: Include math.h earlier. Include tree.h/java-tree.h.
16950 (main_jcf): Don't define.
16951 (process_file): Don't set `main_jcf'.
16952
16953 * java-tree.h (main_jcf): Don't declare.
16954
16955 * jcf-parse.c (main_jcf): Add static definition.
16956
16957 * lang.c (main_jcf): Don't define.
16958
16959 1999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16960
16961 * class.c (add_method_1): Cast the argument of `bzero' to PTR.
16962
16963 * decl.c (copy_lang_decl): Likewise for `bcopy'.
16964
16965 * jcf-depend.c: Include "config.h", not <config.h>.
16966
16967 * jcf-parse.c (jcf_figure_file_type): Cast the arguments of
16968 `bcopy' to PTR.
16969
16970 * jcf-path.c: Include "config.h", not <config.h>.
16971
16972 * lex.c: Don't include various system header files.
16973 (java_init_lex): Cast the argument of `bzero' to PTR
16974
16975 * parse-scan.y (java_push_parser_context): Likewise.
16976
16977 * parse.y (java_push_parser_context): Likewise.
16978 (patch_bc_statement): Match format specifier to variable argument.
16979
16980 * xref.c: Don't include <stdio.h>.
16981
16982 1999-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
16983
16984 * parse.y (struct parser_ctxt *ctxp): Now global.
16985 (declare_local_variables): Use WFL compound value for the
16986 declaration source line value, when doing cross-referencing.
16987
16988 1999-03-31 Tom Tromey <tromey@cygnus.com>
16989
16990 * gjavah.c (print_field_info): Allow constants of other types.
16991 (print_include): Generate include when new name is proper prefix
16992 of already printed name.
16993 (add_namelet): Likewise.
16994 (cxx_keyword_subst): New function.
16995 (print_method_info): Use it.
16996 (print_field_name): New function.
16997 (get_field_name): New function.
16998 (print_field_info): Use get_field_name and print_field_name.
16999
17000 1999-03-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17001
17002 * Makefile.in (keyword.h): Generate using gperf language 'C', not
17003 'KR-C', so gperf uses the `const' keyword on strings.
17004
17005 * keyword.gperf (java_keyword): Const-ify a char*.
17006
17007 1999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
17008
17009 * parse.y (patch_bc_statement): Fixed identation and a bogus
17010 `printf' format.
17011
17012 1999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
17013
17014 * parse.y (patch_assignment): Allow static variables in other
17015 classes to be assigned.
17016
17017 1999-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17018
17019 * class.c (maybe_add_interface): Remove unused variable
17020 `interface_binfo'.
17021 (make_class_data): Use = for assignment, not ==. Likewise.
17022 (emit_register_classes): Remove unused variable `decl'.
17023
17024 * lex.c: Fix comment so as not to contain an embedded `/*'.
17025
17026 * verify.c (verify_jvm_instructions): Remove unused variable
17027 `self_type'.
17028
17029 1999-03-27 Per Bothner <bothner@cygnus.com>
17030
17031 * parse.y (complete_loop_body): Rename to finish_loop_body.
17032 (complete_labeled_statement): Rename to finish_labeled_statement.
17033 (complete_for_loop): Rename to finish_for_loop.
17034 (complete_method_declaration): Rename to finish_method_declaration.
17035
17036 * java-tree.h (continue_identifier_node): New global node.
17037 * decl.c: Define and initialize continue_identifier_node.
17038 * parse.y (generate_labeled_block): Remove - no longer needed.
17039 (build_loop_body): Use continue_identifier_node for continue block.
17040 (finish_labeled_statement): Also do pop_labeled_block actions.
17041 (java_complete_lhs): POP_LOOP even if error.
17042 (build_labeled_block): Special handling for continue_identifier_node.
17043 (patch_loop_statement): Re-organize.
17044 (patch_bc_statement): Re-write.
17045
17046 1999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
17047
17048 * parse.h (EXPR_WFL_GET_LINECOL): Set a line and column count
17049 using a WFL compound value.
17050 * parse.y (xref.h): Include.
17051 (maybe_create_class_interface_decl): Set DECL_SOURCE_LINE to the
17052 WFL compound value.
17053 (register_fields): Set WFL compound value to lineno if doing
17054 xrefs.
17055 (java_complete_expand_method): Call expand_xref if flag_emit_xref
17056 is set.
17057 * xref.c (system.h, jcf.h, parse.h, obstack.h): Include.
17058 * xref.h (expand_xref): Prototype renamed from xref_generate.
17059
17060 1999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
17061
17062 * parse.h (BLOCK_CHAIN_DECL): New use GET_CURRENT_BLOCK.
17063 (GET_CURRENT_BLOCK): New macro.
17064 * parse.y (current_static_block): New global variable.
17065 (method_body:): Define action.
17066 (complete_method_declaration): Set current_function_decl to NULL
17067 when work on the current method is done.
17068 (declare_local_variables): Use GET_CURRENT_BLOCK.
17069 (java_method_add_stmt): Likewise.
17070 (java_complete_expand_method): Disable the use of `this' when
17071 expanding <clinit>.
17072 (enter_a_block): If no current method exist, use
17073 current_static_block to link static initializer blocks.
17074 (exit_block): Rewritten to use current_static_block when no current
17075 method decl exists.
17076 (lookup_name_in_blocks): Use GET_CURRENT_BLOCK.
17077 (patch_return): Forbid the use of `return' in static initializers.
17078 (patch_throw_statement): Fixed indentation. Issue specific error
17079 for uncaught thrown checked exception in static initializer
17080 blocks. Removed FIXME.
17081
17082 1999-03-25 Zack Weinberg <zack@rabi.columbia.edu>
17083
17084 * java/Make-lang.in: Remove all references to gcj.o/gcj.c.
17085 Link gcj from gcc.o.
17086
17087 1999-03-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
17088
17089 * parse.y (find_applicable_accessible_methods_list): When dealing
17090 with interface: ensure that a given interface or java.lang.Object
17091 are searched only once.
17092
17093 1999-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17094
17095 * gjavah.c (print_c_decl): Remove unused argument `flags'.
17096
17097 * jcf-dump.c (print_access_flags): Add braces around if-else.
17098
17099 * jvspec.c (lang_specific_driver): Wrap variable `len' in macro
17100 COMBINE_INPUTS.
17101
17102 * lex.c (build_wfl_node): Add static prototype.
17103
17104 * lex.h (build_wfl_node): Remove static prototype.
17105
17106 * parse.y: Include lex.c early enough to declare everything needed.
17107 Ensure calls to `build_wfl_node' pass the proper arguments.
17108 (create_class): Remove unused variable `super_decl'.
17109 (get_printable_method_name): Initialize variable `name'.
17110
17111 1999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
17112
17113 * Changelog: Fixed 1999-03-22 typos.
17114 * lang.c (lang_decode_option): Fixed typo in error string in the
17115 XARG section.
17116
17117 1999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
17118
17119 * Makefile.in (JAVA_OBJS): Added entry xref.o.
17120 (xref.o): New rule.
17121 * java-tree.h (flag_emit_xref): Declared extern.
17122 * lang.c (xref.h): Included.
17123 (flag_emit_xref): New global variable.
17124 (lang_decode_option): Added support for -fxref.
17125 * xref.c: Created.
17126 * xref.h: Likewise.
17127
17128 1999-03-21 Manfred Hollstein <manfred@s-direktnet.de>
17129
17130 * Make-lang.in ($(GCJ)$(exeext)): Add intl.o to list of files to be
17131 linked with.
17132
17133 1999-03-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17134
17135 * Makefile.in (jcf-dump.o): Depend on $(CONFIG_H)
17136 $(srcdir)/../system.h and $(JAVA_TREE_H).
17137 (jcf-io.o): Depend on $(JAVA_TREE_H).
17138 (mangle.o): Likewise.
17139
17140 * check-init.c (check_cond_init): Add static prototype.
17141
17142 * class.c (build_java_method_type, hashUtf8String,
17143 make_field_value, get_dispatch_vector, get_dispatch_table,
17144 append_gpp_mangled_type, mangle_static_field): Likewise.
17145 (strLengthUtf8): Hide unused definition.
17146 (hashUtf8String): Const-ify.
17147 (make_field_value): Un-ANSI-fy.
17148
17149 * constants.c: Move inclusion of jcf.h above java-tree.h.
17150 (set_constant_entry, find_class_or_string_constant,
17151 find_name_and_type_constant, get_tag_node,
17152 build_constant_data_ref): Add static prototype.
17153
17154 * decl.c (push_jvm_slot, builtin_function,
17155 lookup_name_current_level): Likewise.
17156 (builtin_function): Const-ify.
17157
17158 * except.c (expand_start_java_handler, expand_end_java_handler):
17159 Add static prototype.
17160
17161 * expr.c (flush_quick_stack, push_value, pop_value,
17162 java_stack_swap, java_stack_dup, build_java_athrow,
17163 build_java_jsr, build_java_ret, expand_java_multianewarray,
17164 expand_java_arraystore, expand_java_arrayload,
17165 expand_java_array_length, build_java_monitor, expand_java_pushc,
17166 expand_java_return, expand_java_NEW, expand_java_INSTANCEOF,
17167 expand_java_CHECKCAST, expand_iinc, expand_java_binop, note_label,
17168 expand_compare, expand_test, expand_cond, expand_java_goto,
17169 expand_java_call, expand_java_ret, pop_arguments, expand_invoke,
17170 expand_java_field_op, java_push_constant_from_pool): Likewise.
17171
17172 (decode_newarray_type, expand_iinc): Un-ANSI-fy.
17173 (build_java_arraynull_check): Mark parameters `node' and `type'
17174 with ATTRIBUTE_UNUSED.
17175 (note_label): Likewise for parameter `current_pc'.
17176 (expand_java_call, expand_java_ret): Hide unused definition.
17177
17178 * java-tree.h (make_class, build_constants_constructor,
17179 java_set_exception_lang_code, pop_labeled_block, emit_handlers,
17180 init_outgoing_cpool, register_class, emit_register_classes,
17181 java_layout_seen_class_methods): Prototype.
17182 (unicode_mangling_length): Const-ify.
17183 (append_gpp_mangled_name, append_gpp_mangled_classtype,
17184 emit_unicode_mangled_name, format_int, format_uint,
17185 jcf_trim_old_input, jcf_print_utf8, jcf_print_char,
17186 jcf_print_utf8_replace, open_class): Prototype.
17187
17188 * jcf-dump.c: Include "config.h", not <config.h>. Don't include
17189 <stdio.h>. Include tree.h/java-tree.h.
17190 (utf8_equal_string usage, process_class): Add static prototype.
17191 (open_class): Don't prototype this here.
17192 (utf8_equal_string): Match arguments to format specifiers.
17193 (HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH,
17194 TABLE_SWITCH, disassemble_method): Likewise.
17195
17196 * jcf-io.c: Include tree.h/java-tree.h.
17197 (open_class, find_classfile, jcf_print_utf8,
17198 jcf_print_utf8_replace): Const-ify.
17199
17200 * jcf-parse.c (parse_zip_file_entries, process_zip_dir,
17201 parse_class_file): Add static prototype.
17202 (find_in_current_zip): Match definition to existing static
17203 prototype.
17204
17205 * jcf-write.c: Include jcf.h before tree.h/java-tree.h.
17206 (alloc_chunk, append_chunk, append_chunk_copy, gen_jcf_label,
17207 finish_jcf_block, define_jcf_label, get_jcf_label_here,
17208 put_linenumber, localvar_alloc, localvar_free, get_access_flags,
17209 write_chunks, adjust_typed_op, generate_bytecode_conditional,
17210 generate_bytecode_return, perform_relocations, init_jcf_state,
17211 init_jcf_method, release_jcf_state, generate_classfile):
17212 Add static prototype.
17213 (emit_unop): Mark parameter `type' with ATTRIBUTE_UNUSED.
17214 (make_class_file_name): Const-ify.
17215
17216 * jcf.h (find_classfile): Const-ify.
17217
17218 * jv-scan.c (reset_report): Remove prototype.
17219
17220 * jvgenmain.c: Include jcf.h/tree.h/java-tree.h.
17221 (error): Rewrite to allow varargs.
17222
17223 * lang.c (lang_f_options): Const-ify.
17224
17225 * lex.c (java_parse_escape_sequence): Add static prototype.
17226 (java_allocate_new_line): Match definition to existing static
17227 prototype.
17228
17229 * mangle.c Include tree.h/java-tree.h.
17230 (unicode_mangling_length, emit_unicode_mangled_name,
17231 append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify.
17232
17233 * parse.h (jdep_code): Remove trailing comma in enumeration.
17234 (java_get_line_col): Move prototype outside of !JC1_LITE test.
17235 (reset_report): Add prototype.
17236
17237 * verify.c (push_pending_label, merge_types): Add static
17238 prototypes.
17239
17240 * zipfile.h (opendir_in_zip, open_in_zip): Prototype.
17241
17242 1999-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
17243
17244 * parse.y (find_applicable_accessible_methods_list): Extend the
17245 search to superinterfaces when relevant.
17246 (search_applicable_methods_list): New function.
17247
17248 1999-03-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
17249
17250 * class.c (unmangle_classname): Implemented stricter testing
17251 before setting the QUALIFIED_P flag on an identifier.
17252
17253 1999-03-16 Per Bothner <bothner@cygnus.com>
17254
17255 * parse.y (java_complete_lhs): Call force_evaluation_order
17256 after patch_newarray.
17257 (patch_binop): Don't call fold if there are side effects.
17258
17259 1999-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
17260
17261 * parse.y (java_stabilize_reference): Use save_expr instead of
17262 building a SAVE_EXPR node.
17263 (java_complete_lhs): Patch the resulting string of the `+='
17264 operator (if necessary) and complete the RHS after having built
17265 the cast.
17266
17267 1999-03-15 Per Bothner <bothner@cygnus.com>
17268
17269 * class.c (make_class): Don't set CLASS_P here (because
17270 this function is also called by build_java_array_type).
17271 (push_class): Set CLASS_P here instead.
17272 * parse.h (TYPE_CLASS_P): Check for TYPE_ARRAY_P is redundant.
17273
17274 * jcf-dump.c (print_access_flags): Take extra parameter to indicate
17275 context. If the context is class, perfer "super" over "synchronized".
17276 * jcf-write.c (generate_classfile): Don't add ACC_SUPER if interface.
17277
17278 * parse.y (create_class): Don't call parser_check_super here;
17279 it is not robust. Always wait until later.
17280
17281 * parse.y (method_header): For interfaces, set ACC_ABSTRACT (to
17282 match what JDK 1.2 does), but don't set ACC_PUBLIC.
17283
17284 1999-03-13 Per Bothner <bothner@cygnus.com>
17285
17286 * lex.c (java_read_char): UNGET invalid non-initial utf8 character.
17287 * lex.h (UNGETC): Change misleading macro.
17288
17289 1999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
17290
17291 * parse.y (java_stabilize_reference): Return NODE when patching a
17292 COMPOUND_EXPR.
17293 (java_complete_lhs): Put parenthesis around truth values.
17294
17295 1999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
17296
17297 * class.c (layout_class_method): Don't make rtl for interface
17298 methods.
17299 * parse.h (GET_TYPE_NAME): New macro.
17300 * parse.y (if_then_statement:): Fixed indentation.
17301 (if_then_else_statement:): Likewise.
17302 (for_statement:): Fixed spacing.
17303 (try_statement:): Fixed indentation.
17304 (create_interface): Don't force interfaces to be abstract.
17305 (method_header): Abstract methods are OK in interfaces.
17306 (declare_local_variables): Fixed typo in comment.
17307 (java_complete_expand_method): Fixed indentation.
17308 (resolve_qualified_expression_name): Use GET_TYPE_NAME to report
17309 non accessible fields.
17310 (java_stabilize_reference): New function.
17311 (java_complete_lhs): Fixed indentation. Use
17312 java_stabilize_reference in compound assignment. Insert the
17313 cast. If not processing `+' fix string constants before processing
17314 binop.
17315
17316 1999-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17317
17318 * constants.c (find_class_or_string_constant): Cast variable `j'
17319 to a `jword' when comparing against one.
17320
17321 * expr.c (java_lang_expand_expr): Remove unused variables
17322 `has_finally_p' and `op0'.
17323
17324 * gjavah.c (print_field_info): Cast a value to jint when comparing
17325 against one. Likewise for a jlong.
17326 (add_namelet): Likewise cast a `sizeof' to an int when comparing
17327 against a signed quantity.
17328
17329 * jcf-dump.c (print_signature_type): Remove unused variable `digit'.
17330 (print_signature): Don't needlessly dereference variable `str'
17331
17332 * jcf-reader.c (get_attribute): Mark variables `max_stack' and
17333 `max_locals' with ATTRIBUTE_UNUSED.
17334 (jcf_parse_class): Likewise for variable `index'.
17335
17336 * parse.h (reverse_jdep_list): Remove static prototype.
17337
17338 * parse.y (build_jump_to_finally): Remove prototype and definition.
17339 (reverse_jdep_list): Add static prototype.
17340
17341 * typeck.c (convert_ieee_real_to_integer): Remove unused variables
17342 `assignment' and `expr_decl'.
17343
17344 * verify.c (verify_jvm_instructions): Remove unused label `bad_ldc'.
17345
17346 1999-03-12 Andrew Haley <aph@cygnus.com>
17347
17348 * jcf-path.c (add_entry): alloca len+2 rather than len+1 bytes;
17349 we'll need a directory separator and a null character.
17350
17351 1999-03-10 Per Bothner <bothner@cygnus.com>
17352
17353 * jcf-write.c (generate_bytecode_insns): Handle __builtin_fmod, for %.
17354
17355 Tue Mar 9 11:52:08 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
17356
17357 * parse.y (method_header): Don't set ACC_ABSTRACT flags on
17358 interfaces.
17359
17360 1999-03-05 Per Bothner <bothner@cygnus.com>
17361
17362 * lex.c (java_parse_end_comment): Take extra parameter (next char).
17363
17364 * class.c (build_utf8_ref): Fix possible name class/ambiguity.
17365
17366 * class.c (layout_class_method): A static method in a base class
17367 is never overridden, so treat it like it doesn't exist.
17368 However, do complain about private non-static method overriding
17369 public static method.
17370
17371 * parse.y: Don't set unused INITIALIZED_P flag.
17372 * java-tree.h (INITIALIZED_P): Removed no-longer needed flag.
17373
17374 * parse.y (find_expr_with_wfl): Optimize tail-calls.
17375 (build_array_from_name): Re-order &index[string] to &string[index].
17376
17377 * parse.y (java_complete_lhs): Don't call patch_assignment if rhs is
17378 error_mark (it might catch more errors, but it is more likely to lose).
17379
17380 1999-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17381
17382 * Makefile.in (jcf-parse.o): Depend on $(PARSE_H).
17383 (parse-scan.o): Depend on toplev.h.
17384
17385 * class.c (make_method_value): Add prototype. Make it static.
17386 Remove unused second argument, caller changed.
17387
17388 * expr.c (java_lang_expand_expr): Remove unused variable
17389 `return_label'.
17390
17391 * java-tree.h: Don't prototype find_in_current_zip.
17392 Add prototypes for verify_constant_pool, start_java_method,
17393 end_java_method, give_name_to_locals, expand_byte_code,
17394 open_in_zip, set_constant_value, find_constant1, find_constant2,
17395 find_utf8_constant, find_string_constant, find_class_constant,
17396 find_fieldref_index, find_methodref_index, write_constant_pool,
17397 count_constant_pool_bytes and encode_newarray_type.
17398
17399 * jcf-dump.c: Remove unused variable `LONG_temp'.
17400
17401 * jcf-parse.c: Include parse.h.
17402 (jcf_parse_source): Remove unused parameter, all callers changed.
17403 (jcf_figure_file_type): Add static prototype.
17404 (find_in_current_zip): Likewise. Also remove unused parameter,
17405 all callers changed.
17406 (read_class): Initialize variable `saved_pos'.
17407
17408 * jcf-reader.c (jcf_parse_preamble): Mark variables
17409 `minor_version' and `major_version' with ATTRIBUTE_UNUSED.
17410
17411 * lex.c (java_is_eol): Wrap prototype and definition in !JC1_LITE.
17412 (java_init_lex): Wrap variable `java_lang_imported' in !JC1_LITE.
17413 (java_parse_doc_section): Initialize variable `seen_star'.
17414 (java_lex): Wrap variable `number_beginning' in !JC1_LITE.
17415 (java_lex_error): Mark parameters `msg' and `forward' with
17416 ATTRIBUTE_UNUSED.
17417 (java_get_line_col): Mark parameters `filename' and `line' with
17418 ATTRIBUTE_UNUSED.
17419
17420 * parse-scan.y: Include toplev.h.
17421 (yyerror): Mark parameter `msg' with ATTRIBUTE_UNUSED.
17422
17423 * parse.h: use `struct JCF', not plain `JCF'.
17424 (java_parser_context_save_global, java_expand_classes
17425 java_parser_context_restore_global, java_parse): Add prototypes.
17426
17427 * typeck.c (convert_ieee_real_to_integer): Remove unused variable
17428 `node'.
17429
17430 1999-02-24 Per Bothner <bothner@deneb.cygnus.com>
17431
17432 * check-init.c (check_init): COPYN takes word count, not bit count.
17433
17434 1999-02-26 Per Bothner <bothner@cygnus.com>
17435
17436 * typeck.c (convert_ieee_real_to_integer): Use save_expr instead of
17437 explicit build_decl. (Avoids crash in reload when optimizing.)
17438
17439 1999-02-25 Per Bothner <bothner@cygnus.com>
17440
17441 * decl.c (complete_start_java_method): Handle synchronized method
17442 even when compiling from bytecode.
17443
17444 1999-02-26 Tom Tromey <tromey@cygnus.com>
17445
17446 * gjavah.c (add_class_decl): Only generate `#include' if outer
17447 class is not the name of the class we are processing. Correctly
17448 append `.h' in #include.
17449 (process_file): Clean up newlines around generated `#include's.
17450 (decode_signature_piece): Correctly handle inner classes.
17451 (struct include): New structure.
17452 (all_includes): New global.
17453 (print_include): New function.
17454 (add_class_decl): Use it.
17455 (process_file): Likewise.
17456 (add_class_decl): Generate include for java-array.h if array
17457 seen.
17458 (process_file): Don't generate java-array.h include.
17459
17460 * gjavah.c (add_namelet): Check for standard package names here.
17461 (add_class_decl): Don't check for standard package names here.
17462
17463 1999-02-25 Tom Tromey <tromey@cygnus.com>
17464
17465 * parse.y (read_import_dir): Use `|=', not `+=', to set `found'.
17466 When reading a zip file, only use strncmp if both strings are
17467 bigger than the buffer length. Initialize `k' when looping
17468 through zip file.
17469
17470 1999-02-24 Tom Tromey <tromey@cygnus.com>
17471
17472 * gjavah.c (struct namelet): New structure.
17473 (add_namelet): New function.
17474 (print_namelet): New function.
17475 (print_class_decls): Use add_namelet and print_namelet to generate
17476 namespaces and not classes.
17477 (method_printed): New global.
17478 (HANDLE_END_METHOD): Examine method_printed.
17479 (print_method_info): Set method_printed when required. Print
17480 error if function to be ignored is marked virtual. Handle $finit$
17481 method.
17482 (METHOD_IS_FINAL): New macro.
17483 (print_field_info): Use it.
17484 (HANDLE_METHOD): Clear method_printed.
17485 (method_pass): New global.
17486 (HANDLE_END_FIELD): Call add_class_decl on the first pass.
17487 (process_file): Do two passes over both fields and methods.
17488 (HANDLE_METHOD): Examine method_pass.
17489 (root): New global.
17490 (add_class_decl): New function.
17491 (print_class_decls): Don't scan over entire constant pool.
17492
17493 1999-02-23 Tom Tromey <tromey@cygnus.com>
17494
17495 * jvspec.c (lang_specific_driver): Recognize -fsyntax-only and
17496 disable linking in that case.
17497
17498 1999-02-20 Tom Tromey <tromey@cygnus.com>
17499
17500 * jcf.h (UTF8_GET): Mask first byte of 3-byte encoding with 0x0f,
17501 not 0x1f.
17502
17503 1999-02-21 Per Bothner <bothner@cygnus.com>
17504
17505 * decl.c (build_result_decl), java-tree.h: New method.
17506 (complete_start_java_method): Handle synchronized methods.
17507 Don't build DECL_RESULT here. (Ordering dependency problem.)
17508 (start_java_method): Call build_result_decl here instead ...
17509 * parse.y (java_complete_expand_method): ... and here.
17510 (expand_start_java_method): Don't call complete_start_java_method here.
17511 (java_complete_expand_method): Call it here instead.
17512 * parse.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Moved to ..
17513 * java-tree.h: ... here.
17514
17515 * expr.c (force_evaluation_order): Fix typo, don't handle ARRAY_REF.
17516 * parse.y (java_complete_lhs): Don't call force_evaluation_order
17517 for ARRAY_REF - it doesn't work when array bounds are checked.
17518 (patch_array_ref): Handle it here instead.
17519
17520 * jcf-write.c (generate_classfile): Emit "Exceptions" attribute.
17521
17522 1999-02-19 Per Bothner <bothner@cygnus.com>
17523
17524 Force left-to-right evaluation of binary operations etc.
17525 * expr.c (force_evaluation_order), java-tree.h: New function.
17526 * parse.y (java_complete_lhs): Pass binary operations, procedure
17527 calls, and ARRAY_REFs to force_evaluation_order.
17528 (various): Set TREE_SIDE_EFFECTS more carefully.
17529
17530 Tolerate random (non-UTF8) encoding in comments without complaining.
17531 * lex.c (java_read_char): Return 0xFFFE if bad UTF8 encoding.
17532 (java_is_eol): Handle '\r' followed by '\n' instead of vice versa.
17533
17534 * parse.y (resolve_qualified_expression_name): Handle error_mark.
17535 (java_complete_node case EXPR_WITH_FILE_LOCATION): Likewise.
17536
17537 * parse.y (java_complete_lhs): Ignore an empty statement in a
17538 COMPOUND_EXPR. Don't complain about empty statement after return.
17539
17540 1999-02-19 Per Bothner <bothner@cygnus.com>
17541
17542 * parse.y (obtain_incomplete_type): Don't wrap unknown types
17543 in TREE_LIST - just chain the POINTER_TYPEs together.
17544 (resolve_class): If type already resolved, return decl.
17545 After resolving, update TREE_TYPE(class_type), and name (if array).
17546 * parse.h (do_resolve_class), parse.y: Make non-static.
17547 * class.c (maybe_layout_super_class): Take this_class argument.
17548 Do do_resolve_class if necessary.
17549 (layout_class, layout_class_methods): Adjust calls appropriately.
17550 * parse.h (JDEP_TO_RESOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
17551 JDEP_RESOLVED_P): Redefined for new TREE_LIST-less convention.
17552 * typeck.c (build_java_array_type): Don't call layout_class.
17553
17554 1999-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
17555
17556 * parse.y (check_pkg_class_access): Allow private class access
17557 within the same package.
17558 (strip_out_static_field_access_decl): New function.
17559 (patch_unaryop): Call strip_out_static_field_access_decl on ++/--
17560 operator argument before testing its nature.
17561
17562 1999-02-03 Per Bothner <bothner@cygnus.com>
17563
17564 * java-tree.def (FINALLY_EXPR): Removed. (Now uses TRY_FINALLY_EXPR.)
17565 (TRY_EXPR): Simplify - it no longer has a finally clause.
17566 * check-init.c (check_init): Handle TRY_FINALLY_EXPR.
17567 Simpler handling of TRY_EXPR, which no longer has a finally clause.
17568 * expr.c (java_lang_expand_expr): Likewise.
17569 * java-tree.h (CATCH_EXPR_GET_EXPR): Removed - no longer needed.
17570 * parse.h (java_get_catch_block), parse.y: Removed - no longer needed.
17571 * parse.y (java_complete_lhs): Add support for TRY_FIANLLY_EXPR.
17572 (build_try_statement): Remove finally parameter and handling.
17573 (build_try_finally_statement): New function.
17574 (patch_try_statement): No longer need to support finally clause.
17575 (try_statement): Update grammar action rules.
17576 * jcf-write.c (generate_bytecode_insns): Handle TRY_FINALLY_EXPR.
17577 Simpler handling of TRY_EXPR, which no longer has a finally clause.
17578
17579 1998-11-26 Andrew Haley <aph@viagra.cygnus.co.uk>
17580
17581 * jcf-parse.c (get_constant): Add braces around computation of 'd'
17582 when REAL_ARITHMETIC is not defined. [Oct 26 fix got overwritten -PB]
17583
17584 1999-02-17 Andrew Haley <aph@cygnus.com>
17585
17586 * class.c (build_utf8_ref): Back out broken patch which was
17587 intended to to output signatures using '.' as a separator.
17588
17589 * class.c (make_class_data): Output signatures using '.' as a
17590 separator, rather than '/'.
17591 (mangled_classname): Likewise.
17592 (make_field_value): Likewise.
17593 (make_method_value): Likewise.
17594 * constants.c (alloc_class_constant): Likewise.
17595 * expr.c (build_invokeinterface): Likewise.
17596
17597 1999-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
17598
17599 * parse.y (valid_builtin_assignconv_identity_widening_p): Got rid
17600 of an ancient workaround.
17601
17602 1999-02-10 Jeffrey A Law (law@cygnus.com)
17603
17604 * jvspec.c (xmalloc): Kill the prototype. It does not belong
17605 here anymore.
17606
17607 1999-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
17608
17609 * lex.c (yylex): Encode \0 as UTF8.
17610
17611 1999-02-10 Tom Tromey <tromey@cygnus.com>
17612
17613 * jvspec.c (lang_specific_driver): Use libgcj, not libjava.
17614 * Makefile.in (jcf-path.o): Define LIBGCJ_ZIP_FILE.
17615 (libgcj_zip): Renamed.
17616 * jcf-path.c (add_entry): Use LIBGCJ_ZIP_FILE, not
17617 LIBJAVA_ZIP_FILE.
17618 (jcf_path_init): Use LIBGCJ_ZIP_FILE.
17619
17620 * jvspec.c (THREAD_NAME): Renamed -lqthreads to -lgcjcoop.
17621 (GC_NAME): Renamed -lgc to -lgcjgc.
17622
17623 1999-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
17624
17625 * lex.c (java_lang_cloneable): Initialize.
17626 * parse.y (java_lang_cloneable): New static variable.
17627 (qualify_ambiguous_name): Take CONVERT_EXPR into account when
17628 doing one more qualification round.
17629 (valid_ref_assignconv_cast_p): Reject null source or
17630 destination. Allow an array to be cast into java.lang.Cloneable.
17631 (patch_cast): Swapped two first arguments to first call to
17632 valid_ref_assignconv_cast_p.
17633
17634 1999-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
17635
17636 * parse.h: DECL_P renamed JDECL_P.
17637 * parse.y: DECL_P replaced by JDECL_P.
17638 (build_array_from_name): Always use pointer's type.
17639 (patch_bc_statement): Extra code to search continue target in a
17640 for loop. Fixed comments. Continue target is current loop when
17641 unlabeled.
17642
17643 1999-02-05 Andrew Haley <aph@cygnus.com>
17644
17645 * class.c (make_class_data): The superclass of an interface should
17646 be null, not class Object.
17647
17648 * lex.c (java_lex): Sign extend hex literals.
17649
17650 1999-02-04 Andrew Haley <aph@cygnus.com>
17651
17652 * class.c (build_utf8_ref): Output signatures using '.' as a
17653 separator, rather than '/'.
17654 (make_class_data): Likewise.
17655
17656 1999-02-03 Marc Espie <Marc.Espie@liafa.jussieu.fr>
17657
17658 * Make-lang.in ($(GCJ)(exeext)): Remove choose-temp.o, pexecute.o and
17659 mkstemp.o. Get them from libiberty now.
17660
17661 1999-02-02 Jeffrey A Law (law@cygnus.com)
17662
17663 * jcf-io.c: Do not include sys/stat.h or sys/wait.h
17664
17665 1999-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17666
17667 * jvspec.c (xmalloc): Fix the prototype to match the one obtained
17668 from libiberty.h
17669
17670 1999-02-02 Per Bothner <bothner@cygnus.com>
17671
17672 Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'.
17673 * jcf-write.c (generate_bytecode_return): New function.
17674 (generate_bytecode_insns): Use it, for RETURN_EXPR.
17675
17676 * jcf-write.c (generate_bytecode_insns): For REAL_CST that is 0 or 1,
17677 generate special [fd]const_[01] instructions.
17678
17679 * jcf-parse.c (yyparse): Don't emit_register_classes if -fsyntax-only.
17680
17681 * verify.c (verify_jvm_instructions): Do INVALIDATE_PC after
17682 handling OPCODE_lookupswitch or OPCODE_tableswitch.
17683
17684 1999-02-01 Per Bothner <bothner@cygnus.com>
17685
17686 * parse.y (patch_method_invocation): Handle calling static methods,
17687 even in the form EXPR.METHOD(ARGS), not just TYPE.METHOD(ARGS).
17688
17689 * parse.y (java_complete_lhs): Don't complain about unreachable
17690 exit condition in a do-while statement.
17691
17692 1999-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
17693
17694 * lex.c (java_read_char): Fixed utf8 decoding.
17695 (java_unicode_2_utf8): Fixed utf8 encoding in the 0x800-0xffff
17696 range.
17697 * parse.y (valid_builtin_assignconv_identity_widening_p): Fixed
17698 comments. Local variable `all_primitive' is gone. Broadened
17699 acceptance of `0' to floating point targets. `long' can now be
17700 widened to `double' or `float'.
17701 (valid_method_invocation_conversion_p): Added leading
17702 comment. Fixed tabulation.
17703 (build_string_concatenation): Optimize out left or right empty
17704 string constants.
17705
17706 1999-01-28 Per Bothner <bothner@cygnus.com>
17707
17708 * jcf-write.c (localvar_alloc): Only emit entry for
17709 LocalVariableTable if debug_info_level > DINFO_LEVEL_TERSE.
17710 (generate_bytecode_insns): Only call put_linenumber if
17711 debug_info_level > DINFO_LEVEL_NONE.
17712 * jvspec.c (lang_specific_driver): If no -O* or -g* option
17713 is specified, add -g1 (for compatibility wih javac).
17714
17715 1999-01-28 Hans-Peter Nilsson <hp@axis.se>
17716
17717 * java/Makefile.in: Add missing dependencies for jcf-dump.o,
17718 gjavah.o, check-init.o, jv-scan.o
17719
17720 1999-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17721
17722 * Makefile.in (gjavah.o): Depend on $(CONFIG_H) and system.h.
17723
17724 * gjavah.c: Include config.h and system.h.
17725
17726 * javaop.h (inline): Don't define, its handled by system.h.
17727 (WORD_TO_FLOAT, WORDS_TO_LONG, WORDS_TO_DOUBLE): Change these
17728 from `inline' to `static inline'.
17729
17730 * jcf.h (inline): Don't define, its handled by system.h.
17731
17732 * lex.c (inline): Likewise.
17733
17734 1999-01-31 Zack Weinberg <zack@rabi.columbia.edu>
17735
17736 * lang-specs.h: Map -Qn to -fno-ident.
17737
17738 1999-01-29 Richard Henderson <rth@cygnus.com>
17739
17740 * check-init.c (check_init): Fix CLEANUP_POINT_EXPR typo.
17741
17742 1999-01-29 Tom Tromey <tromey@cygnus.com>
17743
17744 * parse.h (BUILD_APPEND): If ARG is a non-String object reference,
17745 then cast it to Object before calling `append' method.
17746
17747 1999-01-28 Per Bothner <bothner@cygnus.com>
17748
17749 * check-init.c (check_bool2_init, check_bool_init, check_init):
17750 Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
17751 * jcf-write.c (generate_bytecode_insns): Likewise.
17752
17753 1999-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
17754
17755 * jcf-parse.c (jcf_parse): Don't parse the same class file twice.
17756 * parse.y (patch_cast): Allow a boolean to be cast into a
17757 boolean.
17758
17759 1999-01-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
17760
17761 * parse.y: (class_declaration:): Fixed indentation.
17762 (class_member_declaration:): Extra `;' after field declaration now
17763 accepted.
17764 (interface_declaration:): Removed debug messages in error reports.
17765 (patch_binop): Nodes created and returned inherit the orignal
17766 node's COMPOUND_ASSIGN_P flag value.
17767 (patch_cast): Fix cast from char to floating point.
17768
17769 1999-01-25 Andrew Haley <aph@cygnus.com>
17770
17771 * except.c, java-except.h (expand_resume_after_catch): new
17772 function.
17773 * expr.c (java_lang_expand_expr): call expand_resume_after_catch
17774 to branch back to main flow of control after a catch block.
17775
17776 1999-01-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17777
17778 * Makefile.in (parse.o): Depend on $(CONFIG_H) and
17779 $(srcdir)/../system.h.
17780 (class.o): Depend on $(PARSE_H) and $(srcdir)/../output.h.
17781 (jcf-parse.o): Depend on $(srcdir)/../toplev.h.
17782 (jcf-write.o): Likewise.
17783 (jv-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17784 (mangle.o): Depend on $(srcdir)/../toplev.h.
17785 (parse-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17786 (zextract.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
17787
17788 * class.c: Include output.h and parse.h.
17789 (mangled_classname): Add the `const' keyword to a char*.
17790 (find_named_method): Hide unused function definition.
17791 (build_utf8_ref): Change type of variable `c' to unsigned char.
17792 Use ISALPHA/ISDIGIT instead of isalpha/isdigit.
17793 (build_class_ref): Add the `const' keyword to a char*.
17794 (layout_class_method): Remove unused variable `buf'.
17795
17796 * decl.c (find_local_variable): Remove unused variable `rtl'.
17797 (pushdecl): Likewise for variables `different_binding_level' and
17798 `oldglobal'.
17799 (pushlevel): Mark parameter `unused' with ATTRIBUTE_UNUSED.
17800 (maybe_build_cleanup): Likewise for parameter `decl'.
17801
17802 * except.c (expand_start_java_handler): Mark parameter `range'
17803 with ATTRIBUTE_UNUSED.
17804
17805 * expr.c: Include except.h.
17806 (pop_type): Remove unused variable `i'.
17807 (pop_value): Likewise for variables `n_words' and `i'.
17808 (expand_java_arrayload): Likewise for variable `convert'.
17809 (java_lang_expand_expr): Likewise for variables `op0', `type',
17810 `mode', `unsignedp', `node' and `elements'.
17811 (expand_byte_code): Likewise for variables `prev_eh_ranges' and
17812 `eh_ranges'.
17813 (process_jvm_instruction): Add a `const' qualifier to a char*.
17814
17815 * gjavah.c (output_directory): Add the `const' keyword to a char*.
17816 (temp_directory): Likewise.
17817 (print_c_decl): Likewise.
17818 (print_method_info): Likewise.
17819 (decode_signature_piece): Likewise.
17820 (print_mangled_classname): Likewise.
17821
17822 * java-except.h: Provide prototypes for maybe_start_try,
17823 maybe_end_try and add_handler.
17824
17825 * java-tree.h (mangled_classname): Add the `const' keyword to a char*.
17826 (parse_error_context): Likewise. Also add ATTRIBUTE_PRINTF_2.
17827 (pushdecl_top_level, alloc_class_constant, unicode_mangling_length,
17828 init_expr_processing, push_super_field, init_class_processing,
17829 can_widen_reference_to, class_depth, verify_jvm_instructions,
17830 maybe_pushlevels, maybe_poplevels, process_jvm_instruction,
17831 set_local_type, merge_type_state, push_type, load_type_state,
17832 add_interface, find_in_current_zip, append_gpp_mangled_classtype,
17833 emit_unicode_mangled_name): Add prototypes.
17834
17835 * jcf-dump.c (print_constant): Add the `const' keyword to a char*.
17836 (print_signature_type): Use ISDIGIT, not isdigit.
17837 (print_signature): Remove unused variable `j'.
17838
17839 * jcf-io.c (jcf_filbuf_from_stdio): Cast the result of `fread' to
17840 int when comparing against one.
17841
17842 * jcf-parse.c: Include toplev.h.
17843
17844 * jcf-write.c: Likewise. Don't include <string.h> or <sys/stat.h>.
17845 (localvar_free): Remove unused variable `i'.
17846 (generate_bytecode_conditional): Likewise for variable `kind'.
17847
17848 * jv-scan.c: Include config.h and system.h. Remove redundant
17849 OS header and gansidecl.h includes.
17850 (warning): Add the `const' keyword to a char*. Also add
17851 ATTRIBUTE_PRINTF_1 to the prototype. Check ANSI_PROTOTYPES, not
17852 __STDC__, when determining whether to use ANSI-isms.
17853 (fatal): Likewise. Also add ATTRIBUTE_UNUSED.
17854 (xmalloc): Don't redundantly prototype here.
17855 (main): Remove unused parameter `envp'. Also fix the arguments
17856 passed to function `fatal' to match the format specifier.
17857
17858 * lang.c (java_tree_code_name): Add the `const' keyword to a char*.
17859
17860 * mangle.c: Include toplev.h.
17861 (emit_unicode_mangled_name): Declare parameter `len'.
17862
17863 * parse.y (parse_warning_context): Add the `const' keyword to a
17864 char*. Also add ATTRIBUTE_PRINTF_2 to the prototype. Check
17865 `ANSI_PROTOTYPES' not `__STDC__' for whether to use ANSI-isms.
17866 (issue_warning_error_from_context): Add the `const' keyword to
17867 a char*.
17868 (parse_error_context): Likewise. Also check `ANSI_PROTOTYPES'
17869 not `__STDC__' for whether to use ANSI-isms.
17870
17871 * typeck.c (incomplete_type_error): Mark parameters `value' and
17872 `type' with ATTRIBUTE_UNUSED.
17873 (parse_signature_type): Use ISDIGIT, not isdigit.
17874
17875 * verify.c (check_pending_block): Add the `const' keyword to a char*.
17876 (verify_jvm_instructions): Likewise. Remove unused variables
17877 `field_name' and `default_val'.
17878
17879 * zextract.c: Include config.h and system.h. Remove redundant
17880 OS header includes.
17881
17882 * zipfile.h: Prototype `read_zip_archive'.
17883
17884 1999-01-21 Andrew Haley <aph@cygnus.com>
17885
17886 * typeck.c (convert): Allow conversions to void type: some
17887 optimizations in gcc do this.
17888
17889 1999-01-21 Andrew Haley <aph@cygnus.com>
17890
17891 * typeck.c (convert_ieee_real_to_integer): New function.
17892 (convert): When not using fast-math and using hardware fp, convert
17893 an IEEE NaN to zero.
17894
17895 1999-01-18 Andrew Haley <aph@cygnus.com>
17896
17897 * parse.y (patch_binop): Do a type conversion from signed to
17898 unsigned and then back to signed when a ">>>" is found.
17899
17900 1999-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
17901
17902 * java-tree.h: (check_for_initialization): Added prototype.
17903 * lex.c (java_parse_doc_section): `\n' breaks the `*/' string.
17904 * parse.y (do_resolve_class): Removed unused locals.
17905 (read_import_dir): Likewise.
17906 (resolve_qualified_expression_name): Array creation
17907 expressions are valid primary expressions.
17908 (qualify_ambiguous_name): Likewise.
17909 (patch_synchronized_statement): Removed unused local.
17910
17911 1999-01-17 Jeffrey A Law (law@cygnus.com)
17912
17913 * Makefile.in (zextract.o): Add dependencies.
17914
17915 * Makefile.in: Do not put ^Ls at the start of a line.
17916
17917 1999-01-15 Per Bothner <bothner@cygnus.com>
17918
17919 * expr.c (process_jvm_instruction): Coerce to correct Throwable
17920 sub-type the result of the call that gets the exception value.
17921
17922 * parse.y (java_complete_expand_methods): If flags_syntax_only,
17923 don't call finish_class.
17924
17925 * parse.y (java_check_regular_methods): If METHOD_PRIVATE,
17926 clear found before continuing.
17927
17928 * verify.c (verify_jvm_instructions): On an array load, allow
17929 and handle top of stack to be TYPE_NULL.
17930
17931 * gjavah.c (generate_access): Translate Java package private or
17932 protected access to C++ public, but with a comment.
17933
17934 1999-01-13 Andrew Haley <aph@cygnus.com>
17935
17936 * expr.c (generate_name): Name prefix changed to avoid clashes
17937 with assembler temp labels.
17938
17939 * parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on
17940 MODIFY_EXPR. Without this, code for the assignment may not be
17941 generated at all and the synchronized statement will read an
17942 uninitialized variable.
17943
17944 1999-01-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
17945
17946 * class.c (maybe_layout_super_class): Fixed returned value.
17947 * lex.c: Added 1999 to the copyright.
17948 (java_init_lex): Initialize java_lang_imported.
17949 * lex.h: Added 1999 to the copyright.
17950 * parse.h: Added 1999 to the copyright.
17951 (REGISTER_IMPORT): Fixed typo in trailing macro.
17952 (CURRENT_OSB): New macro.
17953 (struct parser_ctxt): New fields osb_depth, osb_limit.
17954 * parse.y (java_lang_id): New global variable.
17955 (type_import_on_demand_declaration): Don't import java.lang.* twice.
17956 (array_creation_expression:): Use CURRENT_OSB.
17957 (dims:): Uses a stack to keep track of array dimensions.
17958 (cast_expression:): Use CURRENT_OSB.
17959 (find_expr_with_wfl): Return NULL if node found doesn't meet the
17960 conditions.
17961 (register_fields): Fixed typos in comment.
17962 (check_method_redefinition): Fixed comment indentation.
17963 (java_check_regular_methods): Set saved found wfl to NULL after
17964 having reinstalled it in the previously found DECL_NAME.
17965
17966 1999-01-10 Richard Henderson <rth@cygnus.com>
17967
17968 * gjavah.c (java_float_finite): Use a union to do type punning.
17969 (java_double_finite): Likewise.
17970
17971 1999-01-09 Per Bothner <bothner@cygnus.com>
17972
17973 * parse.y (build_new_array_init): Don't set EXPR_WFL_LINECOL
17974 on CONSTRUCTOR (since that trashes TREE_CST_RTL).
17975 (patch_new_array_init): Clear TREE_CONSTANT also if INDIRECT_REF.
17976 (register_fields): Set TREE_STATIC on NEW_ARRAY_INIT, not on
17977 CONSTRUCTOR (which causes expand_expr to call output_constant_def).
17978 * expr.c (java_lang_expand_expr): Check TREE_STATIC of NEW_ARRAY_INIT.
17979
17980 1999-01-08 Per Bothner <bothner@cygnus.com>
17981
17982 * check-init.c (check_init): If compiling to native, we don't
17983 see THROW_EXPR. Instead, look for a call to throw_node (_Jv_Throw).
17984
17985 1999-01-08 Tom Tromey <tromey@cygnus.com>
17986
17987 * parse-scan.y (variable_declarator_id): Set or increment
17988 bracket_count.
17989 (bracket_count): New global.
17990 (formal_parameter): Handle case where bracket pairs trail variable
17991 declarator id.
17992
17993 1999-01-07 Andrew Haley <aph@viagra.cygnus.co.uk>
17994
17995 * jcf-parse.c (yyparse): variable len changed from a char to an
17996 int to prevent overflow.
17997
17998 1999-01-06 Per Bothner <bothner@cygnus.com>
17999
18000 * java-tree.h: Declare read_class.
18001 * jcf-parse.c (read_class): New function.
18002 (load_class): Now just call read_class.
18003
18004 * java-tree.h (java_parse_abort_on_error): Only return if new errors.
18005 * jcf-parse.c (parse_source_file): Declare save_error_count,
18006 which is needed by java_parse_abort_on_error macro,
18007 * parse.y (java_layout_classes, java_expand_classes): Likewise.
18008
18009 * parse.y (register_fields): Set TREE_STATIC flag of NEW_ARRAY_INIT
18010 constructor, if initializing a static field.
18011 (patch_new_array_init): Set TREE_CONSTANT if it is.
18012 * expr.c (java_lang_expand_expr): For a static array constructor
18013 of primitive elements, allocate the array itself statically.
18014 Disabled until we can set the vtable field statically.
18015
18016 * check-init.c: New file. Checks for definite assignment.
18017 * Makefile.in (JAVA_OBJS): Add check-init.o.
18018 * parse.y (java_complete_expand_method): Call check_for_initialization.
18019 * parse.h (BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY): Moved to java-tree.h.
18020
18021 1999-01-06 Graham <grahams@rcp.co.uk>
18022
18023 * parse.y : include system.h instead of including
18024 standard headers directly with the exception of <dirent.h>.
18025
18026 1999-01-06 Per Bothner <bothner@cygnus.com>
18027
18028 * lex.h: Moved static function declarations to lex.c,
18029 to shut up some -Wall warnings.
18030 * lex.c: Static function declarations moved here.
18031 * jcf-dump.c: Small fixes to shut up -Wall warnings.
18032
18033 1999-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18034
18035 * Make-lang.in ($(GCJ).o): Depend on prefix.h.
18036
18037 1998-12-22 Per Bothner <bothner@cygnus.com>
18038
18039 * expr.c (process_jvm_instruction): Do load_type_state after JSR.
18040 * verify.c (verify_jvm_instructions): Fix off-by-one error.
18041
18042 * jcf-write.c (CHECK_PUT): Add (void) cast to avoid -Wall warnings.
18043 (localvar_alloc): Change return type to void,
18044 (emit_unop): Remove unused variable size.
18045
18046 * jcf-write.c (struct jcf_block): Add new union.
18047 (PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC): New macros.
18048 (call_cleanups): New functions.
18049 (struct jcf_partial): New fields num_finalizers and return_value_decl.
18050 (generate_bytecode_insns): Support CLEANUP_POINT_EXPR and
18051 WITH_CLEANUP_EXPR. Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
18052 * lang.c (lang_init): Call using_eh_for_cleanups.
18053 * parse.y (java_complete_lhs): For SYNCHRONIZED_EXPR, defer
18054 completing operands to patch_synchronized_statement.
18055 Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
18056 (patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
18057 WITH_CLEANUP_EXPR instead of TRY_EXPR.
18058
18059 1998-12-20 John F. Carr <jfc@mit.edu>
18060
18061 * Make-lang.in: Comment out control-Ls; they upset some makes.
18062
18063 1998-12-18 Tom Tromey <tromey@cygnus.com>
18064
18065 * parse.y (check_class_interface_creation): Use DIR_SEPARATOR
18066 consistently.
18067
18068 1998-12-17 Tom Tromey <tromey@cygnus.com>
18069
18070 * parse.y (DIR_SEPARATOR): New define.
18071 (check_class_interface_creation): Use it.
18072
18073 * parse-scan.y (report_main_declaration): Recognize
18074 `java.lang.String' in argument to main.
18075
18076 1998-12-16 Per Bothner <bothner@cygnus.com>
18077
18078 * parse.y (create_interface): Remove bogus test.
18079
18080 1998-12-16 Per Bothner <bothner@cygnus.com>
18081
18082 * jcf-parse.c (get_constant): Set TREE_TYPE for string constants.
18083 (HANDLE_CONSTANTVALUE): If flag_emit_class_files, call get_constant.
18084
18085 1998-12-16 Tom Tromey <tromey@cygnus.com>
18086
18087 * parse-scan.y (qualified_name): Use correct sprintf format.
18088
18089 1998-12-15 Tom Tromey <tromey@cygnus.com>
18090
18091 * gjavah.c (print_field_info): Changed how most negative number is
18092 printed.
18093
18094 1998-12-14 Per Bothner <bothner@cygnus.com>
18095
18096 * parse.y (fold_constant_for_init): New function.
18097 (resolve_expression_name): Don't replace static final
18098 constant-initialized fields by its value.
18099 (java_complete_lhs): New. Same as java_complete_tree, except does
18100 not replace static final constant-initialized fields by their values.
18101 (register_fields): If there is an initializer, set DECL_INITIAL and
18102 MODIFY_EXPR_FROM_INITIALIZATION_P.
18103 (java_complete_tree): For MODIFY_EXPR, use java_complete_lhs for lhs.
18104 Only call patch_initialized_static_field if
18105 MODIFY_EXPR_FROM_INITIALIZATION_P.
18106 (patch_initialized_static_field): If not valid constant, clear
18107 DECL_INITIAL.
18108
18109 * parse.y (lookup_field_wrapper): Fix thinko.
18110
18111 * parse.y (java_complete_tree): In EXPR_WITH_FILE_LOCATION,
18112 set and restore global lineno.
18113
18114 1998-12-14 Tom Tromey <tromey@cygnus.com>
18115
18116 * gjavah.c (print_field_info): If value to print is the smallest
18117 value of its size, then print as hex to avoid later warnings from
18118 C++ compiler.
18119
18120 1998-12-14 Tom Tromey <tromey@cygnus.com>
18121
18122 * gjavah.c (decompile_method): Decompile `return null'.
18123 (process_file): Generate `#pragma interface'.
18124 (method_declared): New global.
18125 (print_method_info): Set it.
18126 (HANDLE_CODE_ATTRIBUTE): Only print it method_declared set.
18127 (print_method_info): Handle abstract methods.
18128
18129 1998-12-13 Per Bothner <bothner@cygnus.com>
18130
18131 * parse.y (patch_method_invocation): If class_decl is null
18132 (e.g. an array type), use original type.
18133
18134 * parse.y (check_thrown_exceptions): Temporary hack to suppress
18135 errors about uncaught exception from clone (of array, specifically).
18136
18137 1998-12-13 Tom Tromey <tromey@cygnus.com>
18138
18139 * gjavah.c (decompile_method): Handle all types of `return'
18140 opcode. Decompile `return this' and `return'.
18141 (method_access): New global.
18142 (print_method_info): Set it.
18143 (decompile_method): Don't decompile a synchronized method.
18144
18145 1998-12-13 Tom Tromey <tromey@cygnus.com>
18146
18147 * jcf-reader.c (jcf_parse_one_method): Recognize
18148 HANDLE_END_METHOD.
18149 * gjavah.c (HANDLE_END_METHOD): New macro.
18150 (HANDLE_CODE_ATTRIBUTE): New macro.
18151 (decompile_method): New function.
18152 (print_method_info): Don't print `;\n' at end of function decl.
18153 Include java-opcodes.h.
18154 (decompiled): New global.
18155
18156 1998-12-12 Per Bothner <bothner@cygnus.com>
18157
18158 * class.c (build_class_ref): Handle PRIMTYPE.class if
18159 flag_emit_class_files.
18160 * expr.c (expand_java_field_op): Don't optimize java.lang.XXX.TYPE
18161 if flag_emit_class_files.
18162 * parse.y (java_complete_tree): Pre-liminary support for
18163 COMPONENT_REF - only to handle PRIMCLASS.TYPE.
18164
18165 * parse.y (patch_synchronized_statement): Don't call monitorexit
18166 unless block CAN_COMPLETE_NORMALLY. Propagate that flag properly.
18167
18168 * java-tree.h (DECL_LOCAL_STATIC_VALUE): Removed - no longer used.
18169
18170 * zipfile.h (opendir_in_zip): New declaration.
18171 * jcf-io.c (saw_java_source): Moved to jcf-parse.c.
18172 (opendir_in_zip): New function, using code from open_in_zip.
18173 (open_in_zip): Call opendir_in_zip.
18174 (find_class): Remove no-longer-used do_class_file parameter,
18175 but add source_ok parameter. Change logic so if we find a .java file,
18176 we don't look for .class in later classpath emtries.
18177 * jcf-parse.c (load_class): Pass saw_java_source to find_class.
18178 (jcf_figure_file_type): Only call open_in_zip if correct magic number.
18179 * gjavah.c: Update call to find_class.
18180 * jcf-dump.c: Likewise.
18181
18182 * jcf-write.c (put_linenumber): Handle duplicate line numbers.
18183 (generate_bytecode_insns): For EXPR_WITH_FILE_LOCATION, do
18184 nothing if body is empty_stmt_node.
18185 Various little fixes so SP gets correctly adjusted.
18186 For NEW_ARRAY_INIT, handle IGNORE_TARGET.
18187 For CALL_EXPR, test if static first.
18188 (generate_classfile): Ignore fields that are DECL_ARTIFICIAL,
18189 such as the ones we create for Object and Class.
18190 Set and restore current_function_decl.
18191 * parse.y: Check/set IS_AN_IMPORT_ON_DEMAND_P in read_import_dir.
18192 (note_possible_classname): New function.
18193 (read_import_entry): Removed. Merged with read_import_dir.
18194 (read_import_dir): Don't call find_class - that only gives us
18195 the first classpath entry having the needed package.
18196 Use the struct buffer data structure from buffer.h.
18197 (read_import_dir, find_in_imports_on_demand): The remembered
18198 class names now use '.' (not '/') as package separator.
18199
18200 * parse.y (java_complete_expand_methods): Call write_classfile
18201 here, and not in java_expand_classes (which only gets first class).
18202
18203 1998-12-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
18204
18205 * parse.y (<type_declaration>): Do maybe_generate_clinit last.
18206 (register_fields): If a static fields has an initializer, just
18207 chain it on ctxp->static_initialized, and handle later.
18208 (java_complete_expand_methods): Force <clinit> first.
18209 (resolve_expression_name, resolve_field_access): Just get DECL_INITIAL
18210 - it's already been completed.
18211 (patch_initialized_static_field): New function.
18212 (java_complete_field): Call it.
18213
18214 1998-12-12 Per Bothner <bothner@cygnus.com>
18215
18216 * expr.c (encode_newarray_type, build_new_array): New functions.
18217 * java-tree.h: Declare build_new_array.
18218 * jcf-write.c (patch_newarray): Use build_new_array.
18219
18220 * expr.c (java_lang_expand_exp): Support NEW_ARRAY_INIT.
18221 * jcf-write.c (generate_bytecode_insns): Support NEW_ARRAY_INIT.
18222
18223 * parse.y (patch_new_array_init): Re-organize.
18224 Now is passed the actual array (pointer) type of the value.
18225 Set the type of the CONSTRUCTOR to be an ARRAY_TYPE.
18226 (patch_array_constructor): Removed - merged into patch_new_array_init.
18227 (java_complete_tree): Update patch_new_array_init.
18228
18229 * jcf-write.c (find_constant_index): New function.
18230 (generate_bytecode_insns): Use find_constant_index.
18231 (generate_classfile): Use find_constant_index for ConstantValue.
18232
18233 1998-12-11 Tom Tromey <tromey@cygnus.com>
18234
18235 * expr.c (invoke_build_dtable): Renamed dtable -> vtable.
18236 * decl.c (init_decl_processing): Renamed dtable -> vtable.
18237 * class.c (make_class_data): Renamed dtable -> vtable, and
18238 dtable_method_count -> vtable_method_count.
18239
18240 1998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
18241
18242 * decl.c (long_zero_node, float_zero_node, double_zero_node): New
18243 global variables, initialized.
18244 * java-tree.h (long_zero_node, float_zero_node, double_zero_node):
18245 Declared new global variables.
18246 * lex.c (java_lex): Return long_zero_node, float_zero_node,
18247 double_zero_node, integer_zero_node upon direct matching.
18248 * parse.y (purify_type_name): Added function prototype.
18249 (duplicate_declaration_error_p): Consider new_type as potentially
18250 being a incomplete type. Use purify_type_name on type string.
18251 (method_header): saved_type: unused variable removed. Don't figure
18252 return type if method name is invalid.
18253 (java_complete_tree): Set CAN_COMPLETE_NORMALLY after `node' was
18254 processed by patch_unaryop.
18255 (patch_unaryop): Fixed typo in comment. Re-convert pre/post
18256 increment/decrement node into its original type after binary
18257 numeric promotion on its operands.
18258
18259 1998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
18260
18261 * parse.y (array_initializer:): Array init operand is NULL_TREE
18262 instead of a TREE_LIST of NULL_TREEs when parsing `{}'. `{,}' is
18263 now an error. Fixed indentation problems.
18264 (patch_string): Handle error_mark_node as an argument.
18265 (patch_new_array_init): Fixed indentation problems.
18266 (array_constructor_check_entry): Removed check on null wfl_value.
18267 Return an error if wfl_value's walk returns an error.
18268
18269 1998-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
18270
18271 * java-tree.def (NEW_ARRAY_INIT): New Java tree code.
18272 * lex.c (java_lex): Remember column position before advancing one
18273 token. Retain location information on OCB_TK.
18274 * lex.h (typedef struct java_lc): Added new field.
18275 * parse.h (GET_SKIP_TYPE): New macro.
18276 (QUAL_DECL_TYPE): Redefined using GET_SKIP_TYPE.
18277 * parse.y (build_new_array_init, patch_new_array_init,
18278 patch_array_constructor, maybe_build_array_element_wfl,
18279 array_constructor_check_entry): New function prototypes.
18280 (switch_block:): Tagged <node>.
18281 (OCB_TK): Tagged <operator>.
18282 (array_initializer:): Installed actions.
18283 (variable_initializer): Build location information on element if
18284 necessary.
18285 (switch_statement:): Fixed indentation typo.
18286 (switch_block:): Redefined default action.
18287 (java_complete_tree): Handle NEW_ARRAY_INIT in MODIFY_EXPR:.
18288 (patch_assignment): Removed duplicate code.
18289 (maybe_build_array_element_wfl, build_new_array_init,
18290 patch_new_array_init, patch_array_constructor,
18291 array_constructor_check_entry): New functions.
18292
18293 1998-12-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
18294
18295 * parse.y (array_initializer): Tagged <node>.
18296 (variable_initializer:): Use default rule.
18297 (array_initializer:): Defined actions.
18298 (variable_initializers:): Likewise.
18299 (resolve_qualified_expression_name): Use DECL_CONTEXT to build
18300 non-static field accesses.
18301 (patch_invoke): Fixed indentation typo.
18302 (java_complete_tree): Likewise.
18303 (build_labeled_block): Changed leading comment. Generate an error
18304 in case of duplicate loop labels.
18305 (patch_conditional_expr): Patch results of string concatenation
18306 operations.
18307
18308 1998-12-06 Per Bothner <bothner@cygnus.com>
18309
18310 * constants.c (find_methodref_index): When the class is an interface,
18311 generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
18312
18313 * decl.c (finit_identifier_node): Use "$finit$", rather than
18314 "<finit>" (which Sun's verifier rejects).
18315 * parse.y (maybe_generate_finit): Leave out meaningless final flag.
18316 (generate_field_initialization_code): Removed.
18317 (fix_constructors) Don't add call to $finit$ here (wrong order).
18318 (patch_method_invocation): Add $finit$ call here.
18319
18320 * java-tree.h (CALL_USING_SUPER): New macro.
18321 * parse.y (patch_invoke): Remove im local variable.
18322 (patch_method_invocation, patch_invoke): Don't pass super parameter.
18323 (patch_invoke): Use CALL_USING_SUPER instead of from_super parameter.
18324 (resolve_qualified_expression_name): Maybe set CALL_USING_SUPER.
18325
18326 * jcf-write.c (get_access_flags): Fix typo ACC_PUBLIC -> ACC_FINAL.
18327
18328 * parse.y (java_complete_tree): Don't complain about unreachable
18329 statement if it is empty_stmt_node.
18330
18331 * jcf-write.c (find_constant_wide): New function.
18332 (push_long_const): Use find_constant_wide.
18333
18334 * jcf-write.c (generate_bytecode_insn): Fix bug in switch handling.
18335 (generate_bytecode_insn): Use correct dup variant for MODIFY_EXPR.
18336 Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
18337 Emit invokeinterface when calling an interface method.
18338 Emit invokespecial also when calling super or private methods.
18339
18340 * jcf-write.c (generate_classfile): Emit ConstantValue attributes.
18341
18342 1998-12-06 Per Bothner <bothner@cygnus.com>
18343
18344 * jcf-dump.c (INVOKE): If invokeinterface, print number of args.
18345
18346 1998-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
18347
18348 * java-tree.h (java_layout_seen_class_methods): New function
18349 prototype.
18350 (LAYOUT_SEEN_CLASS_METHODS): Macro removed.
18351 * jcf-parse.c (parse_class_file): Call java_layout_seen_class_methods.
18352 * parse.h (PROMOTE_RECORD_IF_COMPLETE): New macro.
18353 * parse.y (method_declarator:): Defined action.
18354 (issue_warning_error_from_context): input_filename saved, set to
18355 the appropriate value and restored after java_error is called.
18356 (build_unresolved_array_type): Fixed comment.
18357 (register_fields): Use PROMOTE_RECORD_IF_COMPLETE.
18358 (method_header): Deal with return type the same way type are
18359 handled for fields and method's parameters and local variables
18360 types are handled.
18361 (check_method_redefinition): Removed extra CR.
18362 (declare_local_variables): Use PROMOTE_RECORD_IF_COMPLETE.
18363 (java_layout_seen_class_methods): New function.
18364 (java_layout_classes): Call java_layout_seen_class_methods.
18365
18366 1998-12-03 Per Bothner <bothner@cygnus.com>
18367
18368 * parse,y (patch_synchronized_statement): Set CAN_COMPLETE_NORMALLY.
18369
18370 1998-12-03 Per Bothner <bothner@cygnus.com>
18371
18372 * jcf-dump.c (main): Fix error message.
18373 * jcf-path.c (add_entry): Style fix.
18374
18375 1998-12-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
18376
18377 * class.c (layout_class_method): Call build_java_argument_signature
18378 on constructors too.
18379 * parse.y (check_method_redefinition): Use TYPE_ARGUMENT_SIGNATURE.
18380 (patch_method_invocation): Define a primary when resolving an
18381 expression name. Augmented comment on code checking illegal `this'
18382 usage. Loosened it test by accepting NEW_CLASS_EXPR.
18383
18384 1998-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
18385
18386 * class.c (layout_class_method): Don't report error on non-static
18387 overriding static if the method is private.
18388 * java-tree.h (finish_class): Prototype added.
18389 * lex.c (java_get_line_col): Handle col argument -2 value.
18390 * parse.h: All static method declarations moved to parse.y.
18391 * parse.y: Now contains all static method declarations previously
18392 found in parse.h.
18393 (find_expr_with_wfl, missing_return_error,
18394 unreachable_stmt_error): New functions.
18395 (java_get_real_method_name): Identify constructors bearing class
18396 names in source code compiled classes only.
18397 (java_complete_expand_methods): Call missing_return_error.
18398 (invocation_mode): Private methods invoked as static methods.
18399 (java_complete_tree): Call unreachable_stmt_error.
18400
18401 1998-12-01 Tom Tromey <tromey@cygnus.com>
18402
18403 * Makefile.in (+target): Removed.
18404 (+xmake_file): Likewise.
18405 (+tmake_file): Likewise.
18406 (.NOEXPORT): Removed duplicate.
18407
18408 1998-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18409
18410 * Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK).
18411
18412 * jv-scan.c: Fix xmalloc prototype. Provide an xmalloc definition.
18413
18414 * jvgenmain.c: Remove the xmalloc prototype, we get it from
18415 libiberty.h. Provide an xmalloc definition.
18416
18417 * jvspec.c: Remove the xmalloc prototype.
18418
18419 * parse-scan.y: Include config.h and system.h. Don't include
18420 OS headers or gansidecl.h. Don't prototype xmalloc/xstrdup.
18421 Provide an xstrdup definition.
18422
18423 1998-11-26 Alexandre Oliva <oliva@dcc.unicamp.br>
18424
18425 * jcf-path.c (add_entry): Recognize ".jar" too.
18426 * lang-specs.h: Likewise.
18427
18428 1998-11-26 Per Bothner <bothner@cygnus.com>
18429
18430 * jcf-write.c (generate_bytecode_insns): In Call_EXPR, handle
18431 soft_monitorenter_node, soft_monitorexit_node, throw_node.
18432
18433 * jcf-write.c (generate_bytecode_insns):
18434 Handle pre/post-increment/decrement of long.
18435
18436 * jcf-write.c (generate_bytecode_insns):
18437 Handle missing exception handler (finally for synchronized).
18438
18439 1998-11-25 Per Bothner <bothner@cygnus.com>
18440
18441 * java-tree.h (end_params_node): Declare global.
18442 * decl.c (end_params_node): New global.
18443 (init_decl_processing, start_java_method): Use end_params_node for
18444 end of list of parameter types. Follows correct gcc conventions.
18445 * expr.c (pop_argument_types, pop_arguments): Likewise.
18446 * lang.c (put_decl_node): Likewise.
18447 * typeck.c (various places): Likewise.
18448 * class.y (various places): Likewise.
18449 * parse.y (various places): Likewise.
18450
18451 * parse.y (java_complete_tree): Move CAN_COMPLETE_NORMALLY.
18452 (build_jump_to_finally): Add missing CAN_COMPLETE_NORMALLY.
18453
18454 * class.c: Add #include flags.h, remove no-longer needed declaration.
18455
18456 * class.c (layout_class_method): Remove commented-out code, re-format.
18457 Don't add vtable entry (or index) for private methods.
18458 * expr.c (expand_invoke): A private method is implicitly final.
18459 * class.c (make_class_data): If inlining or optimizing,
18460 skip private methods.
18461
18462 * class.c (finish_class): New function. Calls existing methods,
18463 but alls emits deferred inline functions.
18464 * jcf-parse.c (parse_class_file): Call finish_class.
18465 * parse.y (java_complete_expand_methods): Likewise.
18466
18467 * expr.c (build_java_binop): Explicit default, to silence -Wall.
18468
18469 * expr.c (CHECK_PC_IN_RANGE): Add void cast to kill warnings.
18470
18471 1998-11-25 Marc Espie <espie@quatramaran.ens.fr>
18472
18473 * jcf-write.c (generate_bytecode_conditional): Fix typo.
18474
18475 1998-11-24 Per Bothner <bothner@cygnus.com>
18476
18477 * (generate_classfile): Always write class access flag with
18478 ACC_SUPER set.
18479
18480 1998-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
18481
18482 * class.c (maybe_layout_super_class): New function.
18483 (layout_class): Reorganized. Loop on class methods dispatched into
18484 a new function. Call maybe_layout_super_class.
18485 (layout_class_methods, layout_class_method): New functions.
18486 * expr.c (expand_java_NEW): Call layout_class_methods on loaded
18487 class.
18488 (expand_invoke): Likewise.
18489 * java-tree.h (all_class_list): New global variable declared.
18490 (layout_class_methods, layout_class_method): New function
18491 prototypes.
18492 (LAYOUT_SEEN_CLASS_METHODS): New macro.
18493 * jcf-parse.c (all_class_list): New global variable.
18494 (load_class): Extended what class_or_name can be. Use parser
18495 context mechanism to save globals before calling jcf_parse.
18496 (jcf_parse_source): Don't parse twice if HAS_BEEN_ALREADY_PARSED_P
18497 is set on the file name.
18498 (jcf_parse): Layout class methods when Object is loaded, otherwise
18499 record class in all_class_list for delayed method layout.
18500 (parse_class_file): Use LAYOUT_SEEN_CLASS_METHODS.
18501 * lang.c (put_decl_node): Decode <init> into the decl context
18502 class name.
18503 * lex.c (java_allocate_new_line): Use xmalloc.
18504 * parse.h (INCOMPLETE_TYPE_P): Redefined to work with incomplete
18505 pointers, not TREE_LIST elements.
18506 (struct parser_ctxt): Fixed comment indentations, added comments
18507 and reordered some fields.
18508 (java_check_methods): Function prototype removed.
18509 * parse.y (java_push_parser_context): Use xmalloc.
18510 (java_parser_context_restore_global): Pop extra pushed ctxp only
18511 when there's nothing next.
18512 (maybe_create_class_interface_decl): Fixed comment, add new
18513 created class decl to all_class_list.
18514 (method_header): Use GET_REAL_TYPE on argument's types.
18515 (method_declarator): Use GET_REAL_TYPE, change type to the real
18516 type in TREE_LIST dependency node. Build argument list with the
18517 real type.
18518 (create_jdep_list): Use xmalloc. Removed allocation error message.
18519 (obtain_incomplete_type): Fixed leading comment. Broadened
18520 incoming argument meaning.
18521 (register_incomplete_type): Use xmalloc. Removed allocation error
18522 message.
18523 (safe_layout_class): Fixed leading comment.
18524 (jdep_resolve_class): Reversed if statement condition and switch
18525 if and else bodies.
18526 (resolve_and_layout): Fixed leading comment. Broadened incoming
18527 argument meaning.
18528 (complete_class_report_errors): New local variable name, for
18529 clarity. purify_type_name used for all error cases.
18530 (java_get_real_method_name): Stricter check on constructors.
18531 (java_check_regular_methods): Reverse methods list only if not
18532 already laid out. Layout artificial constructor.
18533 (java_check_methods): Deleted.
18534 (source_start_java_method): Obtain incomplete type for patchable
18535 method arguments.
18536 (java_layout_classes): Fixed leading comment. Use
18537 LAYOUT_SEEN_CLASS_METHODS, use a loop to check methods. Added else
18538 statement to layout operation, reuse LAYOUT_SEEN_CLASS_METHODS
18539 before returning. Fixed comments.
18540 (java_expand_classes): Check for errors up front.
18541 (patch_method_invocation): Class to search is resolved and laid
18542 out.
18543
18544 1998-11-24 Per Bothner <bothner@cygnus.com>
18545
18546 * expr.c (java_lang_expand_expr): Add missing emit_queue.
18547
18548 * javaop.h (int8): Removed - not used.
18549 (jbyte): Redefine portably with correct signedness.
18550
18551 * jcf-write.c (generate_bytecode_insns): Don't free sw_state.cases.
18552
18553 * jcf-write.c (generate_bytecode_insns): Fix typo
18554 OPCODE_getstatic to OPCODE_getfield.
18555
18556 * java-tree.def (CASE_EXPR, DEFAULT_EXPR): Kind is 'x', not '1'.
18557 * parse.y (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR,
18558 set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).
18559
18560 1998-11-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
18561
18562 * jcf-parse.c (jcf_parse_source): Function returned type is
18563 void. Added prototype.
18564 (jcf_parse): Function returned type is void.
18565 (yyparse): Remove call to fclose on the last parsed file.
18566
18567 * java-tree.h (jcf_parse): Changed jcf_parse prototype.
18568
18569 1998-11-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
18570
18571 * class.c (unmangle_classname): Set QUALIFIED_P when appropriate.
18572 (layout_class): Cope with methods featuring WFL in decl names.
18573 * decl.c (unqualified_object_id_node): New global variable,
18574 initialized.
18575 (build_decl_no_layout): Removed.
18576 * expr.c (build_primtype_type_ref): Handle Double.
18577 (java_lang_expand_expr): Fixed indentations.
18578 * java-tree.h (CLASS_METHOD_CHECKED_P): Flag deleted.
18579 (flag_wall, flag_redundant, flag_not_overriding,
18580 flag_static_local_jdk1_1, unqualified_object_id_node): Global
18581 variable declarations.
18582 (build_decl_no_layout): Removed prototype.
18583 (java_get_real_method_name): Added prototype.
18584 (IS_UNCHECKED_EXPRESSION_P): Renamed IS_UNCHECKED_EXCEPTION_P.
18585 (java_parse_abort_on_error): Macro now just returns.
18586 * jcf-parse.c (jcf_parse_source): Check fclose returned
18587 value. Call emit_register_classes if java_report_errors returns
18588 zero.
18589 * lanc.c (flag_wall, flag_redundant, flag_not_overriding,
18590 flag_static_local_jdk1_1): New integer flags.
18591 (lang_decode_option): New flags set here.
18592 * parse.h (GET_REAL_TYPE, GET_METHOD_NAME): New macros.
18593 (OBSOLETE_MODIFIER_WARNING): Issue error message conditionally to
18594 the flag_redundant variable.
18595 (SET_TYPE_FOR_RESOLUTION): Consider Object being java.lang.Object
18596 when parsing java.lang.Object class.
18597 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Added terminal
18598 NULL_TREE to build.
18599 (resolve_qualified_expression_name): Fixed indentation.
18600 (patch_array_ref): Changed prototype.
18601 (not_initialized_as_it_should_p): Prototype removed.
18602 (java_report_errors): Added function prototype.
18603 * parse.y (formal_parameter:): Changed error message for not yet
18604 supported final parameters.
18605 (class_type_list:): Set both PURPOSE and VALUE of created
18606 TREE_LIST to be class_type.
18607 (primary_no_new_array:): Handle class literals on primitive types.
18608 (parse_warning_context): Reinstalled correct force_error and
18609 do_warning flags setups.
18610 (java_report_errors): Changed prototype. Return java_error_count
18611 value.
18612 (variable_redefinition_error): Consider treating variable type as
18613 a fake pointer.
18614 (create_interface): Warn about redundant abstract modifier if
18615 flag_redundant is set. Changed error message.
18616 (lookup_field_wrapper): Save/restore globals before/after looking
18617 up field.
18618 (duplicate_declaration_error_p): Consider treating declaration
18619 type as a fake pointer.
18620 (register_fields): Extract real type from dependency node. Check
18621 for duplicate field declaration after type adjustment. Use
18622 DECL_INITIAL to store static final initialized values.
18623 (method_header): Extract real function type from dependency node.
18624 (check_abstract_method_header): Use GET_METHOD_NAME.
18625 (obtain_incomplete_type): Layout fake pointer type.
18626 (safe_layout_class): Don't try to check for methods before layout.
18627 (java_complete_class): Don't check for correct throws clause
18628 elements inheritance here.
18629 (resolve_and_layout): Broadened name parameter meaning.
18630 (reset_method_name): Use GET_METHOD_NAME.
18631 (java_get_real_method_name): New function.
18632 (java_check_regular_methods): Don't check methods in
18633 java.lang.Object. Verify lineage of throws clause elements. Use
18634 flag_no_overriding in warning report.
18635 (check_throws_clauses): Don't check if class was from
18636 bytecode. Use IS_UNCHECKED_EXCEPTION_P macro.
18637 (java_check_methods): Don't set CLASS_METHOD_CHECKED_P flag.
18638 (declare_local_variables): Use flag_static_local_jdk1_1 to report
18639 warning on unsupported final local variables. Use build_decl
18640 instead of build_decl_no_layout. Get real local variable type from
18641 dependency node.
18642 (source_start_java_method): Get real parameter type from
18643 dependency node. Call build_decl instead of build_decl_no_layout.
18644 (java_layout_classes): Reverse tree and layout type and class as
18645 required. Mark class as loaded when done.
18646 (resolve_field_access): Fixed indentation. Restricted condition
18647 leading to static field access code generation. Set field_type
18648 decl's TREE_TYPE if QUAL_DECL_TYPE not available.
18649 (resolve_qualified_expression_name): Initialize type_found to
18650 null. Handle static field resolved during qualification. Fixed
18651 layout on non primitive field decl types.
18652 (not_accessible_p): Fixed typo in comment.
18653 (patch_method_invocation): Resolve and layout class to search from
18654 type.
18655 (lookup_method_invoke): Keep integer constant 0 as is. Resolve and
18656 layout non primitive type, if necessary. Make method node only to
18657 report errors.
18658 (find_applicable_accessible_methods_list): Consider WFL'ed method
18659 decl names. Fixed indentation.
18660 (argument_types_convertible): Resolve and layout target type if
18661 necessary.
18662 (java_complete_tree): Fixed indentation problems. Rewrote
18663 CALL_EXPR thrown exceptions check. Re-installed further processing
18664 of the assignment in certain cases.
18665 (patch_assignment): Call maybe_build_primttype_type_ref to perform
18666 inlining on class literals.
18667 (valid_builtin_assignconv_identity_widening_p): Cope with constant
18668 0 literal.
18669 (valid_method_invocation_conversion_p): Likewise.
18670 (patch_string): Temporary disable forbidden use of `this' in
18671 explicit constructor invocations when doing string concatenation
18672 within their scope.
18673 (patch_unaryop): Added comment. Reinstalled code to disable
18674 further check on assignment operation with cast expression RHS.
18675 (patch_switch_statement): Fixed indentation.
18676 (build_try_statement): Call build_decl instead of
18677 build_decl_no_layout.
18678 (patch_synchronized_statement): Likewise.
18679 (patch_throw_statement): Use IS_UNCHECKED_EXCEPTION_P instead of
18680 IS_UNCHECKED_EXPRESSION_P.
18681 (check_thrown_exceptions_do): Changed leading comment. Resolve and
18682 layout argument exception type.
18683 (purge_unchecked_exceptions): Use IS_UNCHECKED_EXCEPTION_P instead
18684 of IS_UNCHECKED_EXPRESSION_P.
18685
18686 1998-11-18 Anthony Green <green@cygnus.com>
18687
18688 * jcf-parse.c (yyparse): Open class file in binary mode.
18689
18690 1998-11-15 Per Bothner <bothner@cygnus.com>
18691
18692 * jvgenmain.c: Need to #include "gansidecl.h" (to get PROTO).
18693
18694 * jcf-write.c (perform_relocations): Move check out one loop.
18695
18696 1998-11-15 Anthony Green <green@hoser.cygnus.com>
18697
18698 * Make-lang.in: Fix reference to srcdir.
18699 * jv-scan.c: Add missing xmalloc prototype.
18700 * jvgenmain.c: Ditto.
18701
18702 1998-11-15 Per Bothner <bothner@cygnus.com>
18703
18704 * decl.c (error_mark_node), java-tree.h: New global.
18705 * parse.y: Use empty_stmt_node instead of size_zero_node.
18706 (build_if_else_statement): If missing else, use empty_stmt_node.
18707
18708 * parse.y (not_initialized_as_it_should_p): Removed, with its callers.
18709 (java_complete_expand_method): Complain if return is missing.
18710 (java_check_regular_methods): Comment out incorrect error check.
18711 (not_accessible_p): Fix incorrect handling of protected methods.
18712 (patch_method_invocation): Pass correct context to not_accessible_p.
18713 (find_applicable_accessible_methods_list): Likewise.
18714 (qualify_ambiguous_name): If ARRAY_REF, it's an expression name.
18715 (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR, set
18716 TREE_TYPE (to void_type_node); otherwise expand_expr crashes.
18717 (patch_if_else_statement): Fix setting of CAN_COMPLETE_NORMALLY.
18718
18719 * jcf-write.c (CHECK_OP, CHECK_PUT): Add some error checking.
18720 (push_int_const): Remove reundant NOTE_PUSH.
18721 (generate_bytecode_insns - case STRING_CST): Do NOTE_PUSH.
18722 (- case SWITCH_EXPR): Fix code generation bug.
18723 (- case PREDECREMENT_EXPR etc): Remove redundant NOTE_PUSH.
18724 (generate_classfile): More robust for abstract methods.
18725
18726 1998-11-15 Anthony Green <green@cygnus.com>
18727
18728 * Makefile.in: jv-scan and jvgenmain all require libiberty.
18729 * Make-lang.in: Ditto.
18730
18731 * jv-scan.c: Remove xmalloc and xstrdup definitions.
18732 * jvgenmain: Ditto.
18733
18734 1998-11-15 Per Bothner <bothner@cygnus.com>
18735
18736 * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): New macro.
18737
18738 * jcf-io.c (find_class): Simpler/cleaner structure fixes a bug.
18739
18740 1998-11-14 Per Bothner <bothner@cygnus.com>
18741
18742 Allow uses of interface types to verify. This is not really
18743 type-safe, but it matches what Sun does, and is OK as long as
18744 there are appropriate run-time checks.
18745 * verify.c (merge_types): If merging two interface types,
18746 just set the result to java.lang.Object.
18747 * expr.c (pop_type): Any interface is matches by java.lang.Object.
18748
18749 1998-11-13 Tom Tromey <tromey@cygnus.com>
18750
18751 * gjavah.c (main): Handle --output-class-directory argument.
18752 * jvspec.c (lang_specific_driver): Translate `-d' into
18753 -foutput-class-dir.
18754 * jcf.h (jcf_write_base_directory): Declare.
18755 * lang.c (lang_decode_option): Recognize -foutput-class-dir.
18756 * lang-options.h: Mention -foutput-class-dir.
18757 * jcf-write.c (jcf_write_base_directory): New global.
18758 (make_class_file_name): Put generated .class file into `-d'
18759 directory, or into source directory if -d not given. Function now
18760 static.
18761 (write_classfile): Free class file name. Handle case where class
18762 file name is NULL.
18763 (DIR_SEPARATOR): New macro.
18764 Include <sys/stat.h>
18765
18766 * Makefile.in (prefix): New macro.
18767
18768 1998-11-12 Per Bothner <bothner@cygnus.com>
18769
18770 * parse.y (patch_invoke): Do less if flag_emit_class_files.
18771 * expr.c (build_known_method_ref): Don't check flag_emit_class_files
18772 here (done in patch_invoke instead).
18773 (case_identity): Moved here from parse.y.
18774
18775 * java-tree.h (CAN_COMPLETE_NORMALLY): New macro.
18776 * parse.y (java_complete_tree etc): Maybe set CAN_COMPLETE_NORMALLY.
18777 * parse.y (java_complete_tree): Re-order COMPOUND_EXPR in BLOCK
18778 so they can be efficiently scanned without recursion.
18779 Error it ! CAN_COMPLETE_NORMALLY first part of COMPOUND_EXPR.
18780 * expr.c (java_lang_expand_expr): Expand statements of COMPOUND_EXPR
18781 in BLOCK iteratively, rather than recursively.
18782
18783 * parse.y (do_unary_numeric_promotion): New function.
18784 (patch_unaryop, patch_binop, patch_array_ref): Use it.
18785
18786 * parse.y (patch_newarray): Various fixes.
18787
18788 Re-do handling of switch statements (for proper block scoping).
18789 * parse.y: Add just a single block for the enture switch block,
18790 but don't create any "case blocks".
18791 (group_of_labels): Rmeoved unneeded non-terminal.
18792 CASE_EXPR and DEFAULT_EXPR are added to current block.
18793 * expr.c (java_lang_expand_expr): Inline SWITCH_EXPR here.
18794 Now also need to handle CASE_EXPR and DEFAULT_EXPR.
18795 * java-tree.h (SWITCH_HAS_DEFAULT): New macro.
18796 * parse.y (wfl_operator, print_int_node): Make non-static.
18797 (java_complete_tree): CASE_EXPR and DEFAULT_EXPR are now processed
18798 as part of recursive scan of block.
18799 (java_expand_switch ): Removed - inlined into java_lang_expand_expr.
18800 (patch_switch_statement): Most tests move dinto java_complete_tree.
18801
18802 * parse.y: Make various production be non-typed (void).
18803 * parse.y (parse_error): Merged into issue_warning_error_from_context.
18804 * parse.y (add_stmt_to_compound): Don't create/change extra node.
18805 (patch_method_invocation_stmt): Renamed to patch_method_invocation.
18806
18807 * jcf-write.c (struct jcf_handler): New type.
18808 (struct jcf_switch_state): New type.
18809 (SWITCH_ALIGN_RELOC, BLOCK_START_RELOC): New relocation kinds.
18810 (alloc_handler, emit_unop, emit_reloc): New functions.
18811 (adjust_typed_op): Add extra parameter ("max type" offset).
18812 (emit_switch_reloc, emit_case-reloc): New function.
18813 (generate_bytecode_conditional): Handle REAL_TYPE comparisons.
18814 (generate_bytecode_insns): Support REAL_CST, switch statements,
18815 exception handling, method calls, object/array creation, and more.
18816
18817 * class.c: Remove some unused variables.
18818 * constants.c (find_string_constant): New function.
18819 (count_constant_pool_bytes): Fix to correctly handle wide constants.
18820 * decl.c (complete_start_java_method): Don't _Jv_InitClass
18821 if flag_emit_class_files.
18822
18823 1998-11-12 Tom Tromey <tromey@cygnus.com>
18824
18825 * jcf-io.c (find_class): Added explanatory comment.
18826
18827 * jcf-path.c (add_entry): Look for `.zip' at end of filename. Add
18828 trailing slash to `.zip' entries.
18829
18830 * jvspec.c (lang_specific_driver): Correctly handle case where
18831 GC_NAME not defined.
18832
18833 1998-11-11 Tom Tromey <tromey@cygnus.com>
18834
18835 * jvspec.c (GC_NAME): New define.
18836 (lang_specific_driver): Use GC_NAME. Add GC_NAME to command line
18837 if required.
18838 * Make-lang.in (jvspec.o): Define WITH_GC_<name>.
18839
18840 1998-11-11 Per Bothner <bothner@cygnus.com>
18841
18842 * jcf-dump.c (TABLE_SWITCH): Fix typos.
18843
18844 1998-11-11 Tom Tromey <tromey@cygnus.com>
18845
18846 * jcf-dump.c (main): Correctly recognize `--'-style long options.
18847
18848 1998-11-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
18849
18850 * class.c (is_compiled_class): Call safe_layout_class for class
18851 compiled from source.
18852 * conver.h (convert_to_integer, convert_to_real,
18853 convert_to_pointer): Added prototypes.
18854 * decl.c (init_decl_processing): Non longer push the decls of
18855 `methodtable', `constants', `Class', `Field', `dispatchTable'
18856 `jexception' and `Method'.
18857 * expr.c (build_invokeinterface): New function.
18858 (expand_invoke): static variable CLASS_IDENT now in
18859 build_invokeinterface. Use build_invokeinterface.
18860 (expand_java_field_op): Moved code to inline
18861 java.lang.PRIMTYPE.TYPE into a function.
18862 (build_primtype_type_ref): New function.
18863 * java-tree.def (INSTANCEOF_EXPR): New tree code.
18864 * java-tree.h (CLASS_METHOD_CHECKED_P, METHOD_DEPRECATED,
18865 FIELD_DEPRECATED, CLASS_DEPRECATED): New flag macros.
18866 (DECL_CONSTRUCTOR_P): Fixed typo in comment.
18867 (DECL_LOCAL_STATIC_VALUE): New macro.
18868 (build_invokeinterface, build_primtype_type_ref): New function
18869 prototypes.
18870 (java_parse_abort_on_error): Macro rewritten.
18871 * jcf-parse.c (current_method): Add comment to declaration.
18872 (parse_zip_file_entries, process_zip_dir, void parse_source_file):
18873 Function prototypes fixed.
18874 (jcf_parse_source): push/pop parser context. save/restore global.
18875 (parse_source_file): Fixed leading comment. Now take a
18876 IDENTIFIER_NODE as an argument. Doesn't check methods, layout
18877 classes and pop the parser context anymore.
18878 (yyparse): Push parser context, save globals, parse the source
18879 file, restore globals and pop the parser context when processing a
18880 source file.
18881 * jcf.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG define.
18882 * lex.c (java_parse_doc_section): New function.
18883 (java_lex): Call java_parse_doc_section when appropriate. Build an
18884 operator around INSTANCEOF_TK.
18885 * lex.h (java_lineterminator, java_sprint_unicode,
18886 java_unicode_2_utf8, java_lex_error, java_store_unicode):
18887 Prototypes rewritten.
18888 (java_parse_escape_sequence, java_letter_or_digit_p,
18889 java_parse_doc_section, java_parse_end_comment, java_get_unicode,
18890 java_read_unicode, java_store_unicode, java_read_char,
18891 java_allocate_new_line, java_unget_unicode, java_sneak_unicode):
18892 Added function prototypes.
18893 * parse.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG
18894 define.
18895 (JNULLP_TYPE_P, CHECK_METHODS, CHECK_DEPRECATED, REGISTER_IMPORT):
18896 New macros
18897 (struct parser_ctxt): New fields: deprecated,
18898 current_parsed_class_un, gclass_list.
18899 (fix_method_argument_names, issue_warning_error_from_context,
18900 resolve_package, lookup_package_type): New function prototypes.
18901 (resolve_expression_name): Fixed function prototype.
18902 (find_applicable_accessible_methods_list): Fixed indentation, added
18903 extra argument in prototype.
18904 (check_final_assignment, build_null_of_type, check_deprecation,
18905 check_method_redefinition, reset_method_name,
18906 java_check_regular_methods, java_check_abstract_methods,
18907 maybe_build_primttype_type_ref): New function prototype.
18908 * parse.y (conver.h): Include.
18909 (INSTANCEOF_TK): Tagged <operator>.
18910 (single_type_import_declaration): Use REGISTER_IMPORT macro.
18911 (relational_expression:): Build binop for instanceof.
18912 (java_push_parser_context): Remember ctxp->gclass_list across
18913 contexts.
18914 (java_pop_parser_context): Simply return if no context
18915 exists. Remember gclass_list across contexts.
18916 (issue_warning_error_from_context): New function.
18917 (parse_error_context): Don't setup ctxp->elc here. Call
18918 issue_warning_error_from_context instead.
18919 (parse_warning_context): Likewise.
18920 (maybe_create_class_interface_decl): Removed DECL_ARTIFICIAL
18921 setup. Link new class/interface to ctxp->gclass_list.
18922 (add_superinterfaces): Register interface as incomplete if not
18923 loaded.
18924 (create_class): Remember class unqualified name in
18925 ctxp->current_parsed_class_un. Check class deprecation.
18926 (register_fields): Check field deprecation. Remember static final
18927 field value in DECL_LOCAL_STATIC_VALUE. Changed comment in part
18928 processing INIT.
18929 (method_header): New local variable ORIG_ARG. Use unqualified
18930 current class name for check on constructor errors. Promote return
18931 type if of record type. Argument list fix moved in
18932 fix_method_argument_names, called here. Check method deprecation.
18933 (fix_method_argument_names): New function.
18934 (method_declarator): Promote record typed arguments.
18935 (safe_layout_class): Check class methods before layout.
18936 (java_complete_class): Compute field layout when patched.
18937 (do_resolve_class): Try to load class after having it renamed
18938 after the package name.
18939 (get_printable_method_name): Use DECL_CONTEXT.
18940 (reset_method_name): New function.
18941 (check_method_redefinition): Use reset_method_name.
18942 (java_check_regular_methods): New local variable
18943 SAVED_FOUND_WFL. Temporarily reinstall overriding/hiding method
18944 names for error report. Check for compile-time error when method
18945 found has default (package) access.
18946 (java_check_abstract_methods): Now takes an interface DECL node as
18947 an argument. Also reinstall real name on unchecked
18948 overriding/hiding methods for error report.
18949 (java_check_methods): Fixed leading comment. Get classes to verify
18950 from ctxp->gclass_list. Use CHECK_METHODS macro and set
18951 CLASS_METHOD_CHECKED_P on class verification.
18952 (lookup_java_method2): Get real method name if necessary.
18953 (find_in_imports): Don't check package class access here.
18954 (resolve_package, lookup_package_type): New functions.
18955 (java_layout_classes): Fixed leading comment. Take classes to be
18956 laid out from ctxp->gclass_list.
18957 (java_complete_expand_methods): Don't expand native and abstract
18958 methods.
18959 (java_expand_classes): New function.
18960 (resolve_expression_name): Use additional argument ORIG. Retrieve
18961 values of static final field of primitive types.
18962 (resolve_field_access): Handles static final field of promotive
18963 type.
18964 (resolve_qualified_expression_name): Handle STRING_CST as
18965 primaries and package name resolution. Check deprecation on found
18966 decls. Set where_found and type_found on non static field resolved
18967 during qualification. Layout non primitive field decl types.
18968 (check_deprecation): New function.
18969 (maybe_access_field): Simplified.
18970 (patch_method_invocation_stmt): Local variable CLASS_TYPE
18971 removed. Reverse method's argument when primary is a type. Don't
18972 use CLASS_TYPE to report problems, use IDENTIFIER_WFL
18973 instead. Include abstract class in the list of class searchable
18974 for constructors. Use DECL_CONTEXT of found method for access
18975 checks. Check method deprecation.
18976 (patch_invoke): Pay extra care to NEW_CLASS_EXPR type call when
18977 converting arguments. Handle INVOKE_INTERFACE.
18978 (lookup_method_invoke): Search constructor using existing
18979 infrastructure (don't rely on lookup_java_constructor anymore).
18980 (find_applicable_accessible_methods_list): Extra argument flag
18981 LC. Now include constructor in the search.
18982 (qualify_ambiguous_name): Conditional expression are primaries.
18983 (not_initialized_as_it_should_p): static final are always
18984 initialized.
18985 (java_complete_tree): Pass extra NULL argument to
18986 resolve_expression_name. Stricter test to carry on patching
18987 assignments. New case for INSTANCEOF_EXPR.
18988 (complete_function_arguments): Inline PRIMTYPE.TYPE read access.
18989 (check_final_assignment, maybe_build_primttype_type_ref): New
18990 functions.
18991 (patch_assignment): Detect resolved static finals and carry normal
18992 assignment error check on them. Inline PRIMTYPE.TYPE read access.
18993 (try_builtin_assignconv): Access constant 0 on all primitive
18994 types.
18995 (valid_builtin_assignconv_identity_widening_p): Accept identical
18996 types. Accept all promoted type on int type.
18997 (valid_ref_assignconv_cast_p): Accept a null pointer to be
18998 assigned to a reference.
18999 (valid_method_invocation_conversion_p): Accept to check null
19000 pointers.
19001 (build_binop): Merge declaration and initialization of local
19002 variable BINOP.
19003 (patch_binop): New case for INSTANCEOF_EXPR. NE_EXPR to accept all
19004 numeric types. Improved validity test for qualify operators on
19005 references.
19006 (patch_unaryop): Broadened rejection test for PREDECREMENT_EXPR
19007 and PREINCREMENT_EXPR. Also detect resolved static finals of a
19008 primitive type and issue the appropriate error message.
19009 (resolve_type_during_patch): Mark class loaded when resolved.
19010 (patch_cast): Allow null to be cased to reference types.
19011 (build_null_of_type): New function.
19012 (patch_array_ref): Handle array on references correctly.
19013 (patch_return): Removed unused local variable MODIFY. Force
19014 boolean to be returned as integers. Allows null to be returned by
19015 a function returning a reference.
19016 * typeck.c (convert_to_integer, convert_to_real,
19017 convert_to_pointer): Prototypes moved to convert.h
19018 (lookup_argument_method): Use method real name, if necessary.
19019
19020 1998-10-30 Tom Tromey <tromey@cygnus.com>
19021
19022 * class.c (build_class_ref): Changed name of primitive classes to
19023 start with `_Jv_'.
19024
19025 * class.c (make_class_data): Renamed fields: nmethods to
19026 method_count, method_count to dtable_method_count. Always set
19027 `state' field to 0.
19028 * decl.c (init_decl_processing): Likewise.
19029
19030 1998-10-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
19031
19032 * class.c (layout_class): Don't mangle <finit>, produce
19033 __finit<class> instead. Don't verify artificial methods.
19034 * decl.c (finit_identifier_node): New declared global.
19035 (init_decl_processing): finit_identifier_node initialized.
19036 * java-tree.def (CONDITIONAL_EXPR): New Java tree code.
19037 * java-tree.h (finit_identifier_node): Declared as extern.
19038 (struct lang_decl): New field called_constructor.
19039 (DECL_CONSTRUCTOR_CALLS): Access macro to called_constructor.
19040 (CLASS_HAS_FINIT_P): New macro.
19041 (CALL_CONSTRUCTOR_P): Leading comment changed. Macro now checks
19042 explicit constructor invocation.
19043 (CALL_EXPLICIT_CONSTRUCTOR_P, CALL_THIS_CONSTRUCTOR_P,
19044 CALL_SUPER_CONSTRUCTOR_P): New macros.
19045 (write_classfile): Added prototype.
19046 * jcf-parse.c (jcf_parse_source): Parse and remember for
19047 generation if the file was seen on the command line.
19048 (parse_source_file): Don't write the class file here.
19049 (yyparse): Loop on files rewritten. Set current_jcf.
19050 (parse_zip_file_entries): Parse class file only if it was found.
19051 * lang.c (init_parse): Don't open command line provided filename
19052 here.
19053 (lang_parse): Don't set main_jcf anymore.
19054 * parse.h (ABSTRAC_CHECK): Capitalized arguments.
19055 (JCONSTRUCTOR_CHECK): New macro.
19056 (JBSC_TYPE_P): New macro.
19057 (IN_TRY_BLOCK_P, EXCEPTIONS_P): Fixed leading comment.
19058 (COMPLETE_CHECK_OP_2): New macro.
19059 (struct parse_ctxt): New field explicit_constructor_p.
19060 (check_class_interface_creation): Fixed prototype indentation.
19061 (patch_method_invocation_stmt): Prototype reflects added argument.
19062 (patch_invoke): Likewise.
19063 (complete_method_declaration, build_super_invocation,
19064 verify_constructor_circularity,
19065 build_this_super_qualified_invocation, get_printable_method_name,
19066 patch_conditional_expr, maybe_generate_finit, fix_constructors,
19067 verify_constructor_super, create_artificial_method,
19068 start_artificial_method_body, end_artificial_method_body,
19069 generate_field_initialization_code): New function prototypes.
19070 * parse.y: Fixed leading comment
19071 (constructor_header:, constructor_body:, block_end:): Rules tagged
19072 <node>.
19073 (type_declaration:): Call maybe_generate_finit.
19074 (method_declaration:): Action for method_body: placed in new
19075 function complete_method_declaration, called here.
19076 (constructor_declaration:): Defined actions. Removed leading
19077 FIXME.
19078 (constructor_header:): New rule with action.
19079 (constructor_body:): Rule rewritten using block_begin: and
19080 block_end:. Defined actions.
19081 (constructor_declarator:, explicit_constructor_invocation:):
19082 Defined actions.
19083 (block:): Use new rules block_begin: block_end:.
19084 (block_begin:, block_end:): New rules and actions.
19085 (block_statements:): Fixed error message for explicit
19086 constructors.
19087 (method_invocation:): Call build_this_super_qualified_invocation
19088 if primary is `this' or `super' was seen.
19089 (conditional_expression:): Action defined.
19090 (extra_ctxp_pushed_p): New static global flag.
19091 (java_parser_context_save_global): Create parser context if
19092 necessary. Use extra_ctxp_pushed_p to remember it.
19093 (java_parser_context_restore_global): Pop extra parser context if
19094 one exists.
19095 (build_array_from_name): Array on primitive types are marked
19096 loaded.
19097 (register_fields): Restore new name in field initializer
19098 expression if type was altered. Non static fields initialized upon
19099 declaration marked initialized.
19100 (maybe_generate_finit): New function.
19101 (maybe_generate_clinit): Use create_artificial_method,
19102 start_artificial_method_body, end_artificial_method_body. Generate
19103 debug info for enclosed initialization statements.
19104 (method_header): Fixed leading comment. Check constructor
19105 flags. Detect constructor declarations and set DECL_CONSTRUCTOR_P
19106 accordingly.
19107 (complete_method_declaration, constructor_circularity_msg,
19108 verify_constructor_circularity): New functions.
19109 (get_printable_method_name): New function.
19110 (check_method_redefinition): Don't rename <finit> methods. Fix
19111 declared constructor names. Error message for
19112 constructors modified.
19113 (java_check_regular_methods): Local variable seen_constructor
19114 renamed saw_constructor. Skip verification on constructors. Create
19115 default constructor with create_artificial_method.
19116 (java_check_methods): Removed unnecessary empty line.
19117 (create_artificial_method, start_artificial_method_body,
19118 end_artificial_method_body): New functions.
19119 (java_layout_classes): Changed leading comment. Reverse fields
19120 list if necessary. Always layout java.lang.Object if being
19121 defined.
19122 (java_complete_expand_methods): Verify constructor circularity.
19123 (java_complete_expand_method): Call fix_constructor on
19124 constructors. Local variable no_ac_found removed. Restore
19125 bindings if method body expansion failed.
19126 (fix_constructors, verify_constructor_super,
19127 generate_field_initialization_code): New function.
19128 (java_expand_classes): Fixed leading comment. Write class file
19129 here.
19130 (resolve_expression_name): Check for illegal instance variable
19131 usage within the argument scope of an explicit constructor
19132 invocation.
19133 (resolve_qualified_expression_name): Pass extra from_super flag
19134 when invoking patch_method_invocation_stmt. New case for
19135 conditional expression when used as a primary. Check for error
19136 when acquiring super.
19137 (patch_method_invocation_stmt): Added extra argument super. New
19138 local variable is_static_flag. Set class_to_search according to
19139 the nature of the constructor invocation. Don't add `this'
19140 argument when expanding NEW_CLASS_EXPR. Check for illegal method
19141 invocation within the argument scope of explicit constructor
19142 invocation. Set is_static according to is_static_flag. Provide
19143 extra `super' argument to patch_invoke invocation.
19144 (patch_invoke): New argument from_super. Loop on arguments
19145 indentation fixed. Pass from_super to invocation_mode. New switch
19146 case INVOKE_SUPER. Fixed error message in switch default case.
19147 Don't use CALL_CONSTRUCTOR_P but rather a test on the tree node
19148 value.
19149 (invocation_mode): Return INVOKE_SUPER mode when appropriate.
19150 (lookup_method_invoke): Fixed prototypes in candidates list. Error
19151 message takes constructors into account.
19152 (find_applicable_accessible_methods_list): Fixed indentation.
19153 (qualify_ambiguous_name): Take explicit constructor invocation
19154 into account. Deal with a conditional expression as a primary to
19155 a method call.
19156 (java_complete_tree): Added local wfl_op3. New CONDITIONAL_EXPR
19157 case. Added extra argument to patch_method_invocation_stmt.
19158 Register calls made to explicit constructor `this'. Don't call
19159 save_expr in ARRAY_REF case when emitting class files. Check for
19160 illegal use of this when expanding explicit constructor invocation
19161 arguments.
19162 (complete_function_arguments): Set and reset parser context
19163 explicit_constructor_p field value when appropriate.
19164 (build_super_invocation, build_this_super_qualified_invocation):
19165 New functions.
19166 (patch_assignment): Fixed typo.
19167 (patch_unaryop): Check on final fields occurs only when a decl
19168 exits.
19169 (patch_return): Take constructors into account.
19170 (patch_conditional_expr): New function.
19171 * typeck.c (build_java_signature): Removed unnecessary empty line.
19172
19173 1998-10-28 Jeffrey A Law (law@cygnus.com)
19174
19175 * Makefile.in (jcf-dump, gcjh): Link in $(LIBS) too.
19176
19177 1998-10-28 Tom Tromey <tromey@cygnus.com>
19178
19179 * decl.c (init_decl_processing): Renamed fields.
19180 * class.c (make_class_data): Renamed bfsize, nfields, nsfields,
19181 interface_len, msize fields.
19182
19183 * class.c (make_class_data): Removed subclass_head and
19184 subclass_next fields.
19185 * decl.c (init_decl_processing): Removed subclass_head and
19186 subclass_next fields.
19187
19188 1998-10-28 Jeffrey A Law (law@cygnus.com)
19189
19190 * jcf-write.c (emit_load_or_store): Avoid implicit int arguments.
19191 * mangle.c (emit_unicode_mangled_name): Similarly.
19192
19193 1998-10-26 Nick Clifton <nickc@cygnus.com>
19194
19195 * jcf-parse.c (get_constant): Place braces around code to compute
19196 'd' when REAL_ARITHMETIC is not defined.
19197
19198 1998-10-25 H.J. Lu (hjl@gnu.org)
19199
19200 * Make-lang.in (jv-scan$(exeext)): Add stamp-objlist to
19201 dependency.
19202
19203 1998-10-23 Tom Tromey <tromey@cygnus.com>
19204
19205 * lang-specs.h: `.zip' files are input to jc1.
19206
19207 1998-10-22 Per Bothner <bothner@cygnus.com>
19208
19209 * jvspecs.c: Add (but don't enable) support for combining multiple
19210 .class and .java input filenames to a single jc1 invocation.
19211 Add support for -C flag (copile to .class files).
19212 Translate -classpath and -CLASSPATH arguments.
19213 * lang-specs.h: Don't set %2 spec.
19214
19215 1998-10-22 Tom Tromey <tromey@cygnus.com>
19216
19217 * jcf-path.c (add_entry): Don't add trailing separator if entry is
19218 a .zip file.
19219 (add_path): Don't add trailing separator to non-empty path
19220 elements.
19221
19222 * lang.c (lang_decode_option): Check for -fclasspath and
19223 -fCLASSPATH before examining other `-f' options.
19224
19225 * java-tree.h (finalize_identifier_node): Don't declare.
19226 * class.c (make_class_data): Don't push "final" field.
19227 * decl.c (init_decl_processing): Don't push "final" field.
19228 (finalize_identifier_node): Removed.
19229 (init_decl_processing): Don't set finalize_identifier_node.
19230
19231 * config-lang.in (stagestuff): Added jcf-dump and jv-scan.
19232
19233 1998-10-11 Anthony Green <green@cygnus.com>
19234
19235 * Make-lang.in (java): Depend on jcf-dump and jv-scan.
19236 (JV_SCAN_SOURCES): New macro.
19237 (JCF_DUMP_SOURCES): Likewise.
19238 (jcf-dump$(exeext)): New target.
19239 (jv-scan$(exeext)): New target.
19240
19241 1998-10-22 Tom Tromey <tromey@cygnus.com>
19242
19243 * Makefile.in (LEX): Removed.
19244 (LEXFLAGS): Likewise.
19245 (SET_BISON): New macro.
19246 (BISON): Removed.
19247 ($(PARSE_C)): Use SET_BISON. Run bison from srcdir to avoid
19248 spurious diffs in parse.c.
19249 ($(PARSE_SCAN_C)): Likewise.
19250 (PARSE_DIR): New macro.
19251 (PARSE_C): Use it.
19252 (PARSE_SCAN_C): Likewise.
19253 (PARSE_RELDIR): New macro.
19254
19255 * jcf-io.c (saw_java_source): Define here, not in jcf-parse.c.
19256
19257 * jcf-io.c (find_class): Use saw_java_source to determine when to
19258 look for `.java' file.
19259 * jcf-parse.c (saw_java_source): New global.
19260 (yyparse): Set it if `.java' file seen.
19261
19262 * Make-lang.in (JAVA_SRCS): Added jcf-path.c.
19263 (GCJH_SOURCES): Likewise.
19264 * Makefile.in (datadir): New macro.
19265 (libjava_zip): Likewise.
19266 (JAVA_OBJS): Added jcf-path.o.
19267 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
19268 (../gcjh$(exeext)): Likewise.
19269 (jcf-path.o): New target.
19270 * java-tree.h (fix_classpath): Removed decl.
19271 * jcf-parse.c (fix_classpath): Removed.
19272 (load_class): Don't call fix_classpath.
19273 * parse.y (read_import_dir): Don't call fix_classpath.
19274 * lex.h: Don't mention classpath.
19275 * lex.c (java_init_lex): Don't initialize classpath.
19276 * jcf-io.c (classpath): Removed global.
19277 (find_class): Use jcf_path iteration functions. Correctly search
19278 class path for .java file.
19279 (open_in_zip): New argument `is_system'.
19280 * jcf-dump.c (main): Call jcf_path_init. Recognize all new
19281 classpath-related options.
19282 * lang.c (lang_decode_option): Handle -fclasspath, -fCLASSPATH,
19283 and -I.
19284 (lang_init): Call jcf_path_init.
19285 * lang-options.h: Mention -I, -fclasspath, and -fCLASSPATH.
19286 * lang-specs.h: Handle -I. Minor cleanup to -M options.
19287 Correctly put braces around second string in each entry.
19288 * gjavah.c (main): Call jcf_path_init. Recognize all the new
19289 classpath-related options.
19290 (help): Updated for new options.
19291 * jcf.h: Declare functions from jcf-path.c. Don't mention
19292 `classpath' global.
19293 * jcf-path.c: New file.
19294
19295 * jcf-depend.c: Include jcf.h.
19296
19297 * jcf-write.c (localvar_alloc): Returns `void'.
19298 (localvar_free): Removed unused variable.
19299
19300 * lang.c (OBJECT_SUFFIX): Define if not already defined.
19301 (init_parse): Use OBJECT_SUFFIX, not ".o".
19302
19303 1998-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
19304
19305 * class.c (emit_register_classes): Renamed from
19306 emit_register_class.
19307 * java-tree.h (emit_register_classes): Prototype renamed from
19308 emit_register_class.
19309 * jcf-parse.c (yyparse): Call emit_register_classes once before
19310 returning.
19311 * parse.y (java_expand_classes): No longer register classes.
19312
19313 1998-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
19314
19315 * class.c (is_compiled_class): New local variable
19316 seen_in_zip. Identify classes found in currently compiled source
19317 file(s).
19318 * decl.c (complete_start_java_method): Fixed typo.
19319 * java-tree.h (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P,
19320 HAS_BEEN_ALREADY_PARSED_P, IS_A_COMMAND_LINE_FILENAME_P): New macros.
19321 (CLASS_P): Moved around.
19322 (java_parse_abort_on_error): Macro moved from jcf-parse.c
19323 * jcf-parse.c (java_parse_abort_on_error): Macro moved to
19324 java-tree.h
19325 (jcf_parse_source): Changed leading comment. Removed unnecessary
19326 fclose and CLASS_FROM_SOURCE_P marking.
19327 (parse_source_file): New local variables remember_for_generation
19328 and filename. Mark parsed file name identifier node. Removed block
19329 executed when parse_only was null. Set remember_for_generation.
19330 Use it as an argument to java_pop_parser_context.
19331 (yyparse): New local variables several_files, list, next node and
19332 current_file_list. Split ampersand separated file names into
19333 current_file_list. Iterate through the list and parse accordingly.
19334 * parse.h (java_pop_parser_context): New function prototype.
19335 * parse.y (ctxp_for_generation): New static global variable.
19336 (java_pop_parser_context): New argument generate. Link popped ctxp
19337 to ctxp_for_generation list accordingly.
19338 (java_complete_expand_methods): Fixed indentation.
19339 (java_expand_classes): New function.
19340
19341 1998-10-17 Per Bothner <bothner@cygnus.com>
19342
19343 * Makefile.in: Link with libiberty.a instead of memmove.o.
19344
19345 1998-10-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
19346
19347 * lex.c (setjmp.h): No longer included.
19348 * lex.h (setjmp.h): Included.
19349 * parse.h (SET_TYPE_FOR_RESOLUTION): New macro.
19350 (duplicate_declaration_error_p): Renamed from
19351 duplicate_declaration_error.
19352 (build_array_from_name): New function prototype.
19353 * parse.y (setjmp.h): No longer included.
19354 (variable_declarator_id): Define action.
19355 (build_array_from_name): New function.
19356 (duplicate_declaration_error_p): Renamed from
19357 duplicate_declaration_error. Fixed leading comment.
19358 (register_fields): Main `for' loop reorganized. Uses
19359 SET_TYPE_FOR_RESOLUTION and build_array_from_name.
19360 (method_declarator): Uses SET_TYPE_FOR_RESOLUTION and call
19361 build_array_from_name.
19362 (resolve_class): Set CLASS_LOADED_P on newly build array dimension
19363 types.
19364 (read_import_dir): Don't try to skip `.' and `..'.
19365 (declare_local_variables): Uses SET_TYPE_FOR_RESOLUTION and
19366 build_array_from_name. Main `for' loop reorganized.
19367 (resolve_qualified_expression_name): When building access to a
19368 field, use the type where the field was found, not its own type.
19369 (maybe_access_field): Use field DECL_CONTEXT if the type where the
19370 field was found is null.
19371 (qualify_ambiguous_name): Sweep through all successive array
19372 dimensions.
19373
19374 1998-10-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
19375
19376 * java-tree.h (pop_labeled_block, lang_printable_name,
19377 maybe_add_interface, set_super_info, get_access_flags_from_decl,
19378 interface_of_p, inherits_from_p, fix_classpath,
19379 complete_start_java_method, emit_handlers, init_outgoing_cpool,
19380 make_class_data, register_class, alloc_name_constant): New
19381 function prototypes.
19382 * lang.c (lang_decode_option): Set argc argument unused. Fixed
19383 indentation. Added cast to remove warning.
19384 (lang_printable_name): Set v argument unused.
19385 (lang_print_error): Added argument to lang_printable_name call.
19386 (java_dummy_print, print_lang_decl, print_lang_type,
19387 print_lang_identifier, lang_print_xnode): All argument marked
19388 unused.
19389 * lex.c (java_unget_unicode): Removed unnecessary argument.
19390 (java_allocate_new_line): Unused local variable is gone.
19391 (java_read_char): Added parenthesis in expressions to remove
19392 warnings. Added final return statement.
19393 (java_read_unicode): Added parenthesis in expression to remove
19394 warning.
19395 (java_parse_end_comment): Fixed java_unget_unicode invocation.
19396 (java_parse_escape_sequence): Likewise.
19397 (java_lex): Unused local variables are gone. Fixed
19398 java_unget_unicode invocation.
19399 * lex.h (set_float_handler): Prototype added when JC1_LITE not
19400 defined.
19401 * parse.h (ERROR_CANT_CONVERT_TO_BOOLEAN): Fixed
19402 lang_printable_name invocation in macro.
19403 (ERROR_CANT_CONVERT_TO_NUMERIC, ERROR_CAST_NEEDED_TO_INTEGRAL):
19404 Likewise.
19405 (duplicate_declaration_error): Suppressed unused argument in
19406 prototype.
19407 (identical_subpath_p): Function declaration is gone.
19408 (patch_invoke): Suppressed unused argument in prototype.
19409 (patch_cast, build_labeled_block, check_thrown_exceptions):
19410 Likewise.
19411 * parse.y (setjmp.h): Included
19412 (toplev.h): Likewise.
19413 (field_declaration:): Suppressed unused local
19414 (label_decl:): Fixed build_labeled_block invocation.
19415 (java_pop_parser_context): Put extra parenthesis around assignment
19416 in if.
19417 (yyerror): Suppressed unused local variables.
19418 (variable_redefinition_error): Fixed lang_printable_name
19419 invocation.
19420 (create_interface): Suppressed unused local variables.
19421 (create_class): Likewise.
19422 (duplicate_declaration_error): Suppressed unused argument. Fixed
19423 lang_printable_name invocation.
19424 (register_fields): Suppressed unused local variable. Fixed
19425 duplicate_declaration_error invocation.
19426 (method_header): Suppressed unused local variable.
19427 (method_declarator, parser_check_super): Likewise.
19428 (java_complete_class): Suppressed unused local variable. Fixed
19429 fatal error message.
19430 (complete_class_report_errors): Added default: in switch.
19431 (java_check_regular_methods): Fixed lang_printable_name
19432 invocations.
19433 (check_throws_clauses): Likewise.
19434 (java_check_abstract_methods): Suppressed unused local
19435 variable. Fixed lang_printable_name invocation.
19436 (read_import_entry): Added supplemental return statement.
19437 (read_import_dir): Suppressed unused local variables.
19438 (check_pkg_class_access, declare_local_variables): Likewise.
19439 (source_start_java_method): Suppressed unused extern variable
19440 declarations
19441 (expand_start_java_method): Suppressed unused extern and local
19442 variable declarations.
19443 (java_complete_expand_methods): Likewise.
19444 (java_complete_expand_method): Suppressed unused local variables.
19445 (make_qualified_name): Likewise.
19446 (resolve_qualified_expression_name): Added default: in
19447 switch. Fixed lang_printable_name invocation.
19448 (class_instance_creation_expression): Added parenthesis around
19449 expressions.
19450 (patch_method_invocation_stmt): Fixed lang_printable_name and
19451 patch_invoke invocations.
19452 (check_for_static_method_reference): Fixed lang_printable_name
19453 invocation.
19454 (patch_invoke): Suppressed unused arguments and local variables.
19455 (lookup_method_invoke): Suppressed unused local variables.
19456 (qualify_ambiguous_name): Added default: in switch.
19457 (identical_subpath_p): Function removed.
19458 (patch_assignment): Suppressed unused local variables. Suppressed
19459 unnecessary if statement. Fixed lang_printable_name invocations.
19460 (try_builtin_assignconv): Fixed lang_printable_name invocations.
19461 (valid_ref_assignconv_cast_p): Parenthesis around
19462 expression. Suppressed unused local variables.
19463 (build_binop): Suppressed unused local variables. fixed
19464 lang_printable_name invocations.
19465 (string_constant_concatenation): Suppressed unused local
19466 variables.
19467 (patch_unaryop): Fixed lang_printable_name invocation.
19468 (patch_cast): Suppressed unnecessary argument. Fixed
19469 lang_printable_name invocation.
19470 (patch_array_ref): Fixed lang_printable_name invocation.
19471 (patch_newarray, patch_return, patch_if_else_statement): Likewise.
19472 (build_labeled_block): Suppressed unused argument.
19473 (generate_labeled_block): Fixed build_labeled_block invocation.
19474 (build_loop_body): Suppressed unused local variables.
19475 (patch_loop_statement): Likewise.
19476 (patch_exit): Fixed lang_printable_name invocation.
19477 (patch_switch_statement): Likewise.
19478 (case_identity): First argument marked unused.
19479 (patch_try_statement): Fixed lang_printable_name invocations.
19480 (patch_synchronized_statement, patch_throw_statement): Likewise.
19481 (check_thrown_exceptions): Fixed check_thrown_exceptions and
19482 lang_printable_name invocations.
19483 (check_thrown_exceptions_do): Suppressed unused argument.
19484
19485 1998-10-14 Tom Tromey <tromey@cygnus.com>
19486
19487 * jcf-write.c (write_classfile): Add output class file as target.
19488 * lang-options.h: Added -MD, -MMD, -M, and -MM.
19489 * jcf.h: Added declarations for dependency-tracking functions.
19490 * lang-specs.h: Handle -M, -MM, MD, and -MMD.
19491 * lang.c (lang_decode_option): Recognize -MD and -MMD.
19492 (finish_parse): Call jcf_dependency_write.
19493 (dependency_tracking): New global.
19494 (DEPEND_SET_FILE): New define.
19495 (DEPEND_ENABLE): New define.
19496 (init_parse): Enable dependency tracking if required.
19497 Include "flags.h".
19498 * Makefile.in (JAVA_OBJS): Added jcf-depend.o.
19499 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
19500 (../gcjh$(exeext)): Likewise.
19501 (jcf-depend.o): New target.
19502 * Make-lang.in (JAVA_SRCS): Added jcf-depend.c.
19503 (GCJH_SOURCES): Likewise.
19504 * jcf-io.c (open_class): Call jcf_dependency_add_file. Added
19505 dep_name argument.
19506 (find_classfile): Added dep_name argument.
19507 (find_class): Compute name of dependency.
19508 (open_in_zip): Call jcf_dependency_add_file.
19509 * gjavah.c (output_file): No longer global.
19510 (usage): Don't mention "gjavah".
19511 (help): Likewise.
19512 (java_no_argument): Likewise.
19513 (version): Likewise.
19514 (main): Recognize and handle -M family of options.
19515 (print_mangled_classname): Return is void.
19516 (process_file): Handle case where output is suppressed.
19517 (HANDLE_END_FIELD): Likewise.
19518 (HANDLE_METHOD): Likewise.
19519 * jcf-depend.c: New file.
19520
19521 1998-10-13 Jeffrey A Law (law@cygnus.com)
19522
19523 * java-tree.def: Add missing newline at EOF.
19524
19525 1998-10-13 Tom Tromey <tromey@cygnus.com>
19526
19527 * jcf-dump.c (process_class): Use FATAL_EXIT_CODE, not -1.
19528 (main): Likewise. Exit with SUCCESS_EXIT_CODE at end of
19529 function.
19530 Include <config.h> and "system.h".
19531 (disassemble_method): Undefine RET to avoid clash with
19532 config/i386/i386.h.
19533
19534 1998-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
19535
19536 * decl.c (runtime_exception_type_node, error_exception_type_node):
19537 New global variables.
19538 (init_decl_processing): Initialized.
19539 * expr.c (java_lang_expand_expr): Set caught exception type to
19540 null if catch handler argument doesn't exit.
19541 * java-tree.def (SYNCHRONIZED_EXPR, THROW_EXPR): New Java specific
19542 tree codes.
19543 * java-tree.h (runtime_exception_type_node,
19544 error_exception_type_node): Global variables declared.
19545 (DECL_FUNCTION_THROWS): New macro.
19546 (DECL_FUNCTION_BODY): Modified comment.
19547 (DECL_SPECIFIC_COUNT): Likewise.
19548 (struct lang_decl): New field throws_list.
19549 (IS_UNCHECKED_EXPRESSION_P): New macro.
19550 * lex.c (java_lex): Generate location information for THROW_TK.
19551 * parse.h (PUSH_EXCEPTIONS, POP_EXCEPTIONS, IN_TRY_BLOCK_P,
19552 EXCEPTIONS_P): New macros.
19553 (enum jdep_code): New value JDEP_EXCEPTION.
19554 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT,
19555 BUILD_ASSIGN_EXCEPTION_INFO, BUILD_THROW, SET_WFL_OPERATOR,
19556 PATCH_METHOD_RETURN_ERROR): New macros.
19557 (patch_method_invocation_stmt): Added new argument to prototype.
19558 (patch_synchronized_statement, patch_throw_statement,
19559 check_thrown_exceptions, check_thrown_exceptions_do,
19560 purge_unchecked_exceptions, check_throws_clauses): New function
19561 prototypes.
19562 * parse.y Fixed typo in keyword section.
19563 (throw:): Rule tagged <node>.
19564 (THROW_TK): Keyword tagged <operator>.
19565 (method_header:): Last argument to call to method_header passed
19566 from throws: rule.
19567 (throws:, class_type_list:, throw_statement:,
19568 synchronized_statement:, synchronized:): Defined actions.
19569 (method_header): New local variable current. Register exceptions
19570 from throws clause.
19571 (java_complete_tree): Complete and verify exceptions from throws
19572 clause.
19573 (complete_class_report_errors): Error message on exceptions not
19574 found
19575 (java_check_regular_methods): Fixed typo. Shortcut on private
19576 overriding methods. Changed error message on method
19577 redefinition. Check for throws clause compatibility.
19578 (check_throws_clauses): New function.
19579 (java_check_abstract_methods): Use DECL_NAME for wfl or current
19580 method. Changed error message on method redefinition.
19581 (currently_caught_type_list): New static variable.
19582 (java_complete_expand_methods): Purge unchecked exceptions from
19583 throws clause list. Call PUSH_EXCEPTIONS before walk and
19584 POP_EXCEPTIONS after.
19585 (resolve_qualified_expression_name): Pass new argument as NULL to
19586 patch_method_invocation_stmt.
19587 (patch_method_invocation_stmt): New argument ref_decl. Invoke
19588 PATCH_METHOD_RETURN_ERROR when returning with error. Reverse
19589 argument list when appropriate. Use new argument if non null to
19590 store selected method decl.
19591 (patch_invoke): Convert if necessary args of builtin types before
19592 forming CALL_EXPR. Argument list no longer reversed here.
19593 (invocation_mode): Treat final methods as static methods.
19594 (java_complete_tree): New cases for THROW_EXPR: and
19595 SYNCHRONIZED_EXPR:. Check thrown exceptions when completing
19596 function call.
19597 (complete_function_arguments): No more RECORD_TYPE
19598 conversion. Function parameter nodes no longer saved.
19599 (valid_ref_assignconv_cast_p): Avoid handling null type.
19600 (patch_binop): Fixed null constant reference handling.
19601 (build_try_statement): Use BUILD_ASSIGN_EXCEPTION_INFO and
19602 BUILD_THROW macros.
19603 (patch_try_statement): Fixed comments. Record caught types in
19604 list, push the list, expand try block and pop the list.
19605 (patch_synchronized_statement, patch_throw_statement,
19606 check_thrown_exceptions, check_thrown_exceptions_do,
19607 purge_unchecked_exceptions): New functions.
19608 * typeck.c (lookup_argument_method): Allow WFL in place of method
19609 DECL_NAME during method definition check
19610
19611 1998-10-09 Tom Tromey <tromey@cygnus.com>
19612
19613 * gjavah.c (decode_signature_piece): New function.
19614 (print_c_decl): Use it. Added `name_override' argument.
19615 (print_method_info): Use name_override argument to print_c_decl.
19616 (seen_fields): Removed.
19617 (print_field_info): Don't update seen_fields.
19618 (struct method_name): New structure.
19619 (method_name_list): New global.
19620 (print_method_info): Add new method to list of methods.
19621 (name_is_method_p): New function.
19622 (print_field_info): If field name has same name as method, then
19623 change field name.
19624 (process_file): Parse methods before fields.
19625 (field_pass): New global.
19626 (HANDLE_END_FIELD): Take field_pass into account.
19627
19628 1998-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19629
19630 * Makefile.in (keyword.h): Add -L KR-C -F ', 0' flags to gperf.
19631 (keyword.h): Regenerate using gperf 2.7.1 (19981006 egcs).
19632
19633 1998-10-03 Anthony Green <green@cygnus.com>
19634
19635 * jvspec.c: Fix bug in jvgenmain_spec patch.
19636
19637 1998-10-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
19638
19639 * Makefile.in (lang.o:): Install dependency on java-tree.def.
19640 * decl.c (soft_exceptioninfo_call_node): New global variable.
19641 (init_decl_processing): Fixed indentation. soft_badarrayindex_node
19642 takes extra integer argument. soft_exceptioninfo_call_node
19643 initialized.
19644 * except.c (java_set_exception_lang_code): New function
19645 (method_init_exceptions): Called here.
19646 (prepare_eh_table_type): New function.
19647 (expand_end_java_handler): Called here.
19648 * expr.c (build_java_throw_out_of_bounds_exception): Now features
19649 one argument. Modified generation of call to
19650 soft_badarrayindex_node to use new argument.
19651 (build_java_arrayaccess): Pass faulty index value to
19652 build_java_throw_out_of_bounds_exception.
19653 (generate_name): New function.
19654 (java_lang_expand_expr): New local variables node, current,
19655 has_finally_p. Expand TRY_EXPR node.
19656 (process_jvm_instruction): Replace top of the stack with thrown
19657 object reference when entering exception handler.
19658 * java-tree.def (TRY_EXPR, CATCH_EXPR, FINALLY_EXPR): New Java
19659 specific tree codes.
19660 * java-tree.h (soft_exceptioninfo_call_node): Declaration of new
19661 global.
19662 (DECL_SPECIFIC_COUNT): New macro.
19663 (prepare_eh_table_type, java_set_exception_lang_code,
19664 generate_name): New function declarations.
19665 (match_java_method): Declaration deleted.
19666 (FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, CATCH_EXPR_GET_EXPR): New
19667 macros.
19668 * lex.c (TRY_TK, CATCH_TK): Generate location information.
19669 * parse.h (redefinition_error, refine_accessible_methods_list,
19670 can_cast_to_p): Function declaration removed.
19671 (classitf_redefinition_error, variable_redefinition_error,
19672 parse_jdk1_1_error, find_applicable_accessible_methods_list,
19673 find_most_specific_methods_list, argument_types_convertible,
19674 enter_a_block, valid_builtin_assignconv_identity_widening_p,
19675 valid_cast_to_p, valid_method_invocation_conversion_p,
19676 try_reference_assignconv, add_stmt_to_compound,
19677 build_jump_to_finally, build_tree_list, patch_try_statement,
19678 java_get_catch_block): New function declarations.
19679 * parse.y (string_buffer_type): Global variable deleted.
19680 (group_of_labels, catches, catch_clause, catch_clause_parameter,
19681 finally): Rules tagged <node>.
19682 (TRY_TK, CATCH_TK): Token tagged <operator>.
19683 (class_body_declaration:, class_member_declaration:,
19684 formal_parameter:, explicit_constructor_invocation:,
19685 interface_member_declaration:, constant_declaration:,
19686 primary_no_new_array:, class_instance_creation_expression:,
19687 array_creation_expression:): Issue error on unsuported JDK1.1
19688 features.
19689 (try_statement:, catches:, finally:): Define actions.
19690 (catch_clause_parameter): New rule.
19691 (catch_clause:): Use new rule catch_clause_parameter.
19692 (parse_jdk1_1_error): New function.
19693 (redefinition_error): Renamed classitf_redefinition_error.
19694 (variable_redefinition_error): New function.
19695 (check_class_interface_creation): Call
19696 classitf_redefinition_error.
19697 (java_complete_tree): Added error message on JDEP_TYPE: case.
19698 (complete_class_report_errors): Fixed indentation.
19699 (declare_local_variables): Call variable_redefinition_error.
19700 (source_end_java_method): Call java_set_exception_lang_code and
19701 emit_handlers where appropriate.
19702 (java_method_add_stmt): Call add_stmt_to_block.
19703 (add_stmt_to_block): New function.
19704 (lookup_method_invoke): Fixed outside comment. new local variable
19705 candicates. Call find_applicable_accessible_methods_list and
19706 find_most_specific_methods_list when searching for a
19707 method. Modified error report to list possible candidates when
19708 applicable.
19709 (find_applicable_accessible_methods_list,
19710 find_most_specific_methods_list, argument_types_convertible): New
19711 function.
19712 (refine_accessible_methods_list): Function deleted.
19713 (java_complete_tree): Handle TRY_EXPR. ARRAY_REF handling: save
19714 expr (if applicable) before calling patch_array_ref.
19715 (build_expr_block): Fixed BLOCK_EXPR_BODY assignment.
19716 (enter_block): Fixed comment.
19717 (enter_a_block): New function.
19718 (patch_assignment): Reorganized. Call try_reference_assignconv for
19719 references. Call valid_cast_to_p instead of can_cast_to_p.
19720 (try_reference_assignconv,
19721 valid_builtin_assignconv_identity_widening_p): New functions.
19722 (valid_ref_assignconv_cast_p): Fixed inverted test on CLASS_FINAL.
19723 (valid_cast_to_p, valid_method_invocation_conversion_p): New
19724 functions.
19725 (build_string_concatenation): Don't resolve StringBuffer.
19726 (patch_cast): Fixed inverted arguments.
19727 (patch_array_ref): Code to save array expr deleted. Call
19728 valid_cast_to_p instead of can_cast_to_p.
19729 (generate_labeled_block): Call generate_name.
19730 (build_jump_to_finally, build_try_statement, java_get_catch_block,
19731 patch_try_statement): New functions.
19732 * typeck.c (match_java_method): Function deleted.
19733
19734 1998-10-02 Anthony Green <green@cygnus.com>
19735
19736 * jvspec.c: jvgenmain_spec uses different temporary file names.
19737
19738 1998-10-02 Anthony Green <green@cygnus.com>
19739
19740 * jvspec.c (lang_specific_driver): Fail if user specifies
19741 --main= when not linking.
19742
19743 1998-09-28 Tom Tromey <tromey@cygnus.com>
19744
19745 * class.c (make_class_data): Push value for `thread' field.
19746 * decl.c (init_decl_processing): Added `thread' field to class.
19747
19748 * class.c (add_field): Always make static fields externally
19749 visible.
19750
19751 1998-09-26 Anthony Green <green@cygnus.com>
19752
19753 * expr.c (build_java_athrow,
19754 build_java_throw_out_of_bounds_exception, expand_invoke,
19755 build_newarray, expand_java_multianewarray, build_java_monitor):
19756 Update comments to reflect _Jv_* function names.
19757
19758 1998-09-25 Per Bothner <bothner@cygnus.com>
19759
19760 * decl.c (complete_start_java_method): DECL_RESULT is always promoted.
19761 * decl.c (start_java_method): Handle PROMOTE_PROTOTYPES target macro.
19762 * parse.y (expand_start_java_method): Likewise.
19763
19764 1998-09-24 Per Bothner <bothner@cygnus.com>
19765
19766 * expr.c (pop_arguments): Handle PROMOTE_PROTOTYPES target macro.
19767
19768 * class.c (push_class): IDENTIFIER_SIGNATURE_TYPE is now POINTER_TYPE.
19769 (add_field): No longer need to convert from RECORD_TYPE to pointer,
19770 * expr.c: Remove no-longer-needed calls to promote_type.
19771 * decl.c (give_name_to_locals): Liekwise.
19772 * jcf-parse.c (get_class_constant): Compensate for new signatures.
19773 * parse.y: Add/remove promote_type calls as appropriate.
19774 * typeck.c (parse_signature_type): Returns POINTER_TYPE for objects.
19775 (parse_signature_string): Likewise.
19776 (build_java_array_type): Fix for now signature convenions.
19777
19778 * lex.c (java_lex): Fix (from Alex) for JC1_LITE problem.
19779
19780 1998-09-23 Tom Tromey <tromey@cygnus.com>
19781
19782 * class.c (init_class_processing): libjava function renamed to
19783 _Jv_RegisterClass.
19784
19785 1998-09-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
19786
19787 * expr.c (java_lang_expand_expr): New case for SWITCH_EXPR.
19788 * java-tree.def: Fixed DEFTREECODE third argument.
19789 (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
19790 CASE_EXPR, DEFAULT_EXPR): New tree codes for Java.
19791 * java-tree.h: (IS_CRAFTED_STRING_BUFFER_P): New macro.
19792 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19793 JAVA_THIS_EXPR): Now replaced by tree code definitions.
19794 (CALL_CONSTRUCTOR_P): Now uses NEW_CLASS_EXPR.
19795 * lang.c (java_tree_code_type, java_tree_code_length,
19796 java_tree_code_name): New arrays.
19797 (lang_init): Append Java tree node definitions to Gcc ones.
19798 * lex.c (expression_obstack): Declared as extern when JC1_LITE
19799 defined.
19800 (java_init_lex): Initialize wfl_append, wfl_string_buffer,
19801 wfl_to_string.
19802 (java_lex): Allow declaration of empty string constants. Retain
19803 location information on CASE_TK and DEFAULT_TK.
19804 * parse.h (JFLOAT_TYPE_P, JINTEGRAL_TYPE_P, JNUMERIC_TYPE_P,
19805 JPRIMITIVE_TYPE_P, JSTRING_TYPE_P, JSTRING_P, JREFERENCE_TYPE_P):
19806 Modified to be more robust.
19807 (BUILD_APPEND, BUILD_STRING_BUFFER): New macros.
19808 (build_new_invocation, try_builtin_assignconv,
19809 patch_switch_statement, string_constant_concatenation,
19810 build_string_concatenation, patch_string_cst, patch_string,
19811 java_expand_switch): New function declarations.
19812 * parse.y: Rules related to switch and EH tagged <node>.
19813 (label_id): Set to NULL_TREE
19814 (wfl_string_buffer, wfl_append, wfl_to_string): New static global
19815 tree nodes.
19816 (this_or_super:): Fixed indentation.
19817 (statement:, statement_nsi:, statement_without_trailing_substatement:,
19818 statement_expression:): Removed call to RULE on all sub-rules.
19819 (switch_expression:, switch_labels:): New rules.
19820 (switch_statement:, switch_block:, switch_block_statement_groups:,
19821 switch_block_statement_group:, switch_labels:, switch_label:):
19822 Defined actions.
19823 (throw_statement:, synchronized_statement:, try_statement:):
19824 Defined temporary actions.
19825 (class_instance_creation_expression:): Call
19826 build_new_invocation. Fixed indentation.
19827 (field_access): Fixed indentation.
19828 (method_invocation): Likewise.
19829 (make_qualified_primary): Use THIS_EXPR.
19830 (resolve_qualified_expression_name): Use NEW_CLASS_EXPR. When
19831 resolving from SUPER, set *type_found.
19832 (qualify_ambiguous_name): Use NEW_CLASS_EXPR.
19833 (java_complete_tree): Removed unused local variable `location'. Case
19834 for SWITCH_EXPR, sharing code with LOOP_EXPR. Use NEW_ARRAY_EXPR,
19835 NEW_CLASS_EXPR, UNARY_PLUS_EXPR and THIS_EXPR. New string handling
19836 on MODIFY_EXPR: and all binary operator tree code cases. Removed
19837 STRING_CST: case. default: checks for patchable strings.
19838 (complete_function_arguments): Transform string constant or
19839 crafted StringBuffer if necessary.
19840 (build_method_invocation): Fixed comments.
19841 (build_new_invocation): New function.
19842 (patch_assignment): Call try_builtin_assignconv to figure a valid
19843 assignment conversion between builtin types.
19844 (try_builtin_assignconv): New function.
19845 (build_binop): Use URSHIFT_EXPR directly to call build.
19846 (operator_string): Use UNARY_PLUS_EXPR.
19847 (patch_binop): Use UNARY_PLUS_EXPR. Handle string concatenation
19848 operator.
19849 (do_merge_string_cste, merge_string_cste,
19850 string_constant_concatenation, build_string_concatenation,
19851 patch_string, patch_string_cst): New function.
19852 (build_unary_op): Use UNARY_PLUS_EXPR and CONVERT_EXPR.
19853 (patch_unaryop): Likewise. New test of valid ++/-- operands.
19854 (build_newarray_node): Use NEW_ARRAY_EXPR.
19855 (build_this): Use THIS_EXPR.
19856 (build_return): Enable debug information on return statement.
19857 (build_if_else_statement): Likewise.
19858 (complete_labeled_statement): Fixed related comment.
19859 (build_loop_body): Fixed comment.
19860 (build_bc_statement): Enable debug information on break/continue
19861 statements.
19862 (patch_bc_statement): Fixed typos. Handle SWITCH statement
19863 context.
19864 (patch_switch_statement, case_identity, java_expand_switch): New
19865 functions.
19866
19867 1998-09-21 Per Bothner <bothner@cygnus.com>
19868
19869 * buffer.h (BUFFER_INIT): New macro.
19870 * jcf-write.c (struct jcf_partial): New type. Put global stuff here.
19871 Pass (struct jcf_partial *state) to most functions.
19872 (jcf_block, jcf_relocation): New types.
19873 Support labels, branches, conditionals, loops.
19874
19875 1998-09-21 Tom Tromey <tromey@cygnus.com>
19876
19877 * decl.c (INT_TYPE_SIZE): Define as BITS_PER_WORD if not defined.
19878
19879 1998-09-21 Per Bothner <bothner@cygnus.com>
19880
19881 * decl.c (integer_type_node): Make it have INT_TYPE_SIZE.
19882 * verify.c (verify_jvm_instructions): Use int_type_not (32 bits),
19883 not integer_type_node (INT_TYPE_SIZ bits).
19884
19885 * parse.y (patch_if_else_statement): Accept promoted_boolean_type_node.
19886
19887 * jcf-reader.c (get_attribute): New HANDLE_EXCEPTION_TABLE hook.
19888 * jcf-dump.c (print_exception_table): New function.
19889 (disassemble_method): Better handling of wide instructions.
19890 Make more robust for bad input.
19891
19892 1998-09-30 Jeffrey A Law (law@cygnus.com)
19893
19894 * jcf-write.c (OP2, OP4): Use "_i", not "_I" to avoid problems on
19895 FreeBSD.
19896
19897 1998-09-17 Jeffrey A Law (law@cygnus.com)
19898
19899 * Makefile.in (jcf-dump, jvgenmain): Link in memmove.o too.
19900
19901 1998-09-17 Tom Tromey <tromey@cygnus.com>
19902
19903 * Makefile.in ($(PARSE_H)): Removed target.
19904
19905 1998-09-17 Jeffrey A Law (law@cygnus.com)
19906
19907 * Makefile.in (JAVA_OBJS): Add memmove.o
19908 (memmove.o): New target & rules.
19909
19910 1998-09-15 Tom Tromey <tromey@cygnus.com>
19911
19912 * expr.c (expand_invoke): Don't generate a call to the class init
19913 code.
19914
19915 1998-09-14 Jeffrey A Law (law@cygnus.com)
19916
19917 * Makefile.in: Add many missing dependencies.
19918 * buffer.c, class.c, constants.c, decl.c: Use system.h and toplev.h
19919 as appropriate.
19920 * except.c, expr.c, jcf-io.c jcf-parse.c, jcf-write.c: Likewise.
19921 * jvgenmain.c lang.c mangle.c typeck.c verify.c: Likewise.
19922
19923 1998-09-11 Per Bothner <bothner@cygnus.com>
19924
19925 * decl.c (complete_start_java_method): If method is static (and
19926 not private) call _Jv_InitClass.
19927 * expr.c (expand_invoke): Don't call build_class_init.
19928
19929 * jvspec.c (jvgenmain_spec): Fix spec for generated .o file.
19930
19931 1998-09-10 Jeffrey A Law (law@cygnus.com)
19932
19933 * Make-lang.in (GCJ): Define before using.
19934
19935 1998-09-09 Jeffrey A Law (law@cygnus.com)
19936
19937 * gjavah.c (java_no_argument): Renamed from no_argument to avoid
19938 losing due to namespace pollution in GNU getopt.h
19939
19940 1998-09-09 Tom Tromey <tromey@cygnus.com>
19941
19942 * Make-lang.in (java.all.build): Don't mention jvgenmain or gcjh.
19943 (java.all.cross): Likewise.
19944 (java.rest.encap): Likewise.
19945
19946 1998-09-08 Jeffrey A Law (law@cygnus.com)
19947
19948 * gjavah.c (print_class_decls): Fix thinko in arglist
19949 * jcv-io.c (find_classfile): Similarly.
19950
19951 1998-09-07 Jeffrey A Law (law@cygnus.com)
19952
19953 * Makefile.in (INCLUDES): Update for recent toplevel gcc changes.
19954
19955 1998-09-05 Tom Tromey <tromey@cygnus.com>
19956
19957 * Make-lang.in (java.maintainer-clean): Don't remove parse.h.
19958 (java.mostlyclean): Remove parse.c and parse-scan.c, not parse.h.
19959 * Makefile.in (PARSE_C): New macro.
19960 (PARSE_H): Likewise.
19961 (PARSE_SCAN_C): Likewise.
19962 ($(PARSE_C)): Target renamed from parse.c.
19963 ($(PARSE_SCAN_C)): Target renamed from parse-scan.c.
19964 (clean): Remove parse-scan.c as well.
19965 (parse.o): Depend on $(PARSE_C).
19966
19967 1998-09-05 Anthony Green <green@cygnus.com>
19968
19969 * README, license.terms: Removed.
19970
19971 * Make-lang.in, Makefile.in, class.c, config-lang.in, constants.c,
19972 decl.c, except.c, expr.c, gjavah.c, java-except.h, java-tree.h,
19973 javaop.def, javaop.h, jcf-dump.c, jcf-io.c, jcf-parse.c,
19974 jcf-reader.c, jcf-write.c, jcf.h, jvgenmain.c, jvspec.c,
19975 keyword.gperf, keyword.h, lang-options.h, lang-specs.h, lang.c,
19976 lex.c, lex.h, mangle.c, parse-scan.y, parse.h, parse.y, typeck.c,
19977 verify.c, zextract.c, zipfile.h: Fixed copyright assignment,
19978 and Java trademark attribution.
19979
19980 1998-09-04 Tom Tromey <tromey@cygnus.com>
19981
19982 * Makefile.in: Use gcjh, not gjavah.
19983 * config-lang.in (stagestuff): Use gcjh, not gjavah.
19984 * Make-lang.in: Changed gjavah to gcjh everywhere.
19985
19986 1998-09-03 Per Bothner <bothner@cygnus.com>
19987
19988 * gjavah.c: Support new -prepend -add -append flags.
19989 (print_method_info): Method is not virtual if class is final.
19990
19991 1998-09-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
19992
19993 * jv-scan.c: Fixed copyright assignment.
19994 * keyword.gperf: Likewise.
19995 * keyword.h: Likewise.
19996 * lex.c: Fixed copyright assignment.
19997 (java_lex): Push unicode back when parsing '<'.
19998 * lex.h: Fixed copyright assignment.
19999 * parse-scan.y: Likewise.
20000 * parse.h: Fixed copyright assignment.
20001 (build_debugable_stmt, complete_for_loop): New function prototypes.
20002 * parse.y: Fixed copyright assignment.
20003 (for_statement:): Call complete_for_loop. Set EXIT_EXPR to be
20004 size_zero_node when completing a loop with no exit condition.
20005 (for_statement_nsi:): Define action.
20006 (for_init:, for_update:): Return size_zero_node when empty.
20007 (declare_local_variables): Call build_debugable_stmt.
20008 (build_debugable_stmt): New function.
20009 (build_loop_body): Build debugable statement around loop
20010 condition part.
20011 (complete_loop_body): Take into account the debugable statement
20012 around the EXIT_EXPR.
20013 (complete_loop_body): New function.
20014 (patch_exit_expr): Fixed condition inversion.
20015
20016 1998-09-02 Tom Tromey <tromey@cygnus.com>
20017
20018 * Make-lang.in (jvspec.o): Use GCC_THREAD_FILE to compute correct
20019 name of thread define.
20020 * jvspec.c (THREAD_NAME): New macro.
20021 (GCLIB): Likewise.
20022 (THREADLIB): Likewise.
20023 (lang_specific_driver): Recognize attempt to link with thread
20024 library or gc library. Recognize -ljava on command line so it
20025 isn't linked against more than once.
20026
20027 1998-09-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
20028
20029 * parse-scan.y (report_main_declaration): Name of the class
20030 containing `main' can be a qualified name.
20031
20032 1998-08-31 Tom Tromey <tromey@cygnus.com>
20033
20034 * config-lang.in: Changed gjavac to gjc everywhere.
20035 * Make-lang.in: Changed gjavac to gjc everywhere.
20036
20037 1998-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
20038
20039 * Make-lang.in (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): New variable.
20040 (java.install-common:): Loop over JAVA_TARGET_INDEPENDENT_BIN_TOOLS
20041 and install the files.
20042 * Makefile.in (JAVA_OBJS_LITE): New variable.
20043 (compiler:): Now include jv-scan as a dependency.
20044 (../jv-scan$(exeext), parse-scan.c): New targets.
20045 (../jcf-dump$(exeext)): Was jcf-dump$(exeext) before.
20046 * config-lang.in (compilers): Removed gcj, gjavah from the list.
20047 * jcf-parse.c (parse_source_file): Call java_layout_classes and
20048 check for errors even if parse_only.
20049 * lex.c (java_init_lex): Reorganized and skip parts if JC1_LITE is
20050 defined.
20051 (yylex): New function. Uses java_lex body.
20052 (java_lex): Removed commented out statement. Remove local variable
20053 literal. Use SET_LVAL_NODE_TYPE and SET_LVAL_NODE where
20054 appropriate. Use macros FLOAT_TYPE_NODE, DOUBLE_TYPE_NODE,
20055 DCONST0, SET_FLOAT_HANDLER, SET_REAL_VALUE_ATOF,
20056 SET_LVAL_NODE_TYPE and GET_TYPE_PRECISION. Don't create STRING_CST
20057 if JC1_LITE is defined. Use BUILD_ID_WFL to build identifiers. Use
20058 SET_MODIFIER_CTX, SET_LVAL_NODE, BUILD_ID_WFL and GET_IDENTIFIER
20059 where appropriate.
20060 (java_lex_error): Empty if JC1_LITE is defined.
20061 (java_get_line_col): Return 0 if JC1_LITE is defined.
20062 * lex.h (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR,
20063 SET_MODIFIER_CTX): Moved into the section containing the macros
20064 conditionally defined by JC1_LITE.
20065 (BUILD_OPERATOR,BUILD_OPERATOR2): Just return the TOKEN
20066 argument if JC1_LITE is defined.
20067 (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, REAL_VALUE_ATOF,
20068 REAL_VALUE_ISINF, REAL_VALUE_ISNAN): Preset to values if JC1_LITE
20069 is defined.
20070 (DCONST0, SET_FLOAT_HANDLER, GET_IDENTIFIER, SET_REAL_VALUE_ATOF,
20071 FLOAT_TYPE, DOUBLE_TYPE, SET_MODIFIER_CTX, GET_TYPE_PRECISION,
20072 SET_LVAL_NODE, SET_LVAL_NODE_TYPE, BUILD_ID_WFL): New macros, set
20073 to different values according to JC1_LITE.
20074 * parse.h (int_fits_type_p, stabilize_reference): Prototype not
20075 declared if JC1_LITE set.
20076 (jdep_code, typedef struct _jdep, typedef struct _jdeplist): Not
20077 defined if JC1_LITE not set.
20078 (struct parser_ctx): Reorganized and skip the jc1 front end part
20079 if JC1_LITE set.
20080 (java_layout_classes): New function definition.
20081 (java_push_parser_context, java_init_lex, yyparse, yylex,
20082 yyerror): Prototype always declared. All other static function
20083 prototypes declared only if JC1_LITE is not set.
20084 * parse.y (yyparse, yylex, yyerror): No longer declared here. Now
20085 declared in parse.h.
20086 (java_layout_classes): New function.
20087 (java_complete_expand_methods): No longer layout the class here.
20088 * parse-scan.y: New file.
20089 * jv-scan.c: New file.
20090
20091 1998-08-25 Tom Tromey <tromey@cygnus.com>
20092
20093 * gjavah.c (main): Handle -friend option.
20094 (friend_specs): New global.
20095 (generate_access): Handle friend_specs.
20096 (process_file): Likewise.
20097 (MAX_FRIENDS): New macro.
20098 (friend_count): New global.
20099 (print_cxx_classname): Added `prefix' argument. Ignore arrays.
20100 Changed all callers.
20101
20102 1998-08-24 Per Bothner <bothner@cygnus.com>
20103
20104 * jcf-dump.c (process_class): Move JCF_FINISH use to main,
20105 (main): Handle processing all the entries of a named .zip archive.
20106 * jcf-io.c (jcf_trim_old_input): New function.
20107 * jcf.h (GET_u2_le,GET_u4_le,JCF_readu2_le,JCF_readu4_le): New macros.
20108
20109 1998-08-24 Per Bothner <bothner@cygnus.com>
20110
20111 * lang.c (flag_assume_compiled): Make default be on.
20112
20113 1998-08-21 Per Bothner <bothner@cygnus.com>
20114
20115 * jcf-dump.c: Add bunches of flags to control output more.
20116 (process_class): New function; support printing more than one class.
20117 (main): Support new --print-main and --javap flags.
20118 * jcf-reader.c (IGNORE_ATTRIBUTE): New hook.
20119 * jcf.h (CPOOL_INDEX_IN_RANGE): New macro.
20120
20121 1998-08-20 Per Bothner <bothner@cygnus.com>
20122
20123 Change mangling of dispatch table to match C++ vtable (w/thunks).
20124 * class.c (build_dtable_decl), java-tree.h: New function.
20125 (make_class_data): Call it.
20126 * decl.c (init_decl_processing): Likewise.
20127
20128 1998-08-19 Warren Levy <warrenl@cygnus.com>
20129
20130 * decl.c (init_decl_processing): Use _Jv_NewObjectArray, not
20131 soft_anewarray; adjust args passed.
20132 * expr.c (build_anewarray): Adjust args for soft_anewarray_node to
20133 match _Jv_NewObjectArray.
20134
20135 1998-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
20136
20137 * decl.c (push_labeled_block, pop_labeled_block): New functions.
20138 * expr.c (loopup_label): Call create_label_decl.
20139 (create_label_decl): New function.
20140 (java_lang_expand_expr): Call expand_start_bindings with argument
20141 set to zero.
20142 * java-tree.h Added space after PROTO in function declarations
20143 when necessary.
20144 (IS_FOR_LOOP_P, IS_BREAK_STMT_P): New macros.
20145 (create_label_decl, push_labeled_block): New function
20146 declarations.
20147 * lex.c (label_id): Initialize.
20148 (SUPER_TK, THIS_TK, RETURN_TK): Merged common actions in final
20149 switch.
20150 * parse.h Added space after PROTO in function declarations when
20151 necessary.
20152 (LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
20153 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
20154 LOOP_EXPR_BODY_BODY_EXPR, LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P,
20155 PUSH_LABELED_BLOCK, POP_LABELED_BLOCK, PUSH_LOOP, POP_LOOP): New
20156 macros.
20157 (struct parser_ctxt): New fields current_loop,
20158 current_labeled_block.
20159 (build_if_else_statement, patch_if_else_statement,
20160 add_stmt_to_compound, patch_exit_expr, build_labeled_block,
20161 generate_labeled_block, complete_labeled_statement,
20162 build_bc_statement, patch_bc_statement, patch_loop_statement,
20163 build_new_loop, build_loop_body, complete_loop_body): New function
20164 declarations.
20165 * parse.y (java_warning_count): New global variable.
20166 (label_id): New static variable.
20167 (BREAK_TK, CONTINUE_TK): Token tagged <operator>.
20168 (block:): Return size_zero_node when block is empty.
20169 (empty_statement:): Return size_zero_node.
20170 (statement:): Implement supplemental action when for_statement: is
20171 reduced.
20172 (label_decl:): New rule.
20173 (labeled_statement:): Rewritten using label_decl. Actions
20174 implemented.
20175 (labeled_statement_nsi:): Likewise.
20176 (if_then_statement): Actions implemented.
20177 (while_expression): New rule.
20178 (while_statement:): Rewritten using while_expression. Actions
20179 implemented.
20180 (while_statement_nsi:): Likewise.
20181 (do_statement_begin:): New rule.
20182 (do_statement:): Rewritten using do_statement_begin. Actions
20183 implemented.
20184 (for_statement:): Rewritten using for_begin. Actions implemented.
20185 (for_statement_nsi:): Likewise.
20186 (for_header:, for_begin:): New rules.
20187 (for_init:): Actions implemented.
20188 (statement_expression_list:, break_statement:,
20189 continue_statement:): Likewise.
20190 (yyerror): Count number of issued warning(s).
20191 (java_report_errors): Report error(s) and/or warning(s).
20192 (java_complete_class): Use build_java_argument_signature to
20193 recompute completed method signature.
20194 (java_check_regular_methods): New locals method_wfl and aflags.
20195 Use method_wfl instead of lookup_cl during error reports. Fixed
20196 indentation and modified some error messages. Use
20197 lang_printable_name in method instead of the DECL_NAME. New code
20198 to issue warnings on methods not overriding corresponding methods
20199 private to a different package.
20200 (java_method_add_stmt): Call add_stmt_to_compound.
20201 (add_stmt_to_compound): New function.
20202 (java_complete_tree): Handle LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR,
20203 LOOP_EXPR, EXIT_EXPR and COND_EXPR.
20204 (build_if_else_statement, patch_if_else_statement,
20205 build_labeled_block, generate_labeled_block,
20206 complete_labeled_statement, build_new_loop, build_loop_body,
20207 complete_loop_body, patch_loop_statement, build_bc_statement,
20208 patch_bc_statement, patch_exit_expr): New functions.
20209 * typeck.c (build_java_signature): Build argument signature before
20210 enclosing it in between parenthesis.
20211
20212 1998-08-17 Warren Levy <warrenl@cygnus.com>
20213
20214 * Make-lang.in (JAVA_SRCS): Created for dependencies * Makefile.in
20215 (JAVA_OBJS): Added reminder comment
20216
20217 1998-08-13 Nick Clifton <nickc@cygnus.com>
20218
20219 * gjavah.c (D_NAN_MASK): Append LL to the constant to force it to
20220 be interpreted as a long long.
20221
20222 1998-08-13 Warren Levy <warrenl@cygnus.com>
20223
20224 * decl.c (init_decl_processing): Use _Jv_InitClass, not
20225 soft_initialise_class. Use _Jv_NewMultiArray, not
20226 soft_multianewarray. Use _Jv_ThrowBadArrayIndex, not
20227 soft_badarrayindex. Use _Jv_CheckCast, not soft_checkcast. Use
20228 _Jv_CheckArrayStore, not soft_checkarraystore. Use
20229 _Jv_LookupInterfaceMethod, not soft_lookupinterfacemethod.
20230
20231 1998-08-12 Per Bothner <bothner@cygnus.com>
20232
20233 * decl.c, java-tree.h (this_identifier_node, super_identifier_node,
20234 length_identifier_node): New global tree node constants.
20235 * parse.y (kw_super, kw_this, kw_length): Removed globals.
20236 Replace uses by super_identifier_node etc.
20237 * lex.c (kw_super, kw_this, kw_length): Don't initialize.
20238
20239 * parse.y (resolve_field_access): Don't special-case ".length" if
20240 flag_emit_class_files.
20241 (patch_array_ref): Leave as ARRAY_REF if flag_emit_class_files.
20242 * jcf-write.c (generate_bytecode_insns): Handle ARRAY_REF opcode
20243 and ARRAY.length.
20244
20245 1998-08-11 Per Bothner <bothner@cygnus.com>
20246
20247 * decl.c (init_decl_processing): Remove unused method_type_node fields.
20248 * class.c (make_method_value): Remove init for removed fields.
20249
20250 * class.c (layout_class): Use build_java_argument_signature.
20251 * java-tree.h (TYPE_ARGUMENT_SIGNATURE): New macro.
20252
20253 * typeck.c (push_java_argument_signature): Removed. Merged into ...
20254 (build_java_argument_signature): Use TYPE_ARGUMENT_SIGNATURE cache.
20255 (build_java_signature): Don't use push_java_argument_signature.
20256
20257 * typeck.c (lookup_argument_method): New function.
20258 * parse.y (java_check_regular_methods): Use lookup_argument_method
20259 instead of lookup_java_method2 followed by lookup_java_method.
20260
20261 * parse.y (check_method_redefinition): Minor optimization.
20262
20263 * jcf-write.c (generate_bytecode_insns): Handle RETURN_EXPR,
20264 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, and RDIV_EXPR.
20265
20266 1998-08-10 Tom Tromey <tromey@cygnus.com>
20267
20268 * Make-lang.in (jc1$(exeext)): Don't depend on c-common.o or
20269 c-pragma.o.
20270
20271 * gjavah.c (java_float_finite): Use K&R-style definition.
20272 (java_double_finite): Likewise.
20273 (generate_access): Now returns void. Changed all callers.
20274 (last_access_generated): Removed.
20275 (process_file): Only make a single pass over the .class file.
20276
20277 1998-07-29 Per Bothner <bothner@cygnus.com>
20278
20279 * class.c (get_dispatch_table): Add extra dummy vtable entry,
20280 for compatibility for G++ (with -fvtable-thunks).
20281 * expr.c (build_invokevirtual): Add one for extra dummy vtable entry.
20282
20283 * gjavah.c (process_file): Use public inheritance for super-class.
20284
20285 1998-07-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
20286
20287 * lex.c (java_init_lex): Initialize ctxp->package.
20288 * parse.h (struct parser_ctxt): package and package_len replaced
20289 by tree package, an identifier node. Field method_decl_list is
20290 gone. Fixed comments.
20291 (lookup_field_wrapper, merge_qualified_name, not_accessible,
20292 class_in_current_package): New function prototypes.
20293 * parse.y (array_type:): Set class loaded flag on primitive type
20294 arrays.
20295 (package_declaration:): Assign ctxp->package to the
20296 identifier node.
20297 (method_invocation:): Handle invocation of method qualified by
20298 `super'.
20299 (single_type_import_declaration:): Removed ambiguity check.
20300 (java_pop_parser_context): New local variable `next'. Reset and
20301 set IMPORT_CLASSFILE_NAME flags on current and previous import
20302 list.
20303 (java_accstring_lookup): Use new local macro COPY_RETURN.
20304 (lookup_field_wrapper): New function.
20305 (parser_qualified_classname): Use merge_qualified_name.
20306 (parser_check_super_interface): Broaden error message.
20307 (do_resolve_class): Check for qualified class name in the current
20308 compilation unit if appropriate.
20309 (process_imports): Check for already defined classes.
20310 (check_pkg_class_access): Got rid of call to
20311 get_access_flags_from_decl.
20312 (java_complete_expand_methods): Call safe_layout_class based on
20313 the current class size.
20314 (make_qualified_primary): Build a WFL qualification on primary if
20315 none exists.
20316 (merge_qualified_name): New function.
20317 (make_qualified_name): Use merge_qualified_name.
20318 (resolve_expression_name): Use safe_lookup_field.
20319 (resolve_field_access): Got rid of call to get_access_flags_from_decl.
20320 (resolve_qualified_expression_name): Likewise. Check on resolved
20321 element accessibility.
20322 (not_accessible_p, class_in_current_package): New functions.
20323 (maybe_access_field): Got rid of call to get_access_flags_from_decl.
20324 (patch_method_invocation_stmt): Merged common pieces. Check
20325 accessibility of invoked method.
20326 (check_for_static_method_reference): Add returned type in error
20327 message.
20328 (invocation_mode): Get rid of bogus check on PRIVATE methods.
20329 (refine_accessible_methods_list): Merged two conditions in test.
20330 (java_complete_class): Sanity check on stabilize_ref gone.
20331 * zextract.c (read_zip_archive): Cast lseek second argument to long.
20332
20333 1998-07-28 Per Bothner <bothner@cygnus.com>
20334
20335 * class.c (hashUtf8String): Fix - use new JavaSoft specification.
20336
20337 1998-07-24 Tom Tromey <tromey@cygnus.com>
20338
20339 * gjavah.c (F_NAN): Removed.
20340 (F_NAN_MASK): New macro.
20341 (F_POSITIVE_INFINITY): Removed.
20342 (F_NEGATIVE_INFINITY): Likewise.
20343 (java_float_finite): Rewrote.
20344 (D_NAN_MASK): Renamed.
20345 (java_double_finite): Rewrote.
20346 (D_POSITIVE_INFINITY): Removed.
20347 (D_NEGATIVE_INFINITY): Likewise.
20348
20349 * jcf-dump.c (print_constant): [CONSTANT_Double, CONSTANT_Float]
20350 If verbose, print underlying representation of value in hex.
20351
20352 1998-07-24 Per Bothner <bothner@cygnus.com>
20353
20354 * buffer.h, buffer.c: New files.
20355 * Makefile.in (JAVA_OBJS): Add buffer.o.
20356
20357 Support locals variables and writing their debug entries to .class.
20358 * jcf-write.c: Simplify some by user new buffer type.
20359 (vode_buffer_grow): Removed.
20360 (struct localvar_info): New type.
20361 (localsvars, localvartable): New buffers.
20362 (localvar_alloc, localvar_free): New functions.
20363 (generate_bytecode_insns): Handle local variables.
20364 (generate_classfile): Write LocalVariableTable attribute.
20365
20366 1998-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
20367
20368 * jcf-io.c (open_in_zip): Check the zipfile magic number.
20369 * zipfile.h (ZIPMAGIC): New macro.
20370
20371 1998-07-24 Tom Tromey <tromey@cygnus.com>
20372
20373 * Makefile.in (gjavah.o): Updated dependencies.
20374 (jcf-dump.o): Likewise.
20375 (all.indirect): Use ../gjavah.
20376 (../gjavah$(exeext)): Likewise.
20377 (clean): Don't remove gjavah.
20378 (clean): Remove parse.c, not java/parse.c.
20379 * Make-lang.in (java): Added gjavah.
20380 (gjavah$(exeext)): New target.
20381 (GJAVAH_SOURCES): New macro.
20382 (java.all.build): Added gjavah.
20383 (java.all.cross): Likewise.
20384 (java.rest.encap): Likewise.
20385 * config-lang.in (compilers, stagestuff): Added gjavah.
20386
20387 1998-07-23 Tom Tromey <tromey@cygnus.com>
20388
20389 * gjavah.c (java_float_finite): New function.
20390 (java_double_finite): Likewise.
20391 (F_POSITIVE_INFINITY): New macro.
20392 (F_NEGATIVE_INFINITY): Likewise.
20393 (F_NAN): Likewise.
20394 (D_POSITIVE_INFINITY): Likewise.
20395 (D_NEGATIVE_INFINITY): Likewise.
20396 (D_NAN): Likewise.
20397 (print_field_info): Use java_float_finite and java_double_finite.
20398
20399 1998-07-23 Per Bothner <bothner@cygnus.com>
20400
20401 * parse.y (method_header): Name "this" implicit argument.
20402
20403 1998-07-22 Per Bothner <bothner@cygnus.com>
20404
20405 * jcf-write.c: Write out LineNumberTable attribute in .class file.
20406 (linenumber_buffer, linenumber_ptr, linenumber_limit): New statics.
20407 (put_linenumber): New function.
20408 (generate_bytecode_insns, generate_classfile): Write line numbers.
20409
20410 1998-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
20411
20412 * java-tree.h (CALL_EXPR_FROM_PRIMARY_P): Changed in PRIMARY_P.
20413 (lookup_name, build_known_method_ref, build_class_init,
20414 build_invokevirtual, invoke_build_dtable, match_java_method,
20415 build_field_ref, pushdecl_force_head, build_java_binop,
20416 binary_numeric_promotion, build_decl_no_layout,
20417 build_java_arrayaccess, build_newarray, build_anewarray,
20418 build_java_array_length_access, build_java_arraynull_check): New
20419 extern function prototypes.
20420 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
20421 JAVA_THIS_EXPR, CALL_CONSTRUCTOR_P): Macro definition moved in
20422 java-tree.h.
20423 * jcf-parse.c (init_outgoing_cpool): Set current_constant_pool_data_ref
20424 to NULL
20425 * jcf.h (jcf_out_of_synch): New extern function prototype.
20426 * parse.h: Static/global function implemented in parse.y
20427 prototyped and declarations moved at the end of the file.
20428 (DECL_P): Check that the argument isn't null.
20429 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
20430 JAVA_THIS_EXPR): No longer defined here. See java-tree.h
20431 (QUAL_DECL_TYPE): New macro.
20432 (PARAMS): Macro definition removed.
20433 * parse.y: (yyparse, yyerror): Use PROTO instead of PARAMS.
20434 (return_statement:): Call build_return.
20435 (field_access:): Call make_qualified_primary in sub rule.
20436 (method_invocation:): Build method invocation and call
20437 make_qualified_primary when processing primaries.
20438 (java_complete_class): Set IDENTIFIER_SIGNATURE_TYPE by calling
20439 get_type_from_signature.
20440 (java_check_regular_method): Extra integer 0 argument when calling
20441 lookup_java_method2.
20442 (lookup_java_interface_method2): Extra method DECL argument when
20443 calling lookup_java_interface_method2.
20444 (java_method_add_stmt): Set TREE_SIDE_EFFECTS on newly created
20445 COMPOUND_EXPR node.
20446 (java_complete_expand_method): Layout current class iff not
20447 already done. Don't process interface's methods.
20448 (java_complete_expand_method): Use super class only if it
20449 exists. Use current class otherwise.
20450 (make_qualified_primary): New function.
20451 (resolve_expression_name): Process qualified expression or
20452 expression from primary the same way.
20453 (resolve_expression_name): Two last arguments to
20454 resolve_field_access are now NULL_TREEs.
20455 (resolve_field_access): New variable is_static. Local field must
20456 be DECLs. is_static computed on field DECLs only. Append code in
20457 where_found to the field access if necessary. Use QUAL_DECL_TYPE
20458 to initialize field_type.
20459 (resolve_qualified_expression_name): New local variable,
20460 previous_call_static and is_static. Handle primaries with function
20461 calls, casts, array references and `this'. `super' now handled as
20462 `(super_class)this'. Use is_static to clarify boolean expressions.
20463 Added code to handle case where a proper handle is required to
20464 access a field. Use QUAL_DECL_TYPE where applicable.
20465 (maybe_access_field): New function.
20466 (patch_method_invocation_stmt): New arguments primary, where,
20467 is_static. Branch of the test on CALL_EXPR_FROM_PRIMARY_P
20468 deleted. Use `where' as a type to search from if specified. Check
20469 for static method reference where forbidden. Append primary or
20470 current_this to the argument list if not calling constructor nor
20471 static methods.
20472 (check_for_static_method_reference): New function.
20473 (patch_invoke): Layout the class on which new is done if
20474 necessary.
20475 (lookup_method_invoke): Changed format to report errors on
20476 methods.
20477 (qualify_ambiguous_name): New local variable this_found. Now
20478 handle things from primaries. Method call are considered
20479 expression names.
20480 (identical_subpath_p): NULL_TREE arguments to breakdown_qualified
20481 changed into NULLs.
20482 (not_initialized_as_it_should_p): Comply with the new DECL_P.
20483 (java_complete_tree): New case fo RETURN_EXPR. Process function
20484 call arguments in separate function.
20485 (complete_function_arguments): New function.
20486 (build_method_invocation): Don't use CALL_EXPR_FROM_PRIMARY_P
20487 anymore.
20488 (patch_assignment): Take the return function slot into account as
20489 a RHS. Distinguish assignment from a return.
20490 (valid_ref_assignconv_cast_p): Use build_java_argument_signature
20491 when checking methods in interfaces.
20492 (resolve_type_during_patch): NULL argument to unresolve_type_p
20493 instead of NULL_TREE.
20494 (patch_newarray): Fixed typo in comment.
20495 (buid_this): Build a WFL with `kw_this' instead of a FIELD_DECL.
20496 (build_return, patch_return): New functions.
20497 * typeck.c (lookup_java_constructor): Fixed typo in comment.
20498
20499 1998-07-21 Per Bothner <bothner@cygnus.com>
20500
20501 * constants.c (find_name_and_type_constant, find_fieldref_index,
20502 find_methodref_index): New methods.
20503 * expr.c (build_invoke_non_interface): If flag_emit_class_files,
20504 just return given method. Also, rename to build_known_method_ref.
20505 (expand_invoke): Rename call to build_invoke_non_interface.
20506 * java-tree.h, parse.h: Update prototype.
20507 * parse.y, decl.c, jcf-parse.c: Suppress calls to back-end functions
20508 (such as expand_expr_stmt) if flag_emit_class_files.
20509 * jcf-write.c (RESERVE, OP1, OP2, OP4, NOTE_PUSH, NOTE_POP,
20510 STACK_TARGET, IGNORE_TARGET): New macros.
20511 (code_buffer, code_ptr, code_limit, code_S, code_SP_max): New globals.
20512 (generate_bytecode_insn): New function to generate method's bytecode.
20513 (generate_classfile): Node generate Code attribute for a method.
20514 (code_buffer_grow, push_constant1, push_constant2, push_int_const,
20515 push_long_const, field_op, adjust_typed_op, maybe_wide):
20516 New functions used by generate_bytecode_insn.
20517
20518 * typeck.c (signature_include_return): Remove variable.
20519 (push_java_argument_signature, build_java_argument_signature): New.
20520 (build_java_signature): Use push_java_argument_signature.
20521 * parse.y: Use build_java_argument_signature instead of fiddling
20522 with signature_include_return.
20523
20524 1998-07-17 Tom Tromey <tromey@cygnus.com>
20525
20526 * gjavah.c (print_c_decl): Always generate JArray<>* for array
20527 types.
20528
20529 * Makefile.in (all.indirect): Added gjavah$(exeext).
20530 (gjavah$(exeext)): Added $(exeext).
20531 (clean): Likewise.
20532
20533 1998-07-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
20534
20535 * class.c (layout_class): Call to java_layout_parsed_class replace
20536 by safe_layout_class.
20537 * expr.c (build_java_array_length_access): Removed static storage
20538 class in the function definition.
20539 (build_java_arraynull_check): Likewise.
20540 Also fixed typos in two comments.
20541 * lex.c (java_init_lex): Initialize static global kw_length.
20542 (java_lex): Use BUILD_OPERATOR on RETURN_TK.
20543 * lex.h (JAVA_FLOAT_RANGE_ERROR): Add extra argument to
20544 java_lex_error.
20545 (JAVA_INTEGRAL_RANGE_ERROR): Likewise.
20546 * parse.h (resolve_no_layout): New static function declaration.
20547 (get_identifier_in_static): Declaration removed.
20548 (java_layout_parsed_class): Function name declaration changed to
20549 safe_layout_class.
20550 (build_newarray_node, patch_newarray, resolve_type_during_patch,
20551 not_initialized_as_it_should_p, build_this): New static function
20552 declarations.
20553 (pushdecl_force_head, build_java_binop, int_fits_type_p,
20554 binary_numeric_promotion, stabilize_reference,
20555 build_decl_no_layout, build_java_arrayaccess): Extern function
20556 declarations moved into their own section.
20557 (build_newarray, build_anewarray, build_java_array_length_access,
20558 build_java_arraynull_check): New extern function declarations.
20559 (UNARY_PLUS_EXPR): Macro renamed into JAVA_UNARY_PLUS_EXPR.
20560 (JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, JAVA_THIS_EXPR): New
20561 fake tree codes.
20562 (CALL_CONSTRUCTOR_P): New macro.
20563 * parse.y (kw_length): New static global tree node.
20564 (return_statement): Tagged <node>.
20565 (RETURN_TK): Tagged <operator>.
20566 (variable_declarator_id:): Build variable declaration with an
20567 empty initialization value if a syntax error was found in the
20568 initialization part of the variable declaration.
20569 (statement_without_trailing_substatement:): return_statement: now
20570 uses the default rule.
20571 (return_statement:): Temporarily fixed to return NULL_TREE.
20572 (primary_no_new_array:): Call build_this when THIS_TK was parsed.
20573 (class_instance_creation_expression:): Class creation rules now
20574 call build_method_invocation upon reduction.
20575 (array_creation_expression:): Rules call build_newarray_node upon
20576 reduction.
20577 (dim_exprs:): Build a list of dimension expressions.
20578 (dim_expr:): Store location of the OSB_TK in the dimension
20579 expression node.
20580 (method_invocation:): Added a new error rule.
20581 (build_unresolved_array_type): WFL argument may also be an array
20582 on a primitive type. Name of the argument changed to reflect this.
20583 (method_declarator): Insert argument type at the beginning of the
20584 argument type list and later reverse the list.
20585 (unresolved_type_p): Argument 'returned' may be optionally
20586 NULL_TREE.
20587 (java_layout_class_from_source): Function renamed
20588 safe_layout_class.
20589 (resolve_and_layout): Now call resolve_no_layout and
20590 safe_layout_class.
20591 (resolve_no_layout): New function.
20592 (purify_type_name): New function.
20593 (complete_class_report_errors): Call purify_type_name during error
20594 report on a type not found.
20595 (process_imports): error_found local variable doesn't need to be
20596 initialized to zero.
20597 (declare_local_variables): New local type_wfl. Fixed typo in error
20598 message. type_wfl assigned to unresolved type and used to register
20599 incomplete type. Build a WFL around the variable initialization
20600 statement so that debug info can be generated on it.
20601 (source_start_java_method): Reverse argument list after they've
20602 been processed.
20603 (current_this): New static global variable.
20604 (java_complete_expand_methods): Set current_this when appropriate.
20605 (resolve_expression_name): Build correct static and non static
20606 field access bearing a simple name.
20607 (resolve_field_access): Resolve the length field of arrays. Handle
20608 f.m() cases.
20609 (patch_method_invocation_stmt): Set the type of the method
20610 invocation to error_mark_node. This value is later overridden by a
20611 valid type, if any. Don't handle qualified constructor invocation
20612 as qualified method invocation. Call lookup_method_invoke with its
20613 new flag. It's no longer necessary to access the selected method
20614 as the value of a tree list. Handle constructor invocation.
20615 (patch_invoke): Reverse argument list when invoking non interface
20616 methods. Insert call to new as the first argument of the
20617 constructor.
20618 (invocation_mode): Return a INVOKE_STATIC is the invoked method is
20619 defined within a final class. Return INVOKE_STATIC if the invoked
20620 method is a constructor.
20621 (lookup_method_invoke): New lc argument is a flag to indicate a
20622 constructor lookup. Now handle constructor lookup. Choose the most
20623 specific method in case several were matching the invocation
20624 requirements. Return a method decl instead of a tree list featuring
20625 one single method decl element.
20626 (refine_accessible_methods_list): New lc flag argument to
20627 indicate that a constructor is being looked up.
20628 (not_initialized_as_it_should_p): New function.
20629 (java_complete_tree): Now process fake tree codes
20630 JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR and JAVA_THIS_EXPR. Call
20631 save_expr on resolved function call arguments. Case on
20632 UNARY_PLUS_EXPR changed into a case on JAVA_UNARY_PLUS_EXPR.
20633 (patch_assignment): LHS can be a field access expression. When
20634 dealing with reference, lhs_type is the promoted type of the
20635 rhs_type, not the RHS. Use not_initialized_as_it_should_p where
20636 applicable.
20637 (operator_string): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
20638 (patch_binop): Use not_initialized_as_it_should_p where
20639 applicable.
20640 (build_unaryop): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
20641 (patch_unaryop): Likewise. And use not_initialized_as_it_should_p
20642 where applicable.
20643 (resolve_type_during_patch): New function.
20644 (patch_cast): Call resolve_type_during_patch to resolve type and
20645 report error accordingly.
20646 (patch_array_ref): Use not_initialized_as_it_should_p where
20647 applicable. Array base expression is saved before being
20648 used. Promote the type of an array elements if it contains non
20649 builtin types.
20650 (build_newarray_node, patch_newarray, build_this): New functions.
20651
20652 1998-07-16 Tom Tromey <tromey@cygnus.com>
20653
20654 * gjavah.c (print_c_decl): UTF8_GET increments pointer; don't
20655 increment it in `for' statement.
20656 (print_field_info): If number is inf or nan, don't print it.
20657 (print_method_info): If method name is `delete', just ignore it.
20658 (print_c_decl): Special-case jstringArray.
20659
20660 * gjavah.c (help): New function.
20661 (no_argument): New function.
20662 (usage): Changed text.
20663 (main): Rewrote argument handling. Now handles -v, --help,
20664 --version.
20665 (version): New function.
20666 (found_error): New global.
20667 (main): Return found_error.
20668 (generate_access): Set found_error.
20669 (print_c_decl): Likewise.
20670
20671 1998-07-15 Tom Tromey <tromey@cygnus.com>
20672
20673 * gjavah.c (print_c_decl): Don't print "," when examining field.
20674 Skip type name when looking at "[L" types.
20675 (process_file): Now static.
20676 (generate_access): Now returns int.
20677 (last_access_generated): New global.
20678 (process_file): Clear last_access_generated; make multiple passes
20679 over the class.
20680 (print_field_info): Just return if generate_access returns true.
20681 (print_method_info): Likewise. Also, allow <init> functions to
20682 pass through.
20683 (print_c_decl): Added is_init argument. Print constructors
20684 properly.
20685 (print_cxx_classname): Use UTF8_GET to extract characters from
20686 string.
20687 (print_base_classname): New function.
20688 (print_class_decls): New function.
20689 (process_file): Use it.
20690 (utf8_cmp): New function.
20691
20692 1998-07-13 Nick Clifton <nickc@cygnus.com>
20693
20694 * lang-options.h: Format changed to match changes in gcc/toplev.c
20695 to implement a --help option.
20696
20697 1998-07-10 Brendan Kehoe <brendan@cygnus.com>
20698
20699 * decl.c (init_decl_processing): Revert change to dtable_type.
20700
20701 1998-07-09 Per Bothner <bothner@cygnus.com>
20702
20703 * java-tree.h (CLASS_P): Changed DECL_LANG_FLAG_7 -> TYPE_LANG_FLAG_4.
20704
20705 1998-07-08 Brendan Kehoe <brendan@cygnus.com>
20706
20707 * decl.c (init_decl_processing): Set CLASS_LOADED_P on dtable_type.
20708
20709 * lang.c (lang_init): Default flag_exceptions to 1, without
20710 checking to see if it's 2 first.
20711
20712 1998-07-08 Jeffrey A Law (law@cygnus.com)
20713
20714 * constants.c: Include "system.h".
20715 * decl.c: Likewise.
20716 * lang.c (flag_new_exceptions): Get via extern now.
20717 (lang_init_options): New functions. Turn on flag_new_exceptions.
20718
20719 1998-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
20720
20721 * lex.c (java_lex): Return 0 when we see an invalid character in
20722 the input.
20723
20724 * lex.c (java_read_char): Specify extra argument when calling
20725 java_lex_error.
20726 (java_read_unicode, java_parse_end_comment,
20727 java_parse_escape_sequence): Likewise,
20728 (java_lex): Specify extra argument when calling
20729 java_lex_error. Test that IDs are beginning with a legal character
20730 for IDs. Handle invalid characters with an error message and a
20731 call to java_lex_error.
20732 (java_lex_error): Adjust column position by new argument
20733 `forward'. Issue an error even if in the middle of reporting an
20734 other error.
20735
20736 1998-07-07 Brendan Kehoe <brendan@cygnus.com>
20737
20738 * jcf-io.c (find_class): Zero out BUFFER before we use it, since
20739 we don't explicitly put a null pointer when we're copying it.
20740
20741 1998-07-07 Tom Tromey <tromey@cygnus.com>
20742
20743 * gjavah.c (print_cxx_classname): New function.
20744 (super_class_name): Likewise.
20745 (print_super_fields): Removed.
20746 (in_super): Removed.
20747 (print_field_info): Never generate #defines.
20748 (print_c_decl): Changed generated types to match JNI. No longer
20749 print class name before method name.
20750 (print_method_info): Print "static" before static methods.
20751 Print "virtual" before non-final methods.
20752 (usage): Use exit(1), not exit(-1).
20753 (main): Likewise.
20754 (print_field_info): Use %.17g to print a double.
20755 (last_access): New globals.
20756 (process_file): Initialize last_access.
20757 (usage): Now static.
20758 (ACC_VISIBILITY): New define.
20759 (generate_access): New function.
20760 (print_field_info): Call it.
20761 (print_method_info): Likewise. Also, generate information for all
20762 methods, not just native methods. Return void.
20763 (print_c_decl): Return void.
20764 (print_field_info): Return void.
20765
20766 1998-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
20767
20768 * Makefile.in (JAVABISONFLAGS): Specific flag for bison when
20769 processing the jc1 grammar file. Prefix bison functions and
20770 variables with java_.
20771 (parse.c): Dependencies on parse.h and lex.h
20772 * expr.c (build_java_arrayaccess): Function now global.
20773 * java-tree.h: Comment reorganized to carry on previous
20774 classification effort.
20775 (RESOLVE_EXPRESSION_NAME_P, RESOLVE_PACKAGE_NAME_P,
20776 RESOLVE_TYPE_NAME_P): New flags on WFLs.
20777 * jcf-parse.c (parse_source_file): java_parse_source_file renamed
20778 java_parse (new prefix java_ generated by bison).
20779 (java_layout_parsed_class, java_register_parsed_class): Function
20780 call removed.
20781 (yyparse): Removed unnecessary call to init_outgoing_cpool.
20782 * lex.c (static tree wfl_op): Variable deleted.
20783 (java_init_lex): Initialize kw_super and kw_this. Initialize more
20784 ctxp fields to NULL_TREE.
20785 (java_lex): No longer create WFL for operators. Filename caching
20786 mechanism deleted. Call BUILD_OPERATOR for `.', '(', '['. Strings
20787 created as STRING_CST and later expanded. Removed extra argument
20788 to BUILD_OPERATOR and BUILD_OPERATOR2. Build operators for THIS
20789 and SUPER.
20790 (build_wfl_node): Removed code in comments.
20791 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): No longer build a WFL but
20792 store token and location data in the current bison token.
20793 * parse.h: Removed pre-processor based symbol prefixes hack. Moved
20794 static/extern function declaration at the beginning of the file.
20795 (struct qualification): Data structure definition deleted.
20796 (RESOLVE_CHAIN_REMAINDER): Macro definition deleted.
20797 (qualify_ambiguous_name): Function declaration modified. Function
20798 now returns nothing.
20799 (build_array_ref, patch_array_ref, make_qualified_name,
20800 resolve_qualified_expression_name, maybe_generate_clinit,
20801 resolve_field_access): New static function declarations.
20802 (build_java_arrayaccess): New extern function declaration.
20803 (enum { RESOLVE_EXPRESION_NAME...}): Enum deleted.
20804 (CALL_EXPR_PRIMARY): Macro deleted.
20805 (EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION): New macros.
20806 (struct parser_ctxt): Field initialized_final
20807 removed. non_static_initialized, static_initialized: New fields.
20808 * parse.y (static tree kw_super, static tree kw_this): New global
20809 static.
20810 (%union): tree wfl field of operator member replaced by int
20811 location. WFLs are non longer created for operators.
20812 (OSB_TK, DOT_TK, THIS_TK, SUPER_TK): Tagged <operator>.
20813 (qualified_name:): Now calls make_qualified_name to build the
20814 identifier.
20815 (type_declaration:): Consider generating <clinit> when class
20816 parsing completed.
20817 (variable_declarator:): Directly build an assignment node when the
20818 variable is initialized when declared.
20819 (this_or_super:): Build a WFL and set current location when THIS
20820 or SUPER are parsed.
20821 (expression_statement:): Wrap statement around a WFL.
20822 (primary_no_new_array:): Fixed typo. Changed value returned by
20823 THIS_TK because of its new type (temporary).
20824 (dim_exprs:): Temporary fix because of OSB_TK's new type.
20825 (field_access:): Build qualified name with SUPER.
20826 (method_invocation:): Fixed returned value because of SUPER's new
20827 type.
20828 (array_access:): Use OSB_TK location information.
20829 (post_increment_expression:, post_decrement_expression:,
20830 unary_expression:, pre_increment_expression:,
20831 pre_decrement_expression:, unary_expression_not_plus_minus:,
20832 cast_expression:, multiplicative_expression:,
20833 additive_expression:, shift_expression:, relational_expression:,
20834 equality_expression:, and_expression:, exclusive_or_expression:,
20835 inclusive_or_expression:, conditional_and_expression:,
20836 conditional_or_expression:, assignment:): Use new location/token
20837 information available on operators.
20838 (create_class): Set super_decl_type to NULL_TREE when processing
20839 java.lang.Object.
20840 (register_fields): Field initialization is now a MODIFY_EXPR
20841 node. Chain initialization code to the matching lists (according
20842 to the field declaration modifiers).
20843 (maybe_generate_clinit): New function.
20844 (method_header): Don't set method's DECL_NAME to a WFL when adding
20845 methods to java.lang.Object.
20846 (resolve_and_layout): Now can return NULL_TREE if the type
20847 resolution fails. Otherwise, return the class DECL instead of its
20848 TYPE.
20849 (check_method_redefinition): Don't patch method DECL_NAME if it
20850 belongs to java.lang.Object.
20851 (process_imports): Simply assign error_found to the value returned
20852 by check_pkg_class_access.
20853 (declare_local_variables): Don't use their init statements (if
20854 any) when parsing error were previously found. Reuse MODIFY_EXPR
20855 build during parsing as an init statement.
20856 (java_method_add_stmt): Now return the current method body.
20857 (java_layout_parsed_class, java_register_parsed_class): Functions
20858 removed.
20859 (java_complete_expand_methods): Initialize the constant pool on a
20860 per class basis. Layout the classes before expanding their method
20861 bodies. Don't try expand artificial constructor code if error were
20862 found. Make the classes data and register them if no error were
20863 found.
20864 (java_complete_expand_method): Retrieve an artificial constructor
20865 argument list before entering its body. Assign the top block to
20866 the artificial constructor function body and set types of declared
20867 blocks and compound statements to void. Walk method body if not an
20868 artificial constructor.
20869 (make_qualified_name, cut_identifier_in_qualified): New functions.
20870 (resolve_expression_name): Fixed comments. Save/restore the
20871 current class CLASS_LOADED_P flag value. Build non qualified
20872 static field access and handle qualified expression names.
20873 (resolve_field_access, resolve_qualified_expression_name): New
20874 functions.
20875 (patch_method_invocation_stmt): Use the new expression resolution
20876 scheme, calling resolve_field_access when the function call is
20877 resolved as an expression.
20878 (qualify_ambiguous_name): Function rewritten to work on qualified
20879 expression produced by make_qualified_name.
20880 (java_complete_tree): Promote type when function's argument are
20881 RECORD_TYPEs. While processing the MODIFY_EXPR case: don't patch
20882 the assignment to discover further errors if RHS is a expression
20883 name that fails to evaluate. Declare LHS initialized even though
20884 the assignment failed. Don't use the location variable and removed
20885 extra argument in patch function calls. Now handle the ARRAY_REF
20886 case and build internal string representation when STRING_CSTs are
20887 walked.
20888 (build_method_invocation): Don't wrap function call around a WFL.
20889 (build_assignment): Likewise. Use the operator location
20890 information.
20891 (patch_assignment): Handle array access LHSs. Handle error
20892 provenance, resulting in a better error report.
20893 (build_binop): Use op_location from operator as binop location
20894 information.
20895 (build_unaryop, build_incdec, build_cast): Likewise.
20896 (patch_binop): Extract location information from the node. Fixed
20897 typo in error message.
20898 (patch_unary_op): Extract location information from the node.
20899 (build_array_ref, patch_array_ref): New functions.
20900
20901 1998-07-01 Tom Tromey <tromey@cygnus.com>
20902
20903 * expr.c (expand_java_INSTANCEOF): Changed calling convention to
20904 match _Jv_IsInstanceOf.
20905 * decl.c (init_decl_processing): Use _Jv_NewArray, not
20906 soft_newarray. Use _Jv_IsInstanceOf, not soft_instanceof.
20907
20908 1998-06-30 Tom Tromey <tromey@cygnus.com>
20909
20910 * decl.c (init_decl_processing): Functions are now named
20911 _Jv_MonitorEnter and _Jv_MonitorExit, and return jint.
20912
20913 1998-06-29 Per Bothner <bothner@cygnus.com>
20914
20915 * java-tree.h (load_class): Add prototype.
20916 * class.c (is_compiled_class): Add missing arg to load_class.
20917 * expr.c (expand_java_NEW): Call load_class.
20918 * parse.y (process_import): Removed bogus use of void return value.
20919
20920 1998-06-25 Per Bothner <bothner@cygnus.com>
20921
20922 * decl.c, java-tree.h (soft_athrow_node): Renamed to soft_node.
20923 Function name is "_Jv_Throw" instead of "soft_athrow".
20924 * decl.c, java-tree.h (soft_new_node): Renamed to alloc_object_node.
20925 Function name is "_Jv_AllocObject" instead of "soft_new".
20926 Takes an extra parameter (object size).
20927 * expr.c: Update calls.
20928
20929 1998-06-24 Per Bothner <bothner@cygnus.com>
20930
20931 * lex.c (java_get_line_col): Handle end-of-file.
20932 * except.c (expand_end_java_handler): Handle null type (i.e. finally).
20933
20934 1998-06-24 Andrew MacLeod <amacleod@cygnus.com>
20935
20936 * lang.c (lang_init): Make -fexceptions the default.
20937 * except.c (maybe_start_try, maybe_end_try): Don't do anything if
20938 exception handling is not turned on.
20939
20940 1998-06-23 Andrew MacLeod <amacleod@cygnus.com>
20941
20942 * lang.c (flag_new_exceptions): Make this this default.
20943 * decl.c (end_java_method): Call emit_handlers.
20944 * except.c (method_init_exceptions): Set language code and version.
20945 (expand_start_java_handler): Enable exception, and call
20946 expand_eh_region_start.
20947 (expand_end_java_handler): Enable exception, and set up catch blocks.
20948 (emit_handlers): New routine to generate the saved handlers.
20949 * java-except.h (emit_handlers): Add prototype.
20950
20951 1998-06-12 Per Bothner <bothner@cygnus.com>
20952
20953 We used to have three different representations of the constant pool:
20954 the CPool structure, the tree_constant_pool, and the constructures
20955 used to build the Class object (which may need class and string
20956 constants) in compiled code. None were appropriate for compiling
20957 to .class files, so I did a major overhaul.
20958
20959 First, the tree_constant_pool array was removed. Things were
20960 modified to the CPool structure in the JCF could be used.
20961 Second, a "capacity" field was added to the CPool, and functions
20962 written to search for a matching constant, adding one if not found.
20963 The code that generated the Class object was changed to use a CPool.
20964 The actual TREE_LISTs used to build the CONSTRUCTORs used for
20965 the static Class object are now only in build_constants_constructor.
20966 Finally, I wrote code which can generate a .class file (including its
20967 constant pool) from the RECORD_TYPE of a class. This is a big step
20968 on the way to compiling Java source into .class files.
20969
20970 * jcf-write.c: New file. Writes out a RECORD_TYPE as a .class file.
20971 * Makefile.in (JAVA_OBJS): Added jcf-write.o.
20972
20973 * java-tree.h (CPOOL_UTF, CONSTANT_ResolvedFlag,
20974 CONSTANT_ResolvedString, CONSTANT_ResolvedClass): New macros.
20975 (NAME_AND_TYPE_NAME, NAME_AND_TYPE_SIGNATURE, COMPONENT_REF_NAME,
20976 COMPONENT_REF_NAME_AND_TYPE, COMPONENT_REF_SIGNATURE): Redefined.
20977 (COMPONENT_REF_CLASS): Replaced by COMPONENT_REF_CLASS_INDEX.
20978 (lang_type): Removed constant_pool field.
20979 * jcf.h (CPool): Renamed size to count. Added field capacity.
20980 (CPOO_COUNT, CPOOL_UINT, CPOOL_USHORT1, CPOOL_USHORT2,
20981 CPOOL_FINISH, CPOOL_INIT, CPOOL_REINIT): New macros.
20982 Rewrite some of the old JCF_XXX in terms of CPOOL_XXX macros.
20983
20984 * constants.c (current_constant_pool_tags, current_constant_pool_data,
20985 current_constant_pool_length), java-tree.h: Replaced by outgoing_cpool.
20986 * constants.c (build_constants_constructor): Use new outgoing_cpool.
20987 (set_constant_entry, find_constant1, find_constant2,
20988 find_class_constant, count_constant_pool_bytes, write_constant_pool,
20989 find_utf8_constant, find_class_or_string_constant): New functions.
20990
20991 * jcf-parse.c (load_class): Don't save/restore tree-constant_pool.
20992 (get_constant): Use current_jcf.cpool instead of tree_constant_pool.
20993 (give_name_to_class, get_class_constant): Likewise.
20994 * jcf-parse.c, java-tree.h (tree_constant_pool): Removed.
20995 (get_name_and_type_constant, get_ref_constant): Removed.
20996 * parse.h (parser_ctxt): Remove field tree_constant_pool.
20997 * parse.y: Don't save/restore tree_constant_pool.
20998 * verify.c (verify_jvm_instructions): Update for new approach.
20999 * expr.c (expand_invoke, expand_java_field_op): Likewise.
21000
21001 * lang-options.h: Added -femit-class-file, -femit-class-files.
21002 * lang.c (flag_emit_class_files), java-tree.h: New flag.
21003 (lang_f_options): Added "emit-class-file(s)".
21004
21005 * expr.c (build_java_arrayaccess): Generate more efficient array
21006 bounds checking, by using unsigned compare.
21007
21008 * expr.c (expand_invoke): Re-arrange error checks to make more robust.
21009
21010 1998-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
21011
21012 * parse.h: New comment on the handling of unresolved type
21013 identifiers. JDEPs are now part of the jdep_code enum.
21014 (typedef struct jdep): Now use enum jdep_code or int, depending on
21015 availability. Both are narrowed down to an 8 bits bitfield.
21016 (CALL_EXPR_PRIMARY): Fixed comment.
21017
21018 1998-06-10 Tom Tromey <tromey@cygnus.com>
21019
21020 * Make-lang.in (java): Added gjavac and jvgenmain.
21021 (java.start.encap): Depend on gjavac.
21022 (java.rest.encap): Depend on jvgenmain.
21023
21024 * Make-lang.in (JAVA_INSTALL_NAME): Name is gjavac, not c++.
21025 (JAVA_CROSS_NAME): Likewise.
21026 (java.all.build): Depend on jvgenmain and gjavac.
21027 (java.all.cross): Depend on jvgenmain and gjavac-cross.
21028 (jvgenmain$(exeext)): New target.
21029 (java.install-common): Wrote.
21030 * config-lang.in (compilers, stagestuff): Added gjavac and
21031 jvgenmain.
21032
21033 1998-06-10 Dave Brolley <brolley@cygnus.com>
21034
21035 * lang.c (lang_decode_option): New argc/argv interface.
21036
21037 1998-06-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
21038
21039 * ChangeLog: Fixed entries not compliant with the Gnu Coding Standard.
21040 * decl.c (build_decl_no_layout): New function.
21041 * expr.c (java_lang_expand_expr): Layout declarations found in
21042 blocks before they're pushed.
21043 * jcf-parse.c (load_class): Save current line when parsing class
21044 file.
21045 (parse_source_file): Register class before expanding their
21046 methods.
21047 * lang.c (put_decl_node): Produce `null' when `void *' is
21048 processed.
21049 * lex.c (static tree wfl_op): New static global, for error report
21050 on casts.
21051 (java_init_lex): wfl_operator and wfl_op initialized
21052 here. Filename caching added for wfl_op. Return wfl_op when `(' is
21053 parsed.
21054 * parse.h (build_unaryop, build_incdec, patch_unaryop, build_cast,
21055 patch_cast, valid_ref_assignconv_cast_p, can_cast_to_p,
21056 build_unresolved_array_type): New static function definitions.
21057 (build_decl_no_layout): New extern function declared.
21058 (OBSOLETE_MODIFIER_WARNING): Report error only if the WFL of the
21059 faulty modifier exists.
21060 (TYPE_INTERFACE_P, TYPE_CLASS_P): New macros.
21061 (ERROR_CAST_NEEDED_TO_INTEGRAL): Error message tuned.
21062 (UNARY_PLUS_EXPR): New fake operator.
21063 (struct parser_ctxt): New field osb_number.
21064 * parse.y (static tree wfl_operator): New static WFL for operator
21065 bound error messages.
21066 (DECR_TK, INCR_TK): Moved.
21067 (OP_TK): Tagged <operator>.
21068 (array_type:): Now call build_unresolved_array_type.
21069 (dim_expr:): Count the number of '[' seen.
21070 (post_increment_expression, post_decrement_expression,
21071 pre_increment_expression, pre_decrement_expression,
21072 unary_expression_not_plus_minus, unary_expression:): Actions are
21073 now building the corresponding unary expressions.
21074 (cast_expression:): Actions are now building cast expressions.
21075 (build_unresolved_array_type): New function.
21076 (create_interface): Reset the number of declared interfaces.
21077 (create_class): Likewise.
21078 (method_header): Methods declared within the scope of an interface
21079 are now implicitly set public and abstract.
21080 (java_complete_class): Variable's and parameter's type are patched
21081 with a promoted type.
21082 (declare_local_variables): Resolved non builtin types are promoted
21083 before being used to build a variable decl. Removed type patch
21084 posted on variable initialization statement.
21085 (source_start_java_method): Use build_decl_no_layout to build the
21086 decl of a parameter of incomplete type.
21087 (java_register_parsed_class): Process interfaces too. Call
21088 rest_of_decl_compilation on each processed class declarations.
21089 (java_complete_expand_methods): Don't attempt to expand things in
21090 interfaces.
21091 (java_complete_tree): Process CONVERT_EXPR, even though it always
21092 has a type. Propagate error_mark_node to node's type too. Promote
21093 method's call argument type and return error_mark_node if
21094 argument's completion didn't work. MODIFY_EXPR can have a WFL as a
21095 RHS. Fixed bug in the handling of bogus RHS of a fixed type. Now
21096 handle unary operator nodes.
21097 (build_assignment): Added comment.
21098 (print_int_node): New function.
21099 (patch_assignment): New second argument. New error handling. Use
21100 print_int_node. Handle references. Use can_cast_to_p to issue
21101 different error message according to the context and check upon
21102 the initialization of the RHS.
21103 (can_cast_to_p, valid_ref_assignconv_cast_p): New functions.
21104 (operator_string): Handle more operators.
21105 (patch_binop): No longer use a function static
21106 wfl_operator. Improved error message on shift distance.
21107 (build_unaryop, build_incdec, build_cast, patch_unaryop,
21108 patch_cast): New functions.
21109
21110 1998-06-05 Per Bothner <bothner@cygnus.com>
21111
21112 * jvspec.c: New file.
21113 * Make-lang.in: New rules to build gjavac from jvspec.c and ../gcc.c.
21114
21115 * java-tree.h (identifier_subst): Add declaration.
21116
21117 1998-06-04 Tom Tromey <tromey@cygnus.com>
21118
21119 * jvgenmain.c (main): Generate call to JvRunMain.
21120
21121 * class.c (make_class_data): Push value for "sync_info" field.
21122 * decl.c (init_decl_processing): Push "sync_info" field.
21123
21124 1998-06-03 Per Bothner <bothner@cygnus.com>
21125
21126 * typeck.c (build_java_array_type): Set TYPE_NAME to actual
21127 Java (source) name, not signature.
21128 Set TYPE_ALIGN to (at least) that of element_type.
21129
21130 1998-06-02 Per Bothner <bothner@cygnus.com>
21131
21132 * class.c: Moved classname-mangling-rekated code to ...
21133 * mangle.c: ... this new file.
21134 * jvgenmain.c: New program (needs mangle.c) to generate main program.
21135 * Makefile.in: Update for above changes.
21136
21137 1998-06-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
21138
21139 * expr.c (truthvalue_conversion): Convert integer and floating
21140 point value to their truth value.
21141 * lex.c (java_lex): Handle the `null' literal.
21142 * parse.h (JREFERENCE_TYPE_P, DECL_P): New macros.
21143 (ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
21144 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED):
21145 New macros.
21146
21147 * parse.y: Reorganization/documentation on token declaration.
21148 (binop_lookup[]): New added new tree codes.
21149 (relational_expression): Build corresponding binary operators.
21150 (equality_expression, conditional_and_expression,
21151 conditional_or_expression): Likewise.
21152 (java_complete_class): Fix crash in debug message.
21153 (java_complete_tree): Check initialization of method call
21154 arguments. Further bogus node evaluation to detect more error
21155 during assignments. Handles more binary operators.
21156 (patch_assignment): Use DECL_P.
21157 (build_binop): Fix crash when using URSHIFT_EXPR, a Java only tree
21158 code.
21159 (operator_string): Handle more case. Compacted source.
21160 (patch_binop): Changed function comment. Checking for
21161 uninitialized first operand takes the compound assignment into
21162 account and uses DECL_P. Checking for uninitialized second operand
21163 delayed to routine's end. Use macros to issue type bound error
21164 messages and issue messages on both operands if their types are
21165 different. Force fixed type into node. Handle all binary
21166 operators.
21167
21168 1998-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
21169
21170 * java-tree.h (COMPOUND_ASSIGN_P, INITIALIZED_P): New macros.
21171 * lex.c (java_lex): Use BUILD_OPERATOR and BUILD_OPERATOR2 to
21172 build operator node and return tokens.
21173 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): New macros.
21174 * parse.h (java_complete_tree): Changed returned type in prototype.
21175 (build_method_invocation, build_assignment, patch_assignment,
21176 patch_binop): New static function declarations.
21177 (JFLOAT_TYPE_P, JNUMERIC_TYPE_P, JPRIMITIVE_TYPE_P, JSTRING_P,
21178 BUILD_EXPR_WFL): New macros.
21179 * parse.y (enum tree_code binop_lookup[]): New static for token to
21180 TREE_CODE lookup.
21181 (%union): Parser union has new sub-structure `operator'.
21182 (ASSIGN_TK, MULT_ASSIGN_TK, DIV_ASSIGN_TK, REM_ASSIGN_TK,
21183 PLUS_ASSIGN_TK, MINUS_ASSIGN_TK, LS_ASSIGN_TK, SRS_ASSIGN_TK,
21184 ZRS_ASSIGN_TK, AND_ASSIGN_TK, XOR_ASSIGN_TK, OR_ASSIGN_TK,
21185 ASSIGN_ANY_TK): Tokens tagged `operator'.
21186 (EQ_TK, GTE_TK, ZRS_TK, SRS_TK, GT_TK, LTE_TK, LS_TK, BOOL_AND_TK,
21187 AND_TK, BOOL_OR_TK, OR_TK, INCR_TK, PLUS_TK, DECR_TK, MINUS_TK,
21188 MULT_TK, DIV_TK, XOR_TK, REM_TK, NEQ_TK, NEG_TK, REL_QM_TK,
21189 REL_CL_TK, NOT_TK, LT_TK): Tokens tagged `operator'.
21190 (assignment_operator:): Rule tagged `operator'.
21191 (expression_statement:): Re-installed default rule.
21192 (method_invocation:): Sub rules call build_method_invocation.
21193 (postfix_expression:): Don't attempt to resolve name here. Just
21194 return an ID.
21195 (multiplicative_expression:): Sub-rules build corresponding binop
21196 expression node.
21197 (additive_expression:, shift_expression:, and_expression:,
21198 exclusive_or_expression:, inclusive_or_expression:): Likewise.
21199 (assignment:): Sub rule invoke build_assignment.
21200 (assignment_operator:): Default rules on sub rules.
21201 (force_error): Added documentation on this variable.
21202 (declare_local_variables): Build initialization calling
21203 build_assignment.
21204 (expand_start_java_method): Removed unused rtx declaration. Mark
21205 arguments as already initialized.
21206 (java_method_add_stmt): Type of built COMPOUND_EXPR set to NULL.
21207 (java_complete_expand_methods): Don't process next method if
21208 completion of the previous one triggered errors.
21209 (java_complete_expand_method): Call source_end_java_method if no
21210 error were found during completion.
21211 (resolve_expression_name): Use IDENTIFIER_LOCAL_VALUE to retrieve
21212 locals declaratilon. Handle names found within a class. Return
21213 error_mark_node when things aren't found.
21214 (patch_method_invocation_stmt): Return error_mark_node on failures.
21215 (patch_invoke): Removed unused local. Return the correct node.
21216 (java_complete_tree): Now returns a value. The BLOCK section binds
21217 local identifiers and the type of a BLOCK is now void. Assign the
21218 result of operand completion on COMPOUND_EXPR. Assign the
21219 encapsulated node of a WFL to the result of its completion, except
21220 when the node is an identifier. Now handle MODIFY_EXPR and several
21221 binary operators. Return error_mark_node on errors.
21222 (build_method_invocation, build_assignment, patch_assignment,
21223 build_binop, operator_string, patch_binop): New functions.
21224 * typeck.c (binary_numeric_promotion): New function.
21225
21226 1998-05-21 Per Bothner <bothner@cygnus.com>
21227
21228 * class.c (identifier_subst): New convenience wrapper for ident_subst.
21229 Replace most uses of ident_subst by identifier_subst.
21230
21231 * class.c (push_class_static_dummy_field): Removed function.
21232 (build_class_ref): Find Class object decl by looking up "CNAME.class",
21233 instead of looking got "class" static field. Create that decl here.
21234 (class_identifier_node): Removed; no longer needed.
21235 (init_class_processing): Don't init class_identifier_node.
21236 * jcf-parse.c (jcf_parse): Don't call push_class_static_dummy_field.
21237 Do nreverse 0 times (instead of twice) for Object and Class.
21238 * parse.y (java_layout_parsed_class): No push_class_static_dummy_field.
21239
21240 1998-05-20 Per Bothner <bothner@cygnus.com>
21241
21242 * jcf-parse.c (parse_class-file): Set lino to smallest line number,
21243 while initializing linenumber_count and linenumber_table.
21244 Do it before init_function_start (which calls emit_line_note).
21245 * expr.c (expand_byte_code): Don't need to clear lineno here.
21246
21247 1998-05-18 Tom Tromey <tromey@cygnus.com>
21248
21249 * class.c (append_gpp_mangled_type): If `qualifications' is >=9,
21250 then mangle number as _N_.
21251
21252 * class.c (mangle_class_field): New function.
21253 (build_class_ref): Set assembler name of class reference using
21254 mangle_class_field.
21255 (push_class_static_dummy_field): Likewise.
21256
21257 1998-05-17 Michael Tiemann <tiemann@cygnus.com>
21258
21259 * parse.y (source_start_java_method): Use TREE_SET_CODE instead
21260 of assigning to TREE_CODE. The latter method exploits a feature
21261 of GCC that is not ANSI compliant.
21262
21263 1998-05-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
21264
21265 * decl.c (pushdecl_force_head): New function.
21266 (pushlevel): Removed conditional printf.
21267 (complete_start_java_method): Don't enter local variable scope if
21268 function is compiled from source code.
21269 * expr.c: parse.h now included
21270 (java_lang_expand_expr): New function.
21271 * jcf-io.c (find_class): Use SOURCE_FRONTEND_DEBUG instead of
21272 printf. Terminate buffer when doing directories.
21273 * jcf-parse.c (parse_source_file): Call lang_init_source before
21274 parsing and before code generation.
21275 * jcf.h (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally
21276 use printf if the macro is defined.
21277 * lang.c (lang_init): Install lang_expand_expr hook on
21278 java_lang_expand_expr.
21279 (java_dummy_print): New function.
21280 (lang_init_source): New function.
21281 * lex.c (java_lex): Remember location of an opening brace at the
21282 second nesting level.
21283 (java_is_eol): Unget character seen after a CR if it is EOF.
21284 * parse.h: Now includes lex.h
21285 (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally use
21286 printf if the macro is defined.
21287 (expand_start_java_method, build_expr_block, enter_block,
21288 exit_block, lookup_name_in_blocks, maybe_absorb_scoping_blocks):
21289 New static function declarations.
21290 (pushdecl_force_head): New extern function declaration.
21291 (INCOMPLETE_TYPE_P): New macro.
21292 (JDEP_PARM, JDEP_TYPE): New entries in JDEPs enum.
21293 (BLOCK_CHAIN_DECL, BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY,
21294 BLOCK_EXPR_ORIGIN): New macros.
21295 (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
21296 DECL_SOURCE_LINE_LAST): New macros.
21297 (struct parser_ctxt): Removed field current_method_decl, redundant
21298 with the field current_function_decl. Added fields
21299 first_ccb_indent1 and pending_block.
21300 * parse.y (method_body, literal, INT_LIT_TK, FP_LIT_TK,
21301 BOOL_LIT_TK, CHAR_LIT_TK, STRING_LIT_TK, NULL_TK, VOID_TK): Rules
21302 tagged <node>
21303 (SOURCE_FRONTEND_DEBUG): Used as macro accepting varargs.
21304 (compilation_unit:): Cosmetic on sub rule.
21305 (type_declaration:): Cosmetic on sub rules. Added an error rule.
21306 (variable_initializer:): Installed default rule on expression:.
21307 (method_declaration:): method_header: starts a new
21308 method. method_body: installs the function body, absorbs blocks
21309 emitted for temporary variable scopings, pops function's body block
21310 and merges function's last statement lineno in DECL_SOURCE_LINE.
21311 (method_body:): Installed default rules.
21312 (block:): Call enter_block when an opening brace is seen. Absorb
21313 scoping blocks and call exit_block when a closing brace is seen.
21314 (block_statement:): Cosmetic changes.
21315 (method_invocation:): Create WFL around CALL_EXPR node.
21316 (patch_stage): Added comment around definition.
21317 (method_header): Try to use first_ccb_indent1 as the first line of
21318 the method, so BP debug info are emitted at the first opening
21319 brace of the function. If the function has no body, use the
21320 location of the function's name. Override currently defined method
21321 name with the matching WFL so we can point redefinition errors
21322 using the location where the function's name was declared.
21323 (check_abstract_method_header): Interprets DECL_NAME as an
21324 identifier or as a WFL, accordingly.
21325 (java_complete_class): New cases for JDEP_TYPE and JDEP_PARM.
21326 (check_method_redefinition): Use DECL_NAME as a WFL. Extract
21327 location and name information out of it and reinstall DECL_NAME to
21328 its original identifier node value.
21329 (lookup_cl): Use DECL_SOURCE_LINE_FIRST (first line of the
21330 function's source code).
21331 (read_import_dir): Test the value returned by find_class and issue
21332 a fatal accordingly.
21333 (declare_local_variables): Push a new block for the scope of the
21334 new variable(s) if code has been already generated at that nesting
21335 level. Pinpoint redefinition errors using the variable id
21336 WFLs. Generate initialization code if necessary. If the variable
21337 type is incomplete, register a patch on its decl.
21338 (source_start_java_method): Rewritten. Define a new block for the
21339 function's parameters. Build parameter decl out of function's
21340 arguments and register them for a patch if their types are
21341 incomplete.
21342 (expand_start_java_method): Includes the part of
21343 source_start_java_method that was pushing the parameter decls and
21344 completing the method start code.
21345 (source_end_java_method): Removed call the expand_end_bindings and
21346 poplevel (already taken care of). Reinstall function's arguments
21347 and get function's last line of code before calling
21348 expand_function_end.
21349 (java_method_add_stmt): New comment before the function's
21350 code. Complement the second operand of the current COMPOUND_EXPR
21351 if necessary.
21352 (java_complete_expand_methods): Don't generate debug info on line
21353 zero when expanding a generated constructor.
21354 (java_complete_expand_method): Set start and end line numbers for
21355 a artificially generated constructor to one and manually call
21356 enter_block and exit_block when defining it. For all methods:
21357 expand function's start calling the new expand_start_java_method
21358 and invoke java_complete_tree on the effective method's body, if
21359 any.
21360 (resolve_expression_name): Now use lookup_name_in_blocks to search
21361 local variable decls and print out an error when variables are
21362 undefined.
21363 (patch_method_invocation_stmt): Inserted comment before the
21364 function's code.
21365 (lookup_method_invoke): Chain method's arguments using chainon
21366 with the current arg list as a second argument. Inserted missing
21367 IDENTIFIER_POINTER when reporting an error on methods not found.
21368 (refine_accessible_methods_list): Don't retain constructors.
21369 (patch_arguments): Function removed.
21370 (java_complete_tree): Inserted comment before the function's
21371 code. New case for BLOCKs. Moved the WFL case a bit
21372 further. Complete function's arguments.
21373 (build_expr_block, enter_block, exit_block, lookup_name_in_blocks,
21374 maybe_absorb_scoping_blocks): New functions.
21375
21376 1998-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
21377
21378 * jcf-io.c (find_class): Reset jcf->java_source after JCF_ZERO, if
21379 previously set.
21380 * jcf-parse.c (parse_source_file, java_error_count): New forward
21381 and extern declarations.
21382 (java_parse_abort_on_error): Macro moved.
21383 (jcf_parse_source): fatal called if fopen fails. Now calls
21384 parse_source_file.
21385 (parse_source_file): New parse_only parameter. Reflects the
21386 elimination of the second pass.
21387 (yyparse): parse_source_file called with argument set to 0.
21388 * jcf.h (JCF_ZERO): Sets java_source to zero.
21389 * lex.c (java_init_lex): pass argument is gone. Function modified
21390 to be called once during the analysis of a file.
21391 (java_unget_unicode): Fixed typo in fatal message.
21392 (java_get_line_col): Likewise.
21393 (java_lval): Likewise. String literals no longer built during
21394 second pass.
21395 * lex.h (JAVA_COLUMN_DELTA): Take the tabulation character into
21396 account.
21397 * parse.h (MODIFIER_WFL): New macro.
21398 (parse_check_super, parser_check_super_interface): Now return int.
21399 (parser_chain_incomplete_item, not_builtin_p,
21400 complete_method_decl): Declarations removed.
21401 (build_method_invocation_stmt, build_invoke): Renamed using the
21402 `patch' instead of `build'
21403 (register-incomplete_type, obtain_incomplete_type,
21404 java_complete_tree, java_complete_expand_method,
21405 unresolved_type_p, create_jdep_list): New function declarations.
21406 (IC_TYPE, IC_DEPEND, DEPEND_DECL, DEPEND_WFL, BEGIN_ONLY_PASS,
21407 END_ONLY_PASS, ELSE_ONLY_PASS): Macro deleted.
21408 (jdep): New typedef on new struct _jdep.
21409 (JDEP_DECL, JDEP_DECL_WFL, JDEP_KIND, JDEP_SOLV, JDEP_WFL,
21410 JDEP_MISC, JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN,
21411 JDEP_TO_REVOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
21412 JDEP_RESOLVED_P): New macros.
21413 (JDEP_NO_PATCH, JDEP_SUPER, JDEP_FIELD, JDEP_METHOD,
21414 JDEP_METHOD_RETURN, JDEP_METHOD_END, JDEP_INTERFACE,
21415 JDEP_VARIABLE): New enum values and jdep kinds.
21416 (jdeplist): New typedef on struct _jdeplist.
21417 (CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN, JDEP_INSERT): New
21418 macros.
21419 (CALL_EXPR_PRIMARY): New macro.
21420 (struct parser_ctxt): Fields java_pass, current_method_decl,
21421 method_decl_list deleted. New field jdeplist.
21422 (INCOMPLETE_P): Macro deleted.
21423 * parse.y (single_type_import_declaration:): Removed pass switch.
21424 (type_import_on_demand_declaration): Likewise.
21425 (field_declaration:): Removed pass switch on all sub rules.
21426 (class_declaration:): Call the complete_class_decl removed on
21427 class_body rules.
21428 (method_declaration:): Removed second pass switch. No longer chain
21429 methods decl when method_header reduced.
21430 (method_header:): Sub rules no longer depend on pass switch.
21431 (method_declarator:): Likewise.
21432 (method_body:): Likewise.
21433 (abstract_method_declaration:): Likewise.
21434 (block_statement:): Likewise.
21435 (local_variable_declaration:): Likewise.
21436 (argument_list:): Likewise.
21437 (method_invocation:): Likewise. Call to build_method_invocation_stmt
21438 removed. Partial CLASS_EXPR tree node built instead.
21439 (postfix_expression:): Removed pass switch on all sub rules.
21440 (java_pop_parser_context): Free classd_list content.
21441 (yyerror): Call obstrack_grow0 to finalize error message.
21442 (check_class_interface_creation): Comment modified to reflect new
21443 returned value meaning. Removed second pass switch. Return 1 if an
21444 error was found, 0 otherwise. Adjust pointer on filename if a
21445 leading path separator was found.
21446 (maybe_create_class_interface_decl): Removed first pass switch
21447 when linking the class decl to the class_list. Install a new
21448 jdep_list for the class.
21449 (add_superinterfaces): List of unresolved interfaces is
21450 gone. Unresolved interfaces are directly added to the current
21451 dependencies list.
21452 (create_interface): Second pass shortcut removed.
21453 ctpx->modifier_ctx access through MODIFIER_WFL.
21454 (create_class): Second pass shortcut removed. Call to
21455 register_incomplete_type replaces the call to
21456 parser_chain_incomplete_item.
21457 (complete_class_decl): Function removed.
21458 (duplicate_declaration_error): New way of retrieving redeclared
21459 item type.
21460 (register_fields): Call to lookup_modifier_cl replaced by
21461 MODIFIER_WFL. New way of handling unresolved type, using
21462 unresolved_type_p and obtain_incomplete_type.
21463 register_incomplete_type replaces call to parser_chain_incomplete_item.
21464 (patch_stage): New static global variable.
21465 (method_header): New way of handling unresolved type, using
21466 unresolved_type_p and obtain_incomplete_type. patch_stage used to
21467 indicates that the method decl needs to be patched.
21468 (check_abstract_method_header): Call to lookup_modifier_cl
21469 replaced by MODIFIER_WFL.
21470 (method_declarator): Incomplete argument type are registered
21471 calling register_incomplete_type. Patch on the declared method is
21472 issued in that case.
21473 (unresolved_type_p): New function.
21474 (parser_check_super_interface): New comment to reflect function's
21475 modified returned type (int). Function and has a new argument
21476 this_wfl. Call to parse_error_context uses this_wfl instead of
21477 relying on lookup_cl.
21478 (parser_check_super): Comment reflects function's new returned
21479 type (int). Function returns nonzero value on error.
21480 (create_jdep_list, reverse_jdep_list, obtain_incomplete_type,
21481 register_incomplete_type, jdep_resolve_class): New functions to
21482 handle incomplete types in declarations.
21483 (java_complete_class): Rewritten to work with the new incomplete
21484 type handling scheme.
21485 (complete_class_report_errors): Likewise.
21486 (complete_method_decl): Removed: it jobs is now handled by
21487 java_complete_class.
21488 (do_resolve_class): Class loaded in not already loaded and not
21489 found in Java source code.
21490 (java_check_regular_methods, java_check_abstract_methods): Don't
21491 call complete_method_decl anymore.
21492 (lookup_modifier_cl, not_builtin_p): Functions deleted.
21493 (read_import_dir): Got rid of the pass number dependency.
21494 (declare_local_variables): New handling of unresolved types (patch
21495 issued).
21496 (source_start_java_method): New parameter level. Function called
21497 with level set to 1 when argument types are potentially
21498 unresolved. Called to complete the job with level set to 2 once
21499 types are complete.
21500 (source_end_java_method): Call to permanent_allocation
21501 removed. Waiting to be replaced by a more suitable obstack
21502 management.
21503 (java_complete_expand_methods, java_complete_expand_method,
21504 java_expand_finals): New functions.
21505 (build_method_invocation_stmt): Renamed
21506 patch_method_invocation_stmt. Extracts function call expression
21507 (wfl) and arguments (args) from CALL_EXPR tree operands.
21508 (build_invoke): Renamed patch_invoke. Fixed typo in fatal
21509 call. Patch the function and argument operand of the CALL_EXPR
21510 tree argument.
21511 (patch_argument, java_complete_tree): New functions.
21512
21513 1998-04-20 Per Bothner <bothner@cygnus.com>
21514
21515 Recover from missing fields and methods (i.e. error instead of fatal).
21516 * decl.c, java-tree.h (TYPE_identifier_node): New global constant.
21517 * expr.c (expand_invoke): Recover from missing method.
21518 (expand_java_field_op): Recover from missing field.
21519 Inline references to java.lang.{Integer,Char,...}.TYPE.
21520 * typeck.c (get_type_from_signature), java-tree.h: New function.
21521 * class.c (add_method): Use get_type_from_signature.
21522 (build_class_ref): Handle a class that was not found.
21523 * typeck.c (convert): Handle conversion to pointers (for convenience).
21524 * verify.c (verify_jvm_instructions): Use get_type_from_signature
21525 instead of lookup_field to handle missing fields.
21526
21527 * jcf-parse.c (process_zip_dir): Set java_source.
21528
21529 1998-04-20 Brendan Kehoe <brendan@cygnus.com>
21530
21531 * jcf-parse.c (set_source_filename): Use TYPE_NAME, not DECL_NAME.
21532
21533 1998-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
21534
21535 * jcf-parse.c (load_class): Don't change input_filename before
21536 calling jcf_parse_source (but still do it before calling
21537 jcf_parse).
21538 (jcf_parse_source): Assign input_filename after having saved the
21539 parser context.
21540 * lex.c (java_init_lex): Chain a WFL node to the import on demand
21541 list. ctxp->modifier_ctx zeroed according to its new
21542 definition. ctxp->filename initialized. Removed
21543 JAVA_MODIFIER_CTX_UNMARK.
21544 (java_unget_unicode): Update the character based column position.
21545 (java_allocate_new_line): ref_count not used anymore. Always free
21546 ctxp->p_line. Initialize c_line->char_col to 0.
21547 (java_get_unicode): Update the character based column position.
21548 (java_lex): Use ctxp->elc to store current position in source
21549 file, at the beginning of the parsed token. Set modifier_ctx entry
21550 corresponding to the parse modifier to a WFL node. Return a WFL
21551 node when an identifier is parsed.
21552 (java_lex_error): Now uses ctxp->elc to store current position in
21553 source.
21554 (build_wfl_node, java_is_eol, java_get_line_col): New functions.
21555 * lex.h (build_wfl_node): New function definitions.
21556 (struct java_line): ref_count and next fields are gone. New field
21557 char_col.
21558 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
21559 JAVA_LINE_UNMARK, ID_NAME, ID_CL): Macro definitions deleted.
21560 (JAVA_COLUMN_DELTA): New macro.
21561 (java_lc): New typedef on new struct _java_lc.
21562 * parse.h (lookup_cl, lookup_modifier_cl): Changed returned types.
21563 (parse_error_context, parse_warning_context): Changed prototypes.
21564 (java_get_line_col): Added as an available global function.
21565 (JAVA_MODIFIER_CTX_UNMARK): Macro removed.
21566 (IC_DECL): Replaced by macro IC_TYPE
21567 (DEPEND_WFL): New macro.
21568 (THIS_MODIFIER_ONLY): Now works with WFL and only remembers the first
21569 wrong modifier.
21570 (exit_java_complete_class): Removed a commented out statement.
21571 (struct parser_ctxt): Added comments on fields. modifier_ctx is
21572 now an array of tree nodes. Deleted fields line_list and
21573 e_line. New field elc, to replace e_line.
21574 * parse.y (array_type:): Build WFL node.
21575 (qualified_name:): Build a single WFL node out of two. Retain
21576 the location information of the first node in the resulting node.
21577 (package_declaration:): Use package name as a WFL node
21578 (single_type_import_declaration:): Use imported name as a WFL node.
21579 (type_import_on_demand_declaration:): Use root of the imported
21580 packages as a WFL node.
21581 (field_declaration:): Removed unused local variable cl.
21582 (method_declaration:): Don't call JAVA_MODIFIER_CTX_UNMARK.
21583 (yyerror): New static elc. Removed static error_line, error_pos.
21584 New local code_from_source. Save ctxp->elc into elc at the first
21585 pass. Call java_get_line_col to get a string of the line where
21586 the error occurred.
21587 (debug_line): Removed static function.
21588 (parse_error_context, parse_warning_context): Parameter cl is now
21589 a WFL node. Use its value to initialize ctxp->elc.
21590 (redefinition_error): Parameter cl is now a WFL node.
21591 (parse_add_interface): New parameter wfl. No longer call
21592 lookup_cl, use wfl instead.
21593 (check_class_interface_creation): Parameter cl is now a WFL node.
21594 (maybe_create_class_interface_decl): Likewise.
21595 (add_superinterfaces): New function.
21596 (create_interface): Removed local cl, node, super_decl,
21597 super_decl_type. Function now uses id as a WFL node. Better
21598 warning/error report on obsolete or forbidden mix of
21599 modifiers. Now calls add_superinterfaces to register interfaces.
21600 (create_class): Removed local cl, node. Local variable id is used
21601 as a WFL node. Better error report on forbidden modifier
21602 mix. Uses add_superinterfaces to register interfaces.
21603 (find_field): Argument cl is now a WFL node. Now store the WFL
21604 node of a fields that needs to be checked for their
21605 initialization.
21606 (method_header): Local variable node non longer used. Local
21607 variable id replaces cl.
21608 (check_modifiers_consistency): Local variable cl is now a WFL
21609 node.
21610 (method_declarator): Local variable cl replaced by parameter id.
21611 (parser_qualified_name): Now uses parameter name as a WFL node.
21612 (parser_check_super_interface): New parameter wfl, for achieve
21613 greater accuracy during error reports.
21614 (parser_chain_incomplete_item): New parameter named location. Used,
21615 along the decl, to construct the incomplete item node.
21616 (java_complete_class): resolve_class now uses WFL node extracted
21617 from the incomplete item node. Macro IC_TYPE replaces TREE_PURPOSE
21618 where appropriate.
21619 (complete_method_decl): Unresolved function's argument types are WFL.
21620 (resolve_class): Parameter cl is now a WFL node.
21621 (resolve_and_layout): Likewise.
21622 (do_resolve_class): Likewise. Try first to use cl and then do the
21623 lookup on the decl when calling check_pkg_class_access.
21624 (complete_class_report_errors): Use IC_TYPE in place of
21625 TREE_PURPOSE where appropriate. Use DEPEND_WFL on dependency
21626 instead of doing a lookup over the decl.
21627 (java_check_final): Use WFL info from field tree list.
21628 (lookup_cl): Rewritten and returns a statically defined WFL node.
21629 (lookup_modifier_cl): Now uses information from WFL nodes.
21630 (process_imports): Likewise.
21631 (read_import_dir): name and cl arguments replaced by a single WFL
21632 node. Function modified accordingly.
21633 (find_in_imports_on_demand): Now uses WFL node.
21634 (check_pkg_class_access): cl argument is now a WFL node.
21635 (declare_local_variables): Fixed to use WFL nodes.
21636 (resolve_expression_name): Likewise.
21637 (build_method_invocation_stmt): name_combo argument renamed
21638 wfl. Function modified to use WFL nodes.
21639 (build_invoke): cl used as a WFL node when calling build_expr_wfl.
21640 (lookup_method_invoke): cl is now a WFL node. Added missing
21641 IDENTIFIER_POINTER to class type decl name.
21642
21643 1998-04-14 Dave Brolley <brolley@cygnus.com>
21644
21645 * lang.c (init_parse): Now returns char* containing the filename.
21646
21647 1998-04-10 Per Bothner <bothner@cygnus.com>
21648
21649 * class.c (layout_class): Mangle repeated arg types to match cc1plus.
21650
21651 * decl.c, java-tree.h (integer_four_node): New INTEGER_CST node.
21652 * class.c (make_class_data): If flag_assume_compiled, initial class
21653 state is CSTATE_PREPARED; make superclass and interfaces direct
21654 references, rather than constant pool indexes.
21655
21656 1998-04-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
21657
21658 * parser.y: Include flags.h. Removed debug variable pl.
21659 (method_declaration:): Uses ctxp->parser_ccb_indent instead of pl.
21660 (block:): Likewise.
21661 (labeled_statement_nsi:): Generate debug info when reducing
21662 expression_statement:.
21663 (check_pkg_class_access): get_access_flags_from_decl invocation
21664 fixed for new CLASS_* flags location.
21665 (source_end_java_method): Save/restore parser context when
21666 entering/leaving this routine. Restore lineno to its right value
21667 before calling expand_end_bindings.
21668 (build_method_invocation_stmt): build_invoke called with the
21669 current line information.
21670 (build_invoke): New argument cl. Wrap the function call around a
21671 wfl node.
21672 (refine_accessible_methods_list): Changed comment, removed
21673 unnecessary code.
21674 * parse.h: Fixed typo in comments.
21675 (CLASS_OR_INTERFACE): Handle the new CLASS_* flags location.
21676 (JAVA_MAYBE_GENERATE_DEBUG_INFO): New macro.
21677 (struct parser_ctxt): New fields ccb_indent, last_ccb_indent1,
21678 parser_ccb_indent.
21679 * lex.c (java_lex): Record the last closing curly bracket of a
21680 function.
21681 * jcf-parse.c (jcf_parse_source): Now calls
21682 java_check_methods. Clarified comment, fixed typo.
21683
21684 1998-04-09 Dave Brolley <brolley@cygnus.com>
21685
21686 * lang.c (init_parse): Expose for non USE_CPPLIB builds.
21687 (finish_parse): Expose for non USE_CPPLIB builds.
21688
21689 1998-04-08 Jeffrey A Law (law@cygnus.com)
21690
21691 * lang.c (lang_print_xnode): New function.
21692
21693 1998-04-03 Per Bothner <bothner@cygnus.com>
21694
21695 * decl.c (class_dtable_decl), java-tree.h: New tree node.
21696 * class.c (get_dispatch_vector, get_dispatch_table): New functions
21697 used to build a class's dispatch table.
21698 (make_class_data): Generate dispatch table if flag_assume_compiled.
21699 Set dtable of class object to address of class_dtable_decl.
21700
21701 * decl.c (int_decl_processing): Make soft_badarrayindex_node
21702 be volatile and have side effects - generates better code.
21703
21704 * class.c, expr.c, parse.y: CLASS_INTERFACE, CLASS_FINAL, etc:
21705 These flags were defined for TYPE_DECLs, but used on RECORD_TYPEs.
21706
21707 * expr.c (expand_invoke): If class is final, method is
21708 effectively final, so can call it directly.
21709
21710 * java-tree.h (TYPE_NVIRTUALS, TYPE_VTABLE): New macros.
21711
21712 * Makefile.in, Make-lang.in: Add missing $(exeext)s.
21713
21714 1998-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
21715
21716 * parse.y (build_method_invocation_stmt): Removed extra argument
21717 to build_invoke.
21718
21719 1998-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
21720
21721 * expr.c (dtable_indent): Now static global.
21722 (expand_invoke): Now call invoke_build_dtable and
21723 build_invokevirtual.
21724 (invoke_build_dtable, build_invokevirtual): New functions.
21725 * jcf-io.c (find_class): Defer issuing a warning by setting
21726 jcf->outofsynch to 1.
21727 * jcf-parse.c (jcf_out_of_synch): New function.
21728 (load_class): Test this_jcf.outofsynch flag and call
21729 jcf_out_of_synch accordingly.
21730 * jcf.h: (typedef struct JCF): New flag outofsynch. Fixed typo in
21731 comment indentation.
21732 * lex.c (java_get_unicode): Fixed code indentation.
21733 (java_lex): Create string literal. Fixed typo. Removed several
21734 premature obstack_free.
21735 * parse.h: New enums for name resolution and invocation mode.
21736 (struct qualification): New data structure.
21737 (RESOLVE_CHAIN_REMAINDER, BUILD_PTR_FROM_NAME): New macros.
21738 (do_resolve_class, build_method_invocation_stmt,
21739 breakdown_qualified, qualify_ambiguous_name, resolve_and_layout,
21740 debug_line, identical_subpath_p, invocation_mode,
21741 refine_accessible_methods_list, build_invoke,
21742 lookup_method_invoke): New functions declared.
21743 (build_invokevirtual, invoke_build_dtable, match_java_method,
21744 build_field_ref, jcf_out_of_synch): New references to external
21745 functions.
21746 (struct parse_ctxt): Removed artificial_constructor field.
21747 * parse.y: (array_type:): Type defined for this rule.
21748 (class_type:): Installed default rule for interface_type:.
21749 (array_type:): Now build Java array type.
21750 (qualified_name:): Now use obstack_grow0.
21751 (method_declaration:): Skip the artificial constructor added to
21752 the list, if any.
21753 (abstract_method_declaration:): Execute the code only during pass 1.
21754 (block:): Installed default rule in block_statements:.
21755 (block_statement:): Add the statement to the method during pass 2.
21756 (statement_expression): Installed default rule for
21757 method_invocation:.
21758 (argument_list:): Added code to build the argument list.
21759 (method_invocation:): Added call to create the method invocation
21760 node.
21761 (yyerror): Now use obstack_grow0. Removed bogus obstack_free.
21762 (debug_line): New function for debug.
21763 (complete_class_decl): No longer do something during pass 1.
21764 (method_header): Use BUILD_PTR_FROM_NAME.
21765 (parser_qualified_classname): Use obstack_grow0. Removed bogus
21766 obstack_free.
21767 (parser_chain_incomplete_item): Use BUILD_PTR_FROM_NAME. Modified
21768 function's main comment.
21769 (java_complete_class): Set CLASS_LOADED_P on all fixed incomplete
21770 classes.
21771 (complete_method_decl): Use BUILD_PTR_FROM_NAME and promote types.
21772 (resolve_class): Now works with arrays.
21773 (do_resolve_class, resolve_and_layout): New functions.
21774 (java_check_regular_methods): Reverse method list before and after
21775 having processed it. No longer set ctxp->artificial_constructor.
21776 (read_import_dir): Test jcf->outofsynch and call jcf_out_of_synch
21777 accordingly. Fixed typo in issued error message. Now use
21778 obstack_grow0.
21779 (find_in_imports_on_demand): Now use obstack_grow0.
21780 (declare_local_variables): Use BUILD_PTR_FROM_NAME.
21781 (source_end_java_method): Call expand_expr_stmt instead of
21782 expand_expr. Calls it before calling expand_function_end.
21783 (java_method_add_stmt): Do nothing if errors were found during
21784 parsing.
21785 (java_layout_parsed_class): Set CLASS_LOADED_P and fixed typo.
21786 (build_method_invocation_stmt, build_invoke, invocation_mode,
21787 lookup_method_invoke, refine_accessible_methods_list,
21788 qualify_ambiguous_name, breakdown_qualified, identical_subpath_p):
21789 New functions.
21790 * typeck.c (build_java_signature): Properly end method signature
21791 if return type skipped.
21792 (match_java_method): New function.
21793
21794 1998-03-16 Per Bothner <bothner@cygnus.com>
21795
21796 * jcf-io.c (find_classfile): If USE_JCF_STDIO, fopen in binary mode.
21797
21798 1998-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
21799
21800 * expr.c (build_invoke_non_interface): New function.
21801 (methods_ident, ncode_ident): Now static globals.
21802 (expand_invoke): Use build_invoke_non_interface.
21803 * java-tree.h (struct lang_decl): New field function_decl_body.
21804 (DECL_FUNCTION_BODY): New macro.
21805 * jcf-parse.c (jcf_parse_source): Deeper check before setting
21806 CLASS_FROM_SOURCE_P.
21807 (parse_source_file): Fixed typos. Call java_layout_parsed_class
21808 before starting pass 2. Call to java_generate_parsed_class replaced
21809 by java_register_parsed_class.
21810 * lex.c: Fixed typo in header. Some line width related formating.
21811 * lex.h: Some line width related formating.
21812 * parse.h (source_end_java_method, resolve_expression_name,
21813 complete_class_decl, maybe_create_class_interface_decl,
21814 check_class_interface_creation): New static function declarations.
21815 (java_layout_parsed_class, java_method_add_stmt): New function
21816 declarations.
21817 (struct parser_ctxt): Field mark_class_generate removed. New
21818 fields class_list and artificial_constructor.
21819 * parse.y: Fixed typo in header.
21820 (class_declaration:): Call complete_class_decl when class body
21821 parsed.
21822 (method_declaration:): Call source_end_java_method in pass 2 when
21823 the method body is defined.
21824 (postfix_expression:): Do expression name resolution on sub-rule
21825 name during pass 2.
21826 (create_class, create_interface): Merged common pieces.
21827 (check_class_interface_creation, maybe_create_class_interface_decl):
21828 New functions.
21829 (complete_class_decl): New function.
21830 (register_fields): Fixed line width related typo.
21831 (method_header): Correctly skip first argument when fixing
21832 argument line. Changed the loop.
21833 (java_check_circular_reference): Now use ctxp->class_list.
21834 (java_complete_class): Removed start/stop marking.
21835 (java_check_regular_methods): Now takes a class decl as an
21836 argument. Add default constructor if none were encountered.
21837 (java_check_methods): Now use ctxp->class_list. Changed call to
21838 java_check_regular_methods.
21839 (source_start_java_method): Set DECL_ARG_TYPE for each function
21840 arguments.
21841 (source_end_java_method, java_method_add_stmt): New functions.
21842 (java_generate_parsed_class): No longer exists.
21843 (java_layout_parsed_class, java_register_parsed_class): New functions.
21844 (resolve_expression_name): New function.
21845
21846 1998-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
21847
21848 * jcf-parse.c: (parse_source_file): Check on errors after init lex.
21849 * lex.c: (java_init_lex): Defer ctxp->java_pass initialization
21850 until pass initializations are done. Call read_import_dir with
21851 pass set to 0.
21852 * parse.h: (lookup_modifier_cl): New function declared.
21853 (INTERFACE_FIELD_MODIFIERS): New macro.
21854 (OBSOLETE_MODIFIER_WARNING): New macro.
21855 * parse.y: (register_fields): Class type and current field name in
21856 local variables. Check modifier(s) if adding field(s) to an interface.
21857 (check_abstract_method_header): Now use OBSOLETE_MODIFIER_WARNING
21858 and report errors using the faulty modifier line context.
21859 (lookup_modifier_cl): New function.
21860 (read_import_dir): Detect and report default import processing
21861 failure.
21862
21863 1998-02-11 Brendan Kehoe <brendan@cygnus.com>
21864
21865 Add a pair of -fassume-compiled/-fno-assume-compiled options.
21866 * class.c (is_compiled_class): Return 1 after making sure it
21867 qualifies as loaded, if FLAG_ASSUME_COMPILED is set.
21868 * lang-options.h: Add -fassume-compiled/-fno-assume-compiled.
21869 * java-tree.h (flag_assume_compiled): Add decl.
21870 * lang.c (lang_f_options): Add the flag.
21871 (flag_assume_compiled): Add decl, default to 0.
21872
21873 1998-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
21874
21875 * class.c (class_depth): Call to load_class uses extra VERBOSE arg.
21876 (is_compiled_class): Likewise.
21877 (layout_class): Likewise.
21878 (layout_class): Detect and lay out classes defined in source code.
21879 (interface_of_p, add_interface_do, may_add_interface): New
21880 function.
21881 (add_interface): Now use add_interface_do.
21882 (add_method_1): New function.
21883 (add_method): Now use add_method_1.
21884 (pushlevel): Debug message conditional to SOURCE_FRONTEND_DEBUG.
21885 (complete_start_java_method): New function.
21886 (start_java_mehod): Now call complete_start_java_method.
21887 * expr.c (lookup_field): Call to load_class uses extra VERBOSE arg.
21888 (expand_invoke): Likewise and fixed typo.
21889 *gjava.c: (print_super_field): Use new argument to find_class
21890 DO_CLASS_FILE.
21891 (main): Likewise.
21892 *java-tree.h: (CLASS_FROM_SOURCE_P): New flag on RECORD_TYPE.
21893 (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
21894 QUALIFIED_P, IS_AN_IMPORT_ON_DEMAND_P): New flags on
21895 IDENTIFIER_NODE.
21896 (CLASS_COMPLETE_P): New flag on TYPE_DECL.
21897 (add_method_1, push_class): New prototypes.
21898 *jcf-dump.c: find_class now uses new DO_CLASS_FILE argument.
21899 *jcf-io.c: (open_in_zip): jcf now stores a pointer to the Zip
21900 directory where the class was found.
21901 (find_class): New argument DO_CLASS_FILE. Function find_class
21902 modified accordingly.
21903 *jcf-parse.c: (fix_class_path): New function.
21904 (load_class): Use new VERBOSE argument. load_class now finds and
21905 loads/parses .class/.java files. Save read_state of current_jcf
21906 if necessary.
21907 (java_parser_abort_on_error): New macro.
21908 (jcf_parse_source, parse_source_file): New function.
21909 (jcf_parse): Fixed typo.
21910 (yyparse): Call parse_source_file () only.
21911 (process_zip_dir): Fixed typo, fix zdir->filename_length when
21912 writing the real class name back in the zip directory entry.
21913 (find_in_current_zip): IDENTIFIER_CLASS_VALUE may be null.
21914 (jcf_figure_file_type): Fixed bogus alloc and bcopy.
21915 *jcf.h: (typedef struct JCF): New fields java_source and zipd.
21916 (find_class): Prototype fixed.
21917 *lex.c: Added 1998 time stamp.
21918 Removed all static global variables, moved into the parser
21919 context data structure.. Now include unistd.h if SEEK_SET not
21920 defined.
21921 (java_init_lex): Rewritten.
21922 (java_sneak_unicode): Modified current unicode access in current line.
21923 (java_unget_unicode): Likewise.
21924 (java_allocate_new_line): New allocation management.
21925 (java_read_char): Modified access and storage of unget_utf8_value.
21926 New way of processing current unicode.
21927 (java_store_unicode, java_read_unicode): Fixed typo in declaration.
21928 (java_get_unicode): Now use the parser context.
21929 (java_lineterminator): Likewise.
21930 (java_lex): Now used java_lval argument (pointer to YYSTYPE), part
21931 of the reentrant parser implementation. Function now use the
21932 parser context data structure and java_lval. Fixed production of
21933 the float and double constant "out of range" error message. Fixed
21934 obstack use. Return integer value when hitting a modifier. Now
21935 return type for TRUE, FALSE and other predefined types. Return
21936 identifier as a TREE_LIST list containing the current line context
21937 as the TREE_VALUE sub-node.
21938 (java_unicode_2_utf8): Fixed typo in declaration.
21939 (java_lex_error): Now use the parser context data structure.
21940 *lex.h: Added 1998 time stamp.
21941 (struct java_line): New fields ref_count and next.
21942 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
21943 JAVA_LINE_UNMARK, ID_NAME, ID_CL): New macros.
21944 (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR, UNGETC): Fixed.
21945 *parse.h: Added 1998 time stamp.
21946 (java_parse_source_file): Renamed from parse_source_file.
21947 (YYERROR_NOW, YYNOT_TWICE): Fixed.
21948 (CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
21949 INTERFACE_MODIFIER, INTERFACE_METHOD_MODIFIERS,
21950 JAVA_MODIFIER_CTX_UNMARK, IC_DECL, IC_DEPEND, DEPEND_DECL,
21951 THIS_MODIFIER_ONLY, ABSTRACT_CHECK, BEGIN_ONLY_PASS,
21952 END_ONLY_PASS, ELSE_ONLY_PASS, exit_java_complete_class,
21953 CLASS_OR_INTERFACE, INCOMPLETE_P): New macros.
21954 (struct parser_ctxt): New data structure to keep the parser context.
21955 *parse.y: Added 1998 time stamp, got rid of static global variables.
21956 (java_error_count, ctxp): New global variables.
21957 (%union): New value field.
21958 (numeric_type, integral_type): Rules removed.
21959 (primitive_type): Rule defined to handle integral, float, double and
21960 boolean types.
21961 (qualified_name, package_declaration,
21962 single_type_import_declaration, type_import_on_demand_declaration,
21963 modifiers, class_declaration, super, interfaces,
21964 interface_type_list, class_body, field_declaration,
21965 field_declaration, variable_declarators, variable_declarator,
21966 variable_declarator_id, method_declaration, method_header,
21967 formal_parameter_list, formal_parameter, method_body, block,
21968 static, interface_declaration, extends_interfaces,
21969 abstract_method_declaration, local_variable_declarators): Rules now
21970 define actions.
21971 (force_error, do_warning): New global statics.
21972 (push_parser_context, parser_context_save_global,
21973 parser_context_restore_global, pop_parser_context): New functions.
21974 (yyerror): Now uses the global parser context. Fixed use of obstack.
21975 (parse_error, parse_error_context, parse_warning_context,
21976 java_accstring_lookup, redefinition_error, check_modifiers,
21977 parser_add_interface, create_interface, create_class, find_field,
21978 duplicate_declaration_error, register_fields, method_header,
21979 check_modifiers_consistency, check_abstract_method_header,
21980 method_declarator, parser_qualified_classname,
21981 parser_check_super_interface, parser_check_super,
21982 parser_chain_incomplete_item, java_check_circular_reference,
21983 layout_class_from_source, java_complete_class,
21984 complete_method_decl, resolve_class, complete_class_report_errors,
21985 java_check_final, check_method_redefinition,
21986 java_check_regular_methods, java_check_abstract_methods,
21987 java_check_methods, lookup_java_interface_method2,
21988 lookup_java_method2, lookup_cl, find_name_in_single_imports,
21989 process_imports, find_in_imports, read_import_entry,
21990 read_import_dir, find_in_imports_on_demand,
21991 check_pkg_class_access, not_builtin_p, declare_local_variables,
21992 source_start_java_method, java_generate_parsed_class): New
21993 functions.
21994 *typeck.c: (signature_include_return): New global variable.
21995 (build_java_signature): Use SIGNATURE_INCLUDE_RETURN figure whether
21996 to add the function returned type in the signature.
21997
21998 1998-02-09 Brendan Kehoe <brendan@cygnus.com>
21999
22000 * jcf-io.c (open_in_zip): Use strncmp and LEN.
22001
22002 1998-01-29 Dave Brolley <brolley@cygnus.com>
22003
22004 * Make-lang.in (java.info): Added.
22005 (java.install-info): Added
22006
22007 1998-01-27 Brendan Kehoe <brendan@cygnus.com>
22008
22009 * Makefile.in (clean): Also remove java/parse.c.
22010
22011 1998-01-26 Brendan Kehoe <brendan@cygnus.com>
22012
22013 Add a pair of -fbounds-check/-fno-bounds-check options.
22014 * lang.c (lang_decode_option): Add code to grok arguments.
22015 (flag_bounds_check): Add decl.
22016 (lang_f_options): New array w/ the option in it.
22017 * java-tree.h (flag_bounds_check): Add decl.
22018 * lang-options.h: New file.
22019 * expr.c (build_java_arrayaccess): Use flag_bounds_check instead
22020 of a static macro value.
22021 (JAVA_ARRAY_EXCEPTION): Delete macro.
22022
22023 1998-01-23 Per Bothner <bothner@cygnus.com>
22024
22025 * typeck.c (build_java_array_type): Fix two bugs in previous change.
22026 * expr.c (build_anewarray): Add missing promote_type.
22027
22028 1998-01-22 Per Bothner <bothner@cygnus.com>
22029
22030 Add array types with known length to optimize bounds checking.
22031 * typeck.c (build_java_array_type): Take length parameter.
22032 (java_array_type_length, build_prim_array_type): New functions.
22033 * java-tree.h: Update for new functions.
22034 * expr.c, typeck.c, verify.c: Update build_java_array_type calls.
22035 * class.c: Use build_prim_array_type.
22036 * expr.c (can_widen_reference_to): Handle known-length array types.
22037 (verify_jvm_instructions): Keep track of integer push instructions
22038 followed by newarray/anewarray, so we can build known-length arrays.
22039 (JAVA_ARRAY_DATA_OFFSET): Replace by ...
22040 (java_array_data_offset): New function.
22041 (build_java_array_length_access): New function. Optimize if constant.
22042 (build_java_arrayaccess): Constant fold bounds check.
22043 (expand_java_newarray, expand_java_anewarray): Replaced by ...
22044 (build_newarray, build_anewarray): New functions.
22045 (ARRAY_NEW_NUM, ARRAY_NEW_PTR): Use build_{a,}newarray.
22046 * verify.c (merge_types): Handle known-lengh array types.
22047
22048 1998-01-19 Per Bothner <bothner@cygnus.com>
22049
22050 * expr.c (expand_byte_code): Fix performace bug, which caused
22051 searching linenumber_table to be linear rather than constant.
22052
22053 1997-12-12 Per Bothner <bothner@cygnus.com>
22054
22055 * Makefile.in (BISON, BISONFLAGS): Add missing macros.
22056
22057 * decl.c, java-tree.h (soft_fmod_node): New global.
22058 * decl.c (init_decl_processing): Define __builtin_fmod.
22059 * expr.c (build_java_binop): Implement TRUNC_MOD_EXPR for REAL_TYPE
22060 using __builtin_fmod.
22061
22062 1997-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
22063
22064 * keyword.h: New file, output of keyword.gperf as processed by
22065 gperf.
22066 * lex.c (java_lex_init): Initialize java_error_flag.
22067 * parse.c (YYERROR_NOW): Uses java_error_flag.
22068 * parse.y: New static java_error_flag. Useless definition of
22069 buffer_error gone.
22070 * parse.y (java_error): Portable error recovery using
22071 java_error_flag (not yet completely tuned).
22072
22073 1997-12-04 Brendan Kehoe <brendan@lisa.cygnus.com>
22074
22075 * Makefile.in (parse.c): Use $(srcdir) for parse.y.
22076
22077 1997-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
22078
22079 * Makefile.in: (JAVA_OBJS): New object jcf-parse.o.
22080 (parse.c, lex.c, keyword.h): New rules for Java source code
22081 front-end.
22082 * parse.c: Renamed into jcf-parse.c.
22083 * jcf-parse.c (yyparse): Invoke the parser to process Java source code.
22084 * keyword.gperf: New file, Java keywords.
22085 * parse.y: New file, Java language grammar.
22086 * parse.h: New file, Java language grammar definitions.
22087 * lex.c: New file, Java language lexer.
22088 * lex.h: New file, Java language lexer definitions.
22089
22090 1997-12-03 Per Bothner <bothner@cygnus.com>
22091
22092 * decl.c (clinit_identifier_node), java-tree.h: New global.
22093 * java-tree.h (IS_METHOD_INIT_P, IS_METHOD_CLINIT_P): Removed.
22094 * verify.c (verify_jvm_instructions): Inline use of removed macros.
22095 * expr.c (expand_java_field_op): Check for invalid assignment
22096 to final field.
22097
22098 * jcf-reader.c (get_attribute): Test for wrong attribute length.
22099
22100 1997-10-27 Per Bothner <bothner@cygnus.com>
22101
22102 * verify.c (verify_jvm_instructions): When processing a handler,
22103 attempt to set the current_subr to the right value.
22104 (More complicated code combines Sep 17 and Oct 22 versions.)
22105
22106 1997-10-24 Per Bothner <bothner@cygnus.com>
22107
22108 * class.c (push_class): Figure out (guess) name of source file.
22109 * parse.c (set_source_filename): Set DECL_SOURCE_FILE of class decl.
22110 (give_name_to_class): Don't guess source name; use DECL_SOURCE_FILE.
22111 (parse_class_file): Change return type from int to void.
22112 Call debug_start_source_file/debug_end_source_file.
22113
22114 * expr.c (build_java_binop): Fix masking 2nd operand.
22115 * decl.c (init_decl_processing): Set sizetype first.
22116
22117 1997-10-22 Per Bothner <bothner@cygnus.com>
22118
22119 * verify.c (verify_jvm_instructions): Don't set current_subr to NULL.
22120 (Revert Sep 17 change.)
22121
22122 1997-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
22123
22124 * parse.c (process_zip_dir): Skip ZIP entries not bearing the
22125 .class extension in their name and fix thing so we don't process
22126 them parse_zip_file_entries().
22127 (parse_zip_file_entries): Cleaned unused local variables.
22128
22129 1997-10-20 Per Bothner <bothner@cygnus.com>
22130
22131 * expr.c (can_widen_reference_to): Allows equal array element types.
22132 (expand_byte_code): PRE_RET must expand OPERAND_VALUE (to get index).
22133 * jcf-dump.c (RET): Get (and print) index.
22134
22135 * verify.c (verify_jvm_instructions case OPCODE_anewarray):
22136 Promote element type to POINTER_TYPE.
22137
22138 1997-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
22139
22140 * jcf-reader.c, parse.c: (parse_zip_file, process_zip_dir,
22141 find_in_current_zip, jcf_figure_file_type): Moved from
22142 jcf-reader.c to parse.c.
22143 * zextract.c: (read_zip_archive): takes file_comment_length possible
22144 field into account.
22145
22146 1997-10-20 Per Bothner <bothner@cygnus.com>
22147
22148 * verify.c (verify_jvm_instructions): Var can also be promoted to int.
22149
22150 * verify.c (merge_types): Handle array types even better ...
22151
22152 1997-10-17 Per Bothner <bothner@cygnus.com>
22153
22154 * expr.c (java_stack_pop): Fix use of NULL_TREE for TYPE_SECOND.
22155
22156 * java-tree.h (PUSH_FIELD): Set DECL_ARTIFICIAL.
22157 * class.c (make_class_data): Don't build fields_decl if no fields.
22158 When building fields_decl, skip if DECL_ARTIFICIAL.
22159
22160 * expr.c (java_stack_swap): Update stack_type_map.
22161 * verify.c (merge_types): Handle array types better.
22162
22163 1997-10-15 Per Bothner <bothner@cygnus.com>
22164
22165 * class.c (add_field): Don't promote short integral fields to
22166 int any more (unless JAVA_PROMOTE_TO_INT), since Kaffe doesn't.
22167 * expr.c (push_value): Promote and convert short integral values.
22168
22169 * decl.c, java-tree.h (integer_two_node): New constant node.
22170 * verify.c (merge_types): Check for TYPE_RETURN_ADDR.
22171
22172 1997-10-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
22173
22174 * class.c (append_gpp_mangled_type): Use function argument
22175 unpromoted type to generate mangled name.
22176
22177 1997-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
22178
22179 * constants.c (build_constant_data_ref): Now uses current_class
22180 instead of main_class.
22181 (build_constants_constructor): Now uses current_class instead of
22182 main_class.
22183 * zipfile.h: (struct ZipFileCache): Now defined here. Declaration
22184 of the global variable SeepZipFiles done here.
22185 * zextract.c (read_zip_archive): extra_field optional field taken
22186 into account while computing the position of the class file in the
22187 archive.
22188 * verify.c (verify_jvm_instructions): Use current_jcf to search
22189 the constant pool.
22190 * parse.c (load_class): First search for the class to load in the
22191 current zip file. Saves current_jcf (restored before returning
22192 from that function). Don't call JCF_FINISH in the class was found
22193 in the current ZIP file.
22194 (jcf_parse): If the class was found in the current ZIP file, save
22195 its tree_constant_pool (for later reuse).
22196 (parse_class_file): New function. Process each method defined in
22197 the current class and record the class as to be later registered.
22198 (yyparse): Rewritten. Figure the type of the current file and switch
22199 accordingly.
22200 * lang.c: New global variable current_jcf.
22201 (lang_init): Removed compiling_from_source test (done later, in
22202 yyparse). Removed call the jcf_parse ().
22203 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): New defined values.
22204 (typedef struct JCF): New fields seen_in_zip (to mark a class found
22205 in the current ZIP file) and zip_offset (offset to the class data in
22206 the current zip file).
22207 * jcf-reader.c: zipfile.h included.
22208 localToFile: New ZipFileCache static global variable
22209 (parse_zip_file_entries): New function. Browse the current ZIP
22210 file directory and process each class found.
22211 (process_zip_dir): New function. Register each class found in the
22212 ZIP file directory. The class aren't parsed but a valid JCF is
22213 link to each of them.
22214 (find_in_current_zip): New function. Search for a class in the
22215 current ZIP file directory. If found, prepare the class so that it
22216 can be loaded.
22217 (jcf_figure_file_type): New function. Examine the file structure
22218 to figure a class file, a ZIP file. If none of these categories are
22219 matched, a source file is assumed.
22220 * jcf-io.c: Removed definition of ZipFileCache (moved in zipfile.h).
22221 SeenZipFile: New global variable.
22222 (open_in_zip): Use zipmember's length to accelerate the search for
22223 a member. If zipmember was NULL and zip file successfully read,
22224 return 0.
22225 * java-tree.h: New global variable current_jcf declared. Added
22226 declaration for current_constant_pool_tags, current_constant_pool_data,
22227 current_constant_pool_length, current_constant_pool_data_ref.
22228 (struct lang_type): Augmented with two fields. struct JCF *jcf (to
22229 store the JCF of classes seen in a zip file) and tree *constant_pool
22230 (to save a loaded class constant pool). current_class declared here.
22231 * expr.c (expand_invoke): Use current_jcf instead of main_jcf to
22232 retrieve method_ref_constant.
22233 (PUSHC): java_push_constant_from_pool now uses current_jcf.
22234 (OBJECT): get_class_constant now uses current_jcf.
22235 (ARRAY_NEW_PTR): get_class_constant now uses current_jcf.
22236 (ARRAY_NEW_MULTI): get_class_constant now uses current_jcf.
22237 (expand_invoke): Now uses current_class instead of main_class
22238 (build_class_init): Now uses current_class instead of main_class
22239 * class.c: New static global variable registered_class.
22240 (register_class): New function.
22241 (emit_register_class): Modified to use registered_class instead of
22242 main_class
22243 (is_compiled_class): Now take into account class seen in the archive.
22244
22245 1997-10-06 Per Bothner <bothner@cygnus.com>
22246
22247 * except.h: Renamed to: java-except.h.
22248 * parse.c, except.c, expr.c, verify.c: Update #include accordingly.
22249 * except.c: Add semi-working (commented out) implementation.
22250
22251 * expr.c (expand_iinc): Add needed flush_quick_stack.
22252 * parse.c (set_source_filename): New function.
22253 (give_name_to_class): Set input_filename from package.classname.java.
22254
22255 * jcf-io.c (find_class): Don't look first in ".".
22256
22257 1997-10-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
22258
22259 * zextract.c (read_zip_archive): Now takes into account the
22260 extra_field field.
22261 * expr.c (can_widen_reference_to): Modified to handle sub-interfaces.
22262
22263 1997-09-20 Per Bothner <bothner@cygnus.com>
22264
22265 * constants.c, java-tree.h (build_internal_class_name): New function.
22266 (alloc_class_constant): Re-implement using build_internal_class_name.
22267 * class.c (make_class_data): Likewise.
22268 * class.c (hashUtf8String): Make hash algorithm match String.hashCode.
22269
22270 1997-09-17 Per Bothner <bothner@cygnus.com>
22271
22272 * verify.c (verify_jvm_instructions): Temporarily set current_subr
22273 to NULL before pushing an exception handler target.
22274
22275 * expr.c (flush_quick_stack): Save from low stack indexes to high.
22276 (java_stack_swap, java_stack_dup): Re-write to be safe from
22277 clobbering registers.
22278 (build_class_init): New function.
22279
22280 1997-09-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
22281
22282 * typeck.c (build_java_array_type): Temporary use
22283 permanent_obstack to create the array 'length' field.
22284 * expr.c (lookup_label): Temporay use permanent_obstack to create
22285 label if not found.
22286 * class.c (push_super_field): Tempory use permanent_obstack.
22287
22288 1997-09-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
22289
22290 * typeck.c (type_for_mode): Now handles double_type_node and
22291 float_type_node.
22292 * verify.c (verify_jvm_instructions): The instruction following
22293 the wide bytecode is checked. OPCODE_ret added to the list of
22294 wide.
22295
22296 1997-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
22297
22298 * class.c (make_class): Temporary use permanent_obstack. Set the
22299 class CLASS_P field to 1.
22300 (push_class): Temporary use permanent_obstack.
22301 (set_super_info): Temporary use permanent_obstack.
22302 (add_method): Temporary use permanent_obstack, set
22303 METHOD_TRANSIENT().
22304 (add_field): Temporary use permanent_obstack. Sets
22305 FIELD_VOLATILE() and FIELD_TRANSIENT().
22306 (build_class_ref): Temporary use permanent_obstack if the class
22307 isn't compiled.
22308 (build_static_field_ref): Temporary use permanent_obstack when
22309 creating field's rtl.
22310 (get_access_flags_from_decl): Handle ACC_VOLATILE, ACC_TRANSIENT,
22311 ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT flags for methods
22312 and fields. Function finalized, as far as flag handling.
22313 (push_class_static_dummy_field): Temporary use permanent_obstack.
22314 (emit_register_class): Force generation of class registration at
22315 -O3 or deeper.
22316 * decl.c (end_java_method): Call permanent_allocation() before
22317 returning.
22318 * expr.c (can_widen_reference_to): Added comment to interface
22319 handling, fixed typo.
22320 (lookup_field): Now uses CLASS_P() to correct FIXME
22321 (expand_invoke): Verification on public && !static &&
22322 !abstract moved into soft_lookupinterfacemethod (kaffe).
22323 Use Object class dtable if objectref is an array when expanding
22324 invokeinterface.
22325 (java_push_constant_from_pool): Temporary use permanent_obstack
22326 for CONSTANT_string
22327 * parse.c (get_ref_constant): Temporary use permanent_obstack to
22328 create constant references.
22329 (get_constant): Temporary use permanent_obstack to create constant.
22330 (load_class): Temporary use permanent_obstack to load class.
22331 (jcf_parse): Temporary use permanent_obstack to perform class
22332 layout.
22333 * typeck.c: (parse_signature_string): Temporary use permanent_obstack.
22334 (build_java_signature): Temporary use permanent_obstack.
22335 * verify.c: (verify_jvm_instruction): removed unnecessary verification
22336 on ACC_SUPER flag.
22337 * java-tree.h (METHOD_NATIVE, METHOD_TRANSIENT): Defined.
22338 (FIELD_VOLATILE, FIELD_TRANSIENT): Defined.
22339 (CLASS_P): Defined
22340
22341 1997-09-11 Per Bothner <bothner@cygnus.com>
22342
22343 * class.c (append_gpp_mangled_type): Fix typo.
22344 (emit_register_class): Use main_class to get class object, rather
22345 than looking for no-longer-existing static decl starting with _CL.
22346 * typeck.c (parse_signature_type): Promote array element type
22347 if it is a RECORD_TYPE.
22348
22349 1997-09-10 Per Bothner <bothner@cygnus.com>
22350
22351 * class.c (push_class_static_dummy_field): New function.
22352 (mangle_static_field): New. Do G++-style mangling of static fields.
22353 (layout_class): Mandle static fields here, not in add_field.
22354 (build_class_ref): The class object is now a dummy static field.
22355 * decl.c (find_local_variable): Look for best, instead of first match.
22356 * expr.c (push_type): Always promote_type, not just for RECORD_TYPE.
22357 (build_java_athrow): Don't check here if exception is Throwable.
22358 * java-tree.h (TYPE_UNSET): Renamed to TYPE_UNKNOWN.
22359 (TYPE_USED): Removed. No longer used ...
22360 * parse.c (jcf_parse): Call push_class_static_dummy_field.
22361 * verify.c (push_pending_label): New function.
22362 (push_pending_block): Renamed to check_pending_block.
22363 (merge_types): Remove unneeded suuport for TYPE_UNUSED.
22364 (verify_jvm_instructions): Only reset prev_eh_ranges (to force
22365 re-checking possible handlers) after a store (less wasted work).
22366 Check for null handler (finally) before calling add_handler.
22367 Various changes to (finally?) correctly handle try/finally.
22368
22369 1997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com>
22370
22371 * class.c: Include stdio.h.
22372
22373 1997-09-04 Per Bothner <bothner@cygnus.com>
22374
22375 * expr.c (expand_invoke): Use COMPOUND_EXPR (and TREE_SIDE_EFFECTS)
22376 to make sure class is initialized before static/special invoke.
22377
22378 * verify.c (verify_jvm_instructions): On a store instruction,
22379 call find_local_variable to force pre-allocation of decl and rtx.
22380 * decl.c (push_jvm_slot): Set DECL_REGISTER on stack slots.
22381
22382 1997-09-03 Per Bothner <bothner@cygnus.com>
22383
22384 * class.c (build_class_ref): Strip off "promoted_" if need be.
22385 (make_field_value): Call build_java_signature when needed.
22386 (layout_class): Don't make_function_rtl if METHOD_ABSTRACT.
22387 * expr.c (build_java_athrow): Don't push_value of exception.
22388 (build_java_binop): Implement COMPARE_L_EXPR and COMPARE_G_EXPR to
22389 match specification of [fd]cmp[lg] for NaNs.
22390 (expand_byte_code): Add support for exception handler ranges.
22391 * except.c: Add skeleton for EH code-generation.
22392 * verify.c (merge_types): Treat all promoted integral types as equal.
22393 * constants.c (build_constants_constructor): To force creation of
22394 current_constant_pool_data_ref, call build_constant_data_ref.
22395
22396 * javaop.def (lload): Fix typo.
22397 * jcf-dump.c (main): Clear filename to prevent possibly-bad free.
22398
22399 1997-09-02 Brendan Kehoe <brendan@lisa.cygnus.com>
22400
22401 * parse.c: Don't include function.h.
22402
22403 1997-08-27 Per Bothner <bothner@cygnus.com>
22404
22405 * except.[ch]: New files.
22406 * Makefile.in (JAVA_OBJS): Add except.o
22407 * expr.c: Temporary warning about unimplemented exceptions.
22408 * verify.c: Verify exception handlers.
22409
22410 * jcf-dump.c (disassemble_method): Print exception table.
22411
22412 1997-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
22413
22414 * expr.c (verify_jvm_instructions): Started a thorough
22415 verification of invoke* bytecodes.
22416 (expand_byte_code): flush quick stack if PC is the target of a
22417 branch. and undef RET (conflicting with config/i386/i386.h).
22418 (expand_java_arrayload): Fixed bogus cast, when Boolean type is
22419 used.
22420 (expand_invoke): Now handles invokeinterface and do more
22421 verification according to the bytecode.
22422 (lookup_field): Don't try to load the class if processing
22423 dtable_type.
22424 (can_widen_reference_to): Now handles interfaces.
22425 * decl.c (init_decl_processing): New global variable
22426 soft_lookupinterfacemethod_node, declared in java-tree.h.
22427 Call set_super_info on string_type_node.
22428 * java-tree.h (CLASS_INTERFACE, CLASS_ABSTRACT, CLASS_SUPER): Now
22429 defined.
22430 * class.c (set_super_info): Fills the CLASS_* flags according to
22431 access_flags.
22432 (get_access_flags_from_decl): Handles all class flags.
22433
22434 1997-08-26 Per Bothner <bothner@cygnus.com>
22435
22436 * class.c (add_method): Zero out newly-allocated DECL_LANG_SPECIFIC.
22437 * parse.c (yyparse): Check for abstract method, and missing code.
22438 * expr.c (expand_byte_code): Change interface.
22439 * lang.c (put_decl_node): Print promoted types prettier.
22440 * verify.c (verify_jvm_instruction): Change interface.
22441 Partial support for scanning exception table.
22442 For load instructions, handle promoted integral types.
22443
22444 1997-08-21 Per Bothner <bothner@cygnus.com>
22445
22446 * verify.c: New file, with contents moved from expr.c.
22447 * expr.c: Bunch of stuff (mostly verification) moved to verify.c.
22448 * typeck.c (is_array_type_p): Moved here from expr.c.
22449 * java-tree.h: Add some now-needed function declarations.
22450 * Makefile.in (JAVA_OBJS): Added verify.o.
22451
22452 1997-08-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
22453
22454 * class.c (add_method): Sets the METHOD_SYNCHRONIZED flag, sets the
22455 METHOD_ABSTRACT flag.
22456
22457 * java-tree.h (METHOD_SYNCHRONIZED): Set to DECL_LANG_FLAG_4.
22458 (IS_METHOD_CLINIT_P, IS_METHOD_INIT_P): New macros.
22459 (METHOD_ABSTRACT): Set to DECL_LANG_FLAG_5
22460
22461 * decl.c (soft_monitorenter_node, soft_monitorexit_node): New global
22462 variables.
22463 (start_java_method): Hook for SYNCHRONIZED methods.
22464
22465 * expr.c (build_java_jsr, build_java_ret): New functions
22466 (JSR,PRE): New macros
22467 (PRE_TABLE_SWITCH, PRE_LOOKUP_SWITCH): Fixed and secured.
22468 (verify_jvm_instructions): tableswitch, lookupswitch,
22469 monitorenter, monitorexit, goto_w: verified.
22470 (LOOKUP_SWITCH, TABLE_SWITCH): Fixed generation of default: label
22471 (build_java_monitor): New function.
22472 (MONITOR_OPERATION): Modified to call build_java_monitor()
22473 (verify_jvm_instructions): Started a thorough verification of
22474 invoke* bytecodes.
22475
22476 1997-08-19 Per Bothner <bothner@cygnus.com>
22477
22478 Support verification of jsr/ret subroutines (used for try/finally).
22479 * decl.c (return_address_type_node): New type node.
22480 * java-tree.h (LABEL_RETURN_LABEL, LABEL_RETURN_TYPE_STATE,
22481 RETURN_MAP_ADJUSTED, LABEL_RETURN_LABELS, LABEL_IN_SUBR,
22482 LABEL_SUBR_START, LABEL_SUBR_CONTEXT, BCODE_VERIFIED): New macros.
22483 (TYPE_UNSET, TYPE_SECOND, TYPE_NULL, TYPE_RETURN_ADDR, TYPE_UNUSED,
22484 TYPE_USED): New macros for special types in type_map.
22485
22486 * java-tree.h (BCODE_JUMP_TARGET): Renamed to BCODE_TARGET.
22487 (BCODE_BACKWARDS_TARGET, CODE_FORWARDS_TARGET): Replaced by
22488 BCODE_JUMP_TARGET.
22489 * expr.c (expand_byte_code): Fix logic to warn of unused instructions.
22490
22491 * expr.c (can_widen_reference_to): New function.
22492 (pop_type): Use it.
22493 (merge_type_state): Support handling start of subroutine.
22494 (push_pending_block): Return char* error message, instead of calling
22495 fatal on an error. Also handle subroutines.
22496 (verify_jvm_instructions): Handle errors from push_poending_block.
22497 Support jsr and ret instructions.
22498
22499 1997-08-19 Per Bothner <bothner@cygnus.com>
22500
22501 * jcf-io.c (find_classfile): Fix thinko.
22502 * jcf-dump.c: Add CONVERT2 (to match changed javaop.def).
22503
22504 1997-08-12 Jason Merrill <jason@yorick.cygnus.com>
22505
22506 * Makefile.in (BISON): Remove.
22507
22508 1997-08-07 Per Bothner <bothner@cygnus.com>
22509
22510 * Makefile.in: Convert to autoconf.
22511 * config-lang.in (outputs): Added java/Makefile.
22512
22513 * Make-lang.in, lang-specs.h, config-lang.in, Makefile.in:
22514 Rename cc1java to jc1.
22515
22516 * lang.c (init_parse, finihs_parse): New functions #ifdef USE_CPPLIB.
22517 * Makefile.in (INTERNAL_CFLAGS): Add @extra_c_flags.
22518
22519 * class.c (class_depth): Do load_class if needed.
22520
22521 Mostly better verification.
22522 * decl.c (pushdecl): Set TYPE_STUB_DECL for a type.
22523 (init_decl_processing): Change return type of soft_checkcast.
22524 * expr.c (expand_java_CHECKCAST): Do push_value of the "casted" value.
22525 * lang.c (put_decl_string, put_decl_node, lang_printable_name,
22526 lang_print_error): New functions.
22527 (lang_init): Set global hook print_error_function to lang_print_error.
22528 * expr.c: In the type_map ptr_type_node is only used for null now.
22529 (pop_type, merge_types): Hence ptr_type_node matches any reference.
22530 (merge_types): Dererence pointer to record types before comparing.
22531 (decode_newarray_type, merge_types): On error just return NULL.
22532 (build_java_binop): Add preliminary implementation (with warning)
22533 for COMPARE_L_EXPR and COMPARE_G_EXPR (i.e. [fd]cmp[lg]).
22534 (lookup_label): Set DECL_IGNORED_P (for dwarf2out).
22535 (expand_compare, expand_java_goto, expand_java_call): Don't
22536 push_pending_block, since that only makes sense when verifying.
22537 (merge_type_state): Different return codes.
22538 (push_pending_block): A block may need to be verified more than once.
22539 (expand_byte_code): Warn about unused code at code generation time.
22540 (verify_jvm_instruction): Changed logic, since code may need to be
22541 re-verified if type-state has changed. Also, better error handling.
22542 Implement acmpeq, acmpne, pop, pop2, swap, checkcast, instanceof.
22543 Improve newarray, anewarray, ?aload, athrow,
22544 * java-tree.h (LABEL_CHANGED): New macro.
22545
22546 1997-08-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
22547
22548 * decl.c (soft_athrow_node): New global variable initialized.
22549 * javaop.def (i2b, i2c, i2s): Invoke CONVERT2
22550 * typeck.c (convert): Added support for REAL_TYPE.
22551 (convert_to_char): New function.
22552 (convert): Handle CHAR_TYPE.
22553 * expr.c (expand_java_arraystore): Modified because CHAR/BYTE/BOOLEAN/
22554 SHORT now expect INT but store as CHAR/BYTE/BOOLEAN/SHORT.
22555 (expand_java_arrayload): CHAR/BYTE/BOOLEAN/SHORT now convert result to
22556 promoted type.
22557 (verify_jvm_instructions): Added break a the end of bogus unop: label.
22558 (OPCODE_<b|c|s>astore): Pop an int operand from the type stack
22559 (OPCODE_<b|c|s>astore): Push the promoted type onto the stack
22560 (process_jvm_instruction): New macro CONVERT2 for i2c, i2s and i2b.
22561 (JAVA_ARRAY_LENGTH_OFFSET, JAVA_ARRAY_DATA_OFFSET): Modified
22562 to Use The Right Things.
22563 (pop_type): Accept CHAR/BYTE/BOOLEAN/SHORT promoted type as
22564 compatible with INT. BOOLEAN is made equivalent to BYTE.
22565 (OPCODE_athrow, OPCODE_aconst_null, OPCODE_ifnull,
22566 OPCODE_ifnonnull): Now supported.
22567 (build_java_athrow): New function.
22568
22569 1997-08-04 Per Bothner <bothner@cygnus.com>
22570
22571 Rename method name <init> to match G++ (and fix mangling).
22572 * class.c (layout_class): Replace method name of <init> by class name.
22573 (make_method_value): Do inverse renaming of constructor from <init>.
22574 * java-tree.h (DECL_CONSTRUCTOR_P): New macro.
22575 * typeck.c (lookup_java_constructor): New function.
22576 * expr.c (expand_invoke): If method_name is <init>, call
22577 lookup_java_constructor to find constructor.
22578
22579 * parse.c (get_constant): Handle CONSTANT_Float and CONSTANT_Double.
22580
22581 1997-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
22582
22583 * parse.c (get_class_constant): Modified to handle array "classes"
22584 * typeck.c (set_local_type): Bug fixed when filling type_map[] with
22585 wide type.
22586 (convert): Modified to handle real type.
22587 * java-tree.h (soft_badarrayindex_node, soft_anewarray_node,
22588 soft_multianewarray, soft_newarray_node, soft_throw_node): New global
22589 variables declared.
22590 * decl.c (soft_badarrayindex_node, soft_anewarray_node,
22591 soft_multianewarray, soft_newarray_node, soft_throw_node): New
22592 global variables initialized.
22593 (find_local_variable): Handles the case of a pointer
22594 (end_java_method): Restore the use of one more scope
22595 * expr.c (build_java_arraynull_check, build_java_arrayaccess,
22596 build_java_array_length_access, expand_java_arrayload,
22597 expand_java_arraystore, expand_java_array_length,
22598 expand_java_multianewarray, expand_java_anewarray,
22599 build_java_check_indexed_type, is_array_type_p,
22600 build_java_throw_out_of_bound_exception): New functions.
22601 (STORE_INTERNAL): Now forces type of the decl to be type of the value.
22602 (OPCODE_arraylength, OPCODE_newarray, OPCODE_<t>astore,
22603 OPCODE_<t>aload): Implemented code for verification.
22604 (ARRAY_STORE, ARRAY_LOAD, ARRAY_LENGTH, ARRAY_NEW_PTR, ARRAY_NEW_NUM
22605 ARRAY_NEW_MULTI): Macro defined.
22606 (CONVERT): Modified to invoke convert().
22607 (case OPCODE_aload2): Fixed index typo from 2 to 1.
22608
22609 1997-07-31 Per Bothner <bothner@cygnus.com>
22610
22611 * class.c (push_class): Set DECL_ARTIFICIAL (for dbxout.c).
22612 (build_class_ref, is_compiled_class): Handle pointer-to-record types.
22613 (make_class_data): Field name needs '/' as package prefix.
22614 * expr.c (type_stack_dup, java_stack_dup): Fix fencepost errors.
22615
22616 1997-07-25 Per Bothner <bothner@cygnus.com>
22617
22618 Implement debug information for local variables.
22619 * java-tree.h (DECL_CODE_LENGTH, DECL_ARG_SLOT_COUNT,
22620 DECL_LOCAL_SLOT_NUMBER, DECL_LOCAL_START_PC, DECL_LOCAL_END_PC,
22621 DECL_LOCAL_SLOT_CHAIN): New macros.
22622 (struct lang_decl_var): New type.
22623 * parse.c (give_name_to_locals): Move to decl.c.
22624 * decl.c (give_name_to_locals): Re-written to Do The Right Thing.
22625 (start_java_method): Re-write parameter handling.
22626 (pending_local_decls): New global variable.
22627 (push_jvm_slot, maybe_pushlevels, maybe_poplevels): New functions.
22628 (find_local_variable): Accept pc so we can skips decls not in range.
22629 (struct binding_level): Add end_pc field.
22630 * expr.c (expand_byte_code): Call maybe_pushlevels and maybe_poplevels.
22631 (various): Change so current pc gets passed to find_local_variable.
22632
22633 * decl.c (init_decl_processing): Re-arrange fields in
22634 class_type_node and and method_type_node to match kaffe 0.9.1.
22635 * class.c (make_method_value, make_class_data): Update
22636 initializations to match.
22637
22638 1997-07-16 Per Bothner <bothner@cygnus.com>
22639
22640 * class.c (unicode_mangling_length, emit_unicode_mangled_name,
22641 append_gpp_mangled_name, append_gpp_mangled_type): New functions.
22642 (push_super_field): New function.
22643 (make_class_data): Handle inheritance of class static initializer.
22644 (layout_class): New name mangling.
22645 * constants.c (build_constant_data_ref): Init type of data array
22646 to a one-element array.
22647 (build_constants_constructor): Set DECL_SIZE from complete array type.
22648 * decl.c: Rename class_type, object_type etc to class_type_node,
22649 object_type_node etc. Make former inherit from latter.
22650 * expr.c (expand_invoke): Add cast of function address.
22651 * java-tree.h (TYPE_ARRAY_ELEMENT, PUSH_SUPER_VALUE): New.
22652 * parse.c (yyparse): Don't call layout_class here.
22653 * typeck.c (build_java_array_type): Set TYPE_ARRAY_ELEMENT.
22654
22655 1997-06-14 Per Bothner <bothner@cygnus.com>
22656
22657 * decl.c, class.c: Update method type to match latest Kaffe snapshot.
22658 * constants.c (lookup_name_constant): Renamed to alloc_name_constant.
22659 (alloc_class_constant): New.
22660 * expr.c (expand_invoke): Make sure method's class is initialized.
22661 * class.c (interits_from_p, emit_register_class): New functions.
22662 * parse.c (yyparse): Call emit_register_class.
22663
22664 1997-06-09 Per Bothner <bothner@cygnus.com>
22665
22666 * constants.c: New file, to handle constant pool.
22667 * Makefile.in (JAVA_OBJS): Add constants.o.
22668 * decl.c (init_decl_processing): Update, fix, finish various structs.
22669 (pushdecl_top_level): New.
22670 * parse.c (layout_class): Moved to class.c.
22671 * expr.c (java_push_constant_from_pool): New function.
22672 * class.c (build_class_ref): Make work fully
22673 (make_class_data): Emit super-class, constant pool, interface vector.
22674
22675 1997-06-03 Per Bothner <bothner@cygnus.com>
22676
22677 java-tree.h (DECL_SIGNATURE, BCODE_EMITTED): Remove.
22678 (LABEL_VERIFIED, BCODE_EXCEPTION_TARGET, TYPE_ARRAY_P): New.
22679 * class.c (class_depth): New function.
22680 (lookup_named_class): Replaced by new function lookup_class.
22681 * decl.c (object_type_node, string_type_node): New.
22682 Remove various types that we no longer need.
22683 * expr.c (verify_jvm_instructions): New separate verifier pass.
22684 (push_type, pop_type): New functions for verifier.
22685 (type_stack_dup, pop_argument_types, merge_types): Likewise.
22686 (expand_byte_code): Simplify, since we assume already verified.
22687 (expand_invoke): Now mostly works.
22688 * javaop.def: Rename ldc1->ldc, ldc2->ldc_w, ldc2w->ldc2_w.
22689 * lang.c (main_class): Move to parse.c. Don't make_class yet.
22690 * parse.c: Wait to allocate class object until we know its name.
22691 (layout_class): Calculate DECL_VINDEX for each virtual method.
22692 * typeck.c (get_array_type): Rename to ...
22693 (build_java_array_type): ... and provide working implementation.
22694 (build_java_signature): New function - build Java signature of type.
22695 (set_java_signature): New function - cache signature with type.
22696 (lookup_java_method): New function.
22697
22698 1997-05-06 Per Bothner <bothner@deneb.cygnus.com>
22699
22700 * class.c (ident_subst): Take extra SUFFIX parameter.
22701 (add_field): Set DECL_ASSEMBLER_NAME of static fields; more.
22702 (set_constant_value, build_static_field_ref, is_compiled_class): New.
22703 (build_class_ref): Actually implement.
22704 * decl.c, java-tree.h: Renamed some xx_type to xx_type_node.
22705 * decl.c (builtin_function): New.
22706 (init_decl_processing): Update for current Kaffe. Declare some
22707 builtin Kaffe functions.
22708 * expr.c (build_address_of): New.
22709 (expand_java_NEW, expand_java_INSTANCEOF, expand_java_CHECKCAST):
22710 Renamed (from expand_java_new etc), and added working implementations.
22711 (build_field_ref): Now also handle static fields.
22712 (expand_invoke): Implement invokestatic, and start implement rest.
22713 * java-opcodes.h: Use javaop.def to avoid duplicated list.
22714 * javaop.def: Rename invokevirt -> invokevirtual.
22715 * lang.c (use_handles): Removed.
22716 * parse.c: Add support for ConstantValue attribute.
22717 Handle nested loading of a class. (JPOOL_UTF): New.
22718
22719 1997-03-11 Per Bothner <bothner@deneb.cygnus.com>
22720
22721 * expr.c (expand_java_pushc): Support #ifndef REAL_ARITHMETIC case.
22722
22723 1997-02-27 Per Bothner <bothner@deneb.cygnus.com>
22724
22725 * Make-lang.in (java.install-man): New empty rule.
22726 * typeck.c (set_local_type): New function.
22727 * expr.c (STORE_INTERNAL): Call find_local_variable,
22728 not find_stack_slot. Call set_local_type.
22729
22730 1997-02-12 Per Bothner <bothner@kalessin.cygnus.com>
22731
22732 * java-tree.h: Various new macros for constructing RECORD_TYPEs,
22733 and building RECORD_TYPE CONSTRUCTORs.
22734 Also support for creating Utf8Const objects from an INDETIFIER_NODE.
22735
22736 * lang.c (use_handles): Change the default to 0.
22737 * decl.c: Define and build class_type, field_type, utf8const_type.
22738 * class.c (make_class_data, make_field_value,
22739 get_access_flags_from_decl, build_class_ref, build_utf8_ref,
22740 hashUtf8String, strLengthUtf8, mangled_classname:
22741 Functions to build reflective data structures.
22742 * parse.c (yyparse): Call make_class_data.
22743
22744 * jcf-io.c (open_class, find_classfile): New functions.
22745 * jcf-dump.c: Support reading classfile from explicitly-named
22746 class file (without CLASSPATH searching).
22747
22748 1996-10-24 Per Bothner <bothner@deneb.cygnus.com>
22749
22750 * jcf-reader.c: Add parameter list to HANDLE_CONSTANT_Utf8.
22751 * parse.c (JPOOL_UTF_LENGTH, JPOOL_UTF_DATA, HANDLE_CONSTANT_Utf8):
22752 Override jcf-reader macros so CONSTANT_Utf8 becomes tree node here.
22753 (get_constant): Now trivial for CONSTANT_Utf8.
22754
22755 * jcf.h: Make NEW_CPOOL the default.
22756 * jcf.h, jcf-reader.c, parse.c: Remove support for !NEW_CPOOL.
22757
22758 1996-10-24 Per Bothner <bothner@deneb.cygnus.com>
22759
22760 New directory.
22761
22762 \f
22763 Copyright (C) 1996-2013 Free Software Foundation, Inc.
22764
22765 Copying and distribution of this file, with or without modification,
22766 are permitted in any medium without royalty provided the copyright
22767 notice and this notice are preserved.