re PR c/40401 (ICE: verify_gimple failed)
[gcc.git] / gcc / java / ChangeLog
1 2009-07-17 Richard Guenther <rguenther@suse.de>
2
3 PR c/40401
4 * java-gimplify.c (java_genericize): Do not gimplify here.
5 But replace all local references.
6 (java_gimplify_expr): Do not replace local references here.
7 (java_gimplify_modify_expr): Likewise.
8 * jcf-parse.c (java_parse_file): Do not finalize the CU or
9 optimize the cgraph here.
10 * decl.c (java_replace_reference): Make static.
11 (java_replace_references): New function.
12 (end_java_method): Clear base_decl_map.
13 * java-tree.h (java_replace_references): Declare.
14 (java_replace_reference): Remove.
15
16 2009-07-14 Taras Glek <tglek@mozilla.com>
17 Rafael Espindola <espindola@google.com>
18
19 * Make-lang.in (java.install-plugin): New target for
20 installing plugin headers.
21
22 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
23
24 * class.c: Replace %J by an explicit location. Update all calls.
25
26 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
27
28 * jcf-parse.c: Replace %H by an explicit location. Update all calls.
29
30 2009-06-29 Andrew Haley <aph@redhat.com>
31
32 PR java/40590
33 * java-tree.h (cxx_keyword_p): New declaration.
34 * mangle_name.c (utf8_cmp): Move here from mangle.c.
35 (cxx_keywords): Likewise.
36 (cxx_keyword_p): Likewise.
37 (MANGLE_CXX_KEYWORDS): New macro.
38 (append_gpp_mangled_name): Use MANGLE_CXX_KEYWORDS.
39 (append_gpp_mangled_name): Likewise.
40 * mangle.c: Move code to mangle_name.c.
41 (mangle_member_name): Don't call cxx_keyword_p.
42
43 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
44
45 * java-gimplify.c (java_gimplify_block): New argument to
46 build_empty_stmt.
47 * expr.c (force_evaluation_order): Same.
48 * typeck.c: Add location to build_decl or PUSH_FIELD calls.
49 * class.c: Same.
50 * decl.c: Same.
51 * jcf-parse.c: Same.
52 * constants.c: Same.
53 * resource.c: Same.
54 * except.c: Same.
55 * builtins.c: Same.
56 * expr.c: Same.
57 * java-tree.h (PUSH_FIELD): Add location field.
58
59 2009-06-09 Ian Lance Taylor <iant@google.com>
60
61 * verify.h: Remove extern "C".
62
63 2009-06-07 Ian Lance Taylor <iant@google.com>
64
65 * jcf-parse.c (handle_constant): Change local variable 'kind' to
66 unsigned int.
67
68 2009-06-01 Ian Lance Taylor <iant@google.com>
69
70 * jcf-io.c (find_class): Use CONST_CAST.
71
72 2009-05-27 Ian Lance Taylor <iant@google.com>
73
74 * Make-lang.in ($(XGCJ)$(exeext)): Change $(COMPILER) to
75 $(LINKER).
76 (jc1$(exeext), jcf-dump$(exeext), jvgenmain$(exeext)): Likewise.
77
78 2009-05-26 Ian Lance Taylor <iant@google.com>
79
80 * Make-lang.in (jvspec.o): Use $(COMPILER).
81 ($(XGCJ)$(exeext), jc1$(exeext), jcf-dump$(exeext)): Likewise.
82 (jvgenmain$(exeext), java/jcf-io.o, java/jcf-path.o): Likewise.
83
84 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
85
86 * Make-lang.in (GCJ): Renamed to...
87 (XGCJ): ... this.
88
89 2009-04-27 Ian Lance Taylor <iant@google.com>
90
91 * builtins.c (java_builtins): Add casts to enum type.
92 * verify-impl.c (check_class_constant): Add cast to enum type.
93 (check_constant, check_wide_constant): Likewise.
94
95 2009-04-27 Richard Guenther <rguenther@suse.de>
96
97 PR java/38374
98 * constants.c (build_constants_constructor): Retain the old
99 pointer type as valid TYPE_POINTER_TO after patching the
100 type of the constant pool decl.
101
102 2009-04-24 Ian Lance Taylor <iant@google.com>
103
104 * jcf-parse.c (handle_constant): Add cast to enum type.
105
106 2009-04-21 Taras Glek <tglek@mozilla.com>
107
108 * builtins.c: Update GTY annotations to new syntax
109 * decl.c: Likewise
110 * java-tree.h: Likewise
111 * jcf.h: Likewise
112 * lang.c: Likewise
113
114 2009-04-21 Joseph Myers <joseph@codesourcery.com>
115
116 * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
117 license notices.
118
119 2009-04-18 Ian Lance Taylor <iant@google.com>
120
121 * verify-impl.c (verify_instructions_0): Add cast to enum type.
122
123 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
124
125 * builtins.c (compareAndSwapLong_builtin,
126 compareAndSwapInt_builtin, compareAndSwapObject_builtin,
127 VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc.
128
129 2009-03-31 Richard Guenther <rguenther@suse.de>
130
131 * java-gimplify.c (java_gimplify_expr): Do not manually gimplify
132 the first operand of binary and comaprison expressions.
133
134 2009-03-30 Joseph Myers <joseph@codesourcery.com>
135
136 PR rtl-optimization/323
137 * lang.c (java_post_options): Set flag_excess_precision_cmdline.
138 Give an error for -fexcess-precision=standard for processors where
139 the option is significant.
140
141 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
142
143 * lang.opt: Unify help text for -Wdeprecated.
144
145 2009-02-03 Jakub Jelinek <jakub@redhat.com>
146
147 * jcf-dump.c (version): Update copyright notice dates.
148
149 2009-01-16 Richard Guenther <rguenther@suse.de>
150
151 PR tree-optimization/38835
152 PR middle-end/36227
153 * builtins.c (build_addr_sum): Use POINTER_PLUS_EXPR.
154
155 2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
156
157 PR bootstrap/38262
158 * Make-lang.in (jc1): Add BACKENDLIBS, remove GMPLIBS.
159
160 2008-11-04 Andrew Haley <aph@redhat.com>
161
162 PR java/37068
163 * jcf-parse.c (java_emit_static_constructor): Don't call
164 cgraph_build_static_cdtor. Rewrite.
165
166 2008-10-24 Jakub Jelinek <jakub@redhat.com>
167
168 * Make-lang.in (check-java-subtargets): New target.
169
170 2008-10-16 David Edelsohn <edelsohn@gnu.org>
171
172 PR target/35483
173 * Make-lang.in (class.o): Depend on $(TM_P_H).
174 (expr.o): Same.
175 * class.c: Include tm_p.h.
176 * expr.c: Include tm_p.h.
177
178 2008-10-14 Andrew Haley <aph@redhat.com>
179
180 * constants.c (build_constant_data_ref): Make sure we only build
181 one copy of the decl for the constant pool.
182
183 2008-09-22 Andrew Haley <aph@redhat.com>
184
185 * expr.c (rules): Add new rule for
186 gnu.java.lang.VMCPStringBuilder.toString.
187 (rewrite_rule.new_classname): New field.
188 (maybe_rewrite_invocation): Use new_classname field instead of
189 DECL_CONTEXT (*method_p).
190 Allow rewrite_arglist to be NULL.
191
192 2008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
193
194 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
195 (java_get_callee_fndecl): Kill.
196
197 2008-09-17 Jan Hubicka <jh@suse.cz>
198
199 PR c++/18071
200 * class.c (add_method_1): Do not initialize DECL_INLINE.
201 (make_local_function_alias): Likewise.
202 * expr.c (rewrite_arglist_getcaller): Set DECL_UNINLINABLE.
203 * lang.c (java_decl_ok_for_sibcall): Use DECL_UNINLINABLE.
204
205 2008-09-09 Richard Guenther <rguenther@suse.de>
206
207 * decl.c (build_result_decl): Remove no longer applicable
208 promotion.
209
210 2008-09-05 David Daney <ddaney@avtrex.com>
211
212 * gcj.texi (-freduced-reflection): Clarify option's restrictions.
213
214 2008-08-21 David Daney <ddaney@avtrex.com>
215
216 * class.c (make_class_data): Don't add field_index when
217 flag_reduced_reflection set.
218
219 2008-08-12 Ulrich Weigand <uweigand@de.ibm.com>
220
221 * typeck.c (convert): Do not check for TARGET_FLOAT_FORMAT.
222
223 2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
224
225 PR 28875
226 * lang.c (java_handle_option): Replace set_Wunused with
227 warn_unused.
228
229 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
230
231 * gcj.texi: Update copyright years. Do not list GPL as
232 Invariant Section.
233
234 2008-07-29 Jakub Jelinek <jakub@redhat.com>
235
236 * class.c (build_utf8_ref): Set DECL_SIZE and DECL_SIZE_UNIT
237 from ctype's sizes.
238
239 * class.c (build_utf8_ref): Pad initializer string to utf8const_type's
240 alignment.
241
242 2008-07-29 Jan Hubicka <jh@suse.cz>
243
244 * lang.c (java_post_options): Remove handling of flag_no_inline.
245
246 2008-07-28 Richard Guenther <rguenther@suse.de>
247
248 Merge from gimple-tuples-branch.
249
250 2008-07-18 Richard Guenther <rguenther@suse.de>
251
252 * expr.c: Include tree-iterator.h.
253 * Make-lang.in (expr.o): Add tree-iterator.h dependency.
254
255 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
256
257 * java-gimplify.c: Include gimple.h instead of tree-gimple.h.
258 * expr.c: Same.
259
260 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
261
262 * java-gimplify.c (java_gimplify_expr): Same.
263 (java_gimplify_modify_expr): Same.
264 * java-tree.h: Rename GENERIC_NEXT to TREE_CHAIN.
265
266 2008-05-02 Diego Novillo <dnovillo@google.com>
267
268 * expr.c (build_java_throw_out_of_bounds_exception): Fix
269 mixed declarations and code.
270
271 2008-05-02 Doug Kwan <dougkwan@google.com>
272
273 * expr.c (build_java_throw_out_of_bounds_exception ): Wrap call to
274 _Jv_ThrowBadArrayIndex with a COMPOUND_EXPR to return 0.
275
276 2008-02-19 Diego Novillo <dnovillo@google.com>
277
278 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
279
280 * java-gimplify.c (java_gimplify_self_mod_expr): Change
281 gimple_seq arguments to gimple_seq *. Update all users.
282
283 2007-11-26 Aldy Hernandez <aldyh@redhat.com>
284
285 * java-gimplify.c (java_gimplify_expr): Make pre_p and post_p
286 sequences.
287 (java_gimplify_self_mod_expr): Same.
288 * java-tree.h (java_gimplify_expr): Make pre_p and post_p
289 sequences.
290
291 2008-07-24 Jan Hubicka <jh@suse.cz>
292
293 * java/decl.c: Include cgraph.h
294 (end_java_method): Remove non-unit-at-a-time code.
295 (java_mark_decl_local): Likewise; sanity check that we don't touch
296 finalized nodes.
297
298 2008-07-15 Jan Hubicka <jh@suse.cz>
299
300 * lang.c (java_init_options): Enable unit-at-a-time by default.
301
302 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
303
304 * Make-lang.in (jvspec.o): Fix dependencies.
305
306 2008-07-06 Tom Tromey <tromey@redhat.com>
307
308 * Make-lang.in (java/parse.o-warn): Remove.
309 (java/jcf-io.o-warn): Remove.
310
311 2008-07-05 Tom Tromey <tromey@redhat.com>
312
313 * jcf-io.c: Don't include fnmatch.h. Don't use JCF_USE_SCANDIR.
314 (compare_path): Remove.
315 (java_or_class_file): Likewise.
316 (memoized_dirlist_entry): Likewise.
317 (memoized_dirlist_hash): Likewise.
318 (memoized_dirlist_lookup_eq): Likewise.
319 (memoized_dirlists): Likewise.
320 (caching_stat): Likewise.
321 (find_class): Use stat.
322 * jcf.h (JCF_USE_SCANDIR): Remove.
323
324 2008-06-30 Joshua Sumali <jsumali@redhat.com>
325
326 * Make-lang.in (JAVA_MANFILES): Add doc/aot-compile.1 and
327 doc/rebuild-gcj-db.1
328 (java.uninstall): Likewise.
329 (java.maintainer-clean): Likewise.
330 (aot-compile.pod): New rule.
331 (rebuild-gcj-db.pod): New rule.
332 (java.install-man): Install doc/aot-compile.1 and doc/rebuild-gcj-db.1
333 * gcj.texi: Add new sections for aot-compile and rebuild-gcj-db.
334
335 2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
336
337 * Make-lang.in (java/jcf-io.o-warn): New.
338
339 2008-06-24 Tom Tromey <tromey@redhat.com>
340
341 * jcf-path.c (jcf_path_init): Don't name variable 'try'.
342 * expr.c (add_type_assertion): Rename argument.
343 (build_java_arrayaccess): Don't name variable 'throw'.
344 (ARRAY_NEW_MULTI): Don't name variable 'class'.
345 * jcf-io.c (find_class): Don't name variable 'class'.
346 * mangle.c (compression_table_add): Don't name variable 'new'.
347 * constants.c (cpool_for_class): Rename argument.
348 (alloc_constant_fieldref): Likewise.
349 * jcf-parse.c (handle_innerclass_attribute): Don't name variable
350 'class'.
351 (read_class): Likewise.
352 (parse_zip_file_entries): Likewise.
353 (process_zip_dir): Likewise.
354 * decl.c (java_mark_class_local): Rename argument.
355 * class.c (GEN_TABLE): Use type_name, not typename.
356 (gen_indirect_dispatch_tables): Likewise.
357 (add_field): Rename argument.
358 (is_compiled_class): Likewise.
359 (safe_layout_class): Likewise.
360 (emit_assertion_table): Likewise.
361 * typeck.c (has_method): Rename argument.
362
363 2008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
364
365 * class.c (ident_subst, mangled_classname, unmangle_classname,
366 gen_indirect_dispatch_tables, add_method_1,
367 build_fieldref_cache_entry, make_local_function_alias,
368 layout_class, java_treetreehash_find, java_treetreehash_new,
369 split_qualified_name): Fix for -Wc++-compat.
370 * constants.c (set_constant_entry, cpool_for_class): Likewise.
371 * decl.c (make_binding_level, java_dup_lang_specific_decl,
372 start_java_method): Likewise.
373 * except.c (prepare_eh_table_type): Likewise.
374 * expr.c (type_assertion_hash, note_instructions): Likewise.
375 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC,
376 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
377 * jcf-io.c (jcf_filbuf_from_stdio, opendir_in_zip, find_class):
378 Likewise.
379 * jcf-parse.c (reverse, java_read_sourcefilenames,
380 annotation_grow, rewrite_reflection_indexes, java_parse_file,
381 process_zip_dir): Likewise.
382 * jcf-path.c (add_entry, add_path, jcf_path_init,
383 jcf_path_extdirs_arg): Likewise.
384 * jcf-reader.c (jcf_parse_constant_pool): Likewise.
385 * jvgenmain.c (do_mangle_classname): Likewise.
386 * lang.c (put_decl_string): Likewise.
387 * verify-impl.c (make_state_copy, make_state, add_new_state):
388 Likewise.
389
390 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
391
392 * gcj.texi: Expand TABs, remove whitespace from blank lines.
393
394 2008-06-14 Tom Tromey <tromey@redhat.com>
395
396 PR java/36247:
397 * class.c (build_class_ref): Initialize this_classdollar when
398 needed.
399
400 2008-05-23 Andrew Haley <aph@redhat.com>
401
402 * jcf-parse.c (give_name_to_class): Call find_sourcefile to find full
403 pathname of source file.
404
405 2008-05-12 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
406
407 * jcf-dump.c (print_constant): Use
408 HOST_LONG_LONG_FORMAT.
409
410 2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
411
412 * decl.c (java_init_decl_processing): Change DECL_IS_PURE to
413 DECL_PURE_P.
414
415 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
416
417 * class.c (build_utf8_ref): Don't set TREE_INVARIANT.
418 (build_classdollar_field): Don't set TREE_INVARIANT.
419 (get_dispatch_table): Don't set TREE_INVARIANT.
420 (make_class_data): Don't set TREE_INVARIANT.
421 (build_symbol_entry): Don't set TREE_INVARIANT.
422 (emit_symbol_table): Don't set TREE_INVARIANT.
423 * constants.c (build_constant_data_ref): Don't set TREE_INVARIANT.
424 (build_ref_from_constant_pool): Don't set TREE_INVARIANT.
425 * resource.c (compile_resource_data): Don't set TREE_INVARIANT.
426 * expr.c (cache_cpool_data_ref): Don't set TREE_INVARIANT.
427
428 2008-04-03 Tom Tromey <tromey@redhat.com>
429
430 * Make-lang.in (java_OBJS): New variable.
431
432 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
433
434 * java-tree.h (insert_block): Kill.
435 * decl.c (insert_block): Kill.
436
437 2008-04-01 Joseph Myers <joseph@codesourcery.com>
438
439 * gcj.texi: Include gpl_v3.texi instead of gpl.texi
440 * Make-lang.in (TEXI_JAVA_FILES): Include gpl_v3.texi instead of
441 gpl.texi.
442
443 2008-03-27 Tom Tromey <tromey@redhat.com>
444
445 * Make-lang.in: Revert automatic dependency patch.
446
447 2008-03-25 Tom Tromey <tromey@redhat.com>
448
449 * Make-lang.in: Removed most explicit .o targets.
450 (java/jvspec.o): Reduce to variable setting. Moved to java/.
451 ($(GCJ)$(exeext)): Update.
452 (JAVA_OBJS): New variable.
453 (JCFDUMP_OBJS): Reformat.
454 (java_OBJS): New variable.
455 (java/jvspec.o-warn): Update.
456 (java/parse.o-warn): Remove.
457 (JAVA_TREE_H): Remove.
458 (java/jcf-io.o): Reduce to variable setting.
459 (ALL_CPPFLAGS): Likewise.
460
461 2008-03-12 Paolo Bonzini <bonzini@gnu.org>
462
463 * mangle.c (java_mangle_decl): Remove dead check.
464
465 2008-03-11 Paolo Bonzini <bonzini@gnu.org>
466
467 * jcf-parse.c (java_parse_file): Assert binding levels are
468 left in order.
469 * lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, java_clear_binding_stack):
470 Delete.
471
472 2008-03-02 Jakub Jelinek <jakub@redhat.com>
473
474 * jcf-dump.c (version): Update copyright notice dates.
475
476 2008-02-29 Tom Tromey <tromey@redhat.com>
477
478 * expr.c (expand_byte_code): Set DECL_FUNCTION_LAST_LINE on
479 method.
480 * java-tree.h (struct lang_decl_func): Remove obsolete comment.
481
482 2008-02-26 Tom Tromey <tromey@redhat.com>
483
484 * lang.c (java_post_options): Remove conditional.
485 * expr.c (expand_byte_code): Remove old location code.
486 * jcf-parse.c (set_source_filename): Remove old location code.
487 (give_name_to_class): Likewise.
488 (jcf_parse): Likewise.
489 (duplicate_class_warning): Likewise.
490 (parse_class_file): Likewise.
491 (java_parse_file): Likewise.
492 * decl.c (finish_method): Remove old location code.
493 * class.c (push_class): Remove old location code.
494
495 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
496
497 PR other/35107
498 * Make-lang.in (jc1): Add $(GMPLIBS).
499
500 2008-01-23 David Daney <ddaney@avtrex.com>
501
502 * class.c (hide) Rename to...
503 (java_hide_decl) ... this throughout, and make public.
504 * resource.c (Jr_count): Remove.
505 (compile_resource_data): Call java_mangle_resource_name to generate
506 decl name. Make resource decl public and hidden.
507 * mangle.c (java_mangle_resource_name): New function.
508 * java-tree.h (java_hide_decl, java_mangle_resource_name): Declare
509 functions.
510
511 2008-01-04 Andrew Haley <aph@redhat.com>
512
513 PR java/17779
514 * jcf-parse.c (parse_zip_file_entries): Move decl to compile on
515 C90.
516
517 2008-01-03 Andrew Haley <aph@redhat.com>
518
519 PR java/17779
520 * jcf-parse.c (parse_zip_file_entries): Unset TYPE_ALIAS_SET if
521 we're about to re-layout the type.
522
523 2007-12-20 Alexandre Oliva <aoliva@redhat.com>
524
525 * lang.c (java_classify_record): Don't return
526 RECORD_IS_INTERFACE for now.
527
528 2007-12-18 Andrew Haley <aph@redhat.com>
529
530 PR java/27643
531 * jcf-parse.c (java_parse_file): Remove call to
532 java_mark_class_local.
533 (parse_class_file): Reinstate call to java_mark_class_local here.
534 * decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is
535 already set, call java_mangle_decl() and make_decl_rtl() to
536 rewrite its name as a hidden alias.
537
538 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
539
540 PR debug/7081
541 * lang.c (java_classify_record): New.
542 (LANG_HOOKS_CLASSIFY_RECORD): Override.
543
544 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
545
546 PR 34081/C++
547 * decl.c (finish_method): Pass 'false' for the new
548 allocate_struct_function parameter.
549
550 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
551
552 * expr.c (build_jni_stub): Use the computed jni func type for
553 variable meth.
554
555 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
556
557 * class.c (JAVA_TREEHASHHASH_H): Use TYPE_UID.
558
559 2007-11-26 Alexandre Oliva <aoliva@redhat.com>
560
561 * expr.c (type_assertion_hash): Hash type uids rather than
562 tree pointers.
563
564 2007-11-17 David Daney <ddaney@avtrex.com>
565 Andrew Haley <aph@redhat.com>
566
567 * constants.c (build_constants_constructor): Use POINTER_SIZE
568 insead of BITS_PER_WORD in big-endian work around.
569
570 2007-11-07 Tom Tromey <tromey@redhat.com>
571
572 PR java/34019:
573 * gcj.texi (Input Options): Add missing noun.
574
575 2007-11-02 Tom Tromey <tromey@redhat.com>
576
577 PR java/33765:
578 * jcf-parse.c (java_parse_file): Ignore ZIPEMPTYMAGIC files.
579 * zipfile.h (ZIPEMPTYMAGIC): New define.
580
581 2007-11-01 Tom Tromey <tromey@redhat.com>
582
583 * Make-lang.in (java/jcf-dump.o): Depend on zipfile.h.
584 (java/jcf-parse.o): Depend on jcf-reader.c, zipfile.h, and jcf.h.
585 (java/jcf-io.o): Depend on zipfile.h.
586
587 2007-10-17 Richard Guenther <rguenther@suse.de>
588
589 * Make-lang.in (java/builtins.o): Add $(OPTABS_H) and $(EXPR_H)
590 dependencies.
591
592 2007-10-03 Andrew Haley <aph@redhat.com>
593
594 PR java/33639
595 * class.c (mangled_classname): Detect and replace illegal
596 characters in assembly language symbols.
597 (gen_indirect_dispatch_tables): Call mangled_classname() on
598 the type.
599
600 2007-09-27 Jakub Jelinek <jakub@redhat.com>
601
602 * lang.c (java_print_error_function): Add third argument.
603
604 2007-09-15 Tom Tromey <tromey@redhat.com>
605
606 * java-tree.h (struct lang_decl_func) <function_decl_body>:
607 Remove.
608 <init_final>: Likewise.
609 * lang.c (java_dump_tree): Update.
610 * java-tree.h (DECL_FUNCTION_BODY): Remove.
611
612 2007-09-11 Jan Hubicka <jh@suse.cz>
613
614 * decl.c (java_expand_body): Kill.
615 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
616
617 2007-09-06 Tom Tromey <tromey@redhat.com>
618
619 * jcf-parse.c (parse_class_file): Re-enter the current file.
620
621 2007-09-07 Roman Zippel <zippel@linux-m68k.org>
622
623 * boehm.c (mark_reference_fields): Move misaligned pointer check
624 after JREFERENCE_TYPE_P test
625
626 2007-09-06 Roman Zippel <zippel@linux-m68k.org>
627
628 * boehm.c (mark_reference_fields): Don't use bitmap as gc_descr
629 if pointer is misaligned.
630
631 2007-09-06 Tom Tromey <tromey@redhat.com>
632
633 * lang.c (java_post_options): Update.
634 * jcf-parse.c (set_source_filename): Update.
635 (give_name_to_class): Update.
636 (jcf_parse): Update.
637 (duplicate_class_warning): Update.
638 (parse_class_file): Update.
639 (java_parse_file): Update.
640 * expr.c (expand_byte_code): Update.
641
642 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
643
644 * decl.c (finish_method): Use set_cfun.
645
646 2007-09-04 Andrew Haley <aph@redhat.com>
647
648 * decl.c (java_init_decl_processing): Call "__cxa_end_cleanup"
649 when using the ARM EABI.
650
651 2007-09-03 Daniel Jacobowitz <dan@codesourcery.com>
652
653 * Make-lang.in (jvspec.o): Remove SHLIB_MULTILIB.
654
655 2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
656
657 * jcf-parse.c (read_class, java_parse_file): Supply a TYPE for
658 CONST_CAST.
659 * jcf.h (JCF_FINISH): Likewise.
660
661 2007-08-28 Tom Tromey <tromey@redhat.com>
662
663 * Make-lang.in (java.tags): Don't tag '*.y' files.
664
665 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
666
667 * lang.c (java_decl_ok_for_sibcall): Likewise.
668
669 2007-08-21 Paul Brook <paul@codesourcery.com>
670 Nathan Sidwell <nathan@codesourcery.com>
671 Mark Mitchell <mark@codesourcery.com>
672 Joseph Myers <joseph@codesourcery.com>
673
674 * jcf-dump.c (version): Use pkgversion_string. Update copyright
675 date.
676
677 2007-08-20 Richard Guenther <rguenther@suse.de>
678
679 * lang.c (java_tree_inlining_walk_subtrees): Remove.
680 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Remove.
681
682 2007-08-17 Tom Tromey <tromey@redhat.com>
683
684 * typeck.c (find_method_in_interfaces): Update.
685 * jcf-parse.c (load_class): Update.
686 * java-gimplify.c (java_gimplify_component_ref): Removed.
687 (java_gimplify_modify_expr): Update. Removed pre_p and post_p
688 arguments.
689 (java_gimplify_expr): Update.
690 * decl.c (java_init_decl_processing): Update.
691 * class.c (set_constant_value): Update.
692 (make_class_data): Update.
693 (finish_class): Update.
694 (build_static_field_ref): Update.
695 (is_compiled_class): Update.
696 (maybe_layout_super_class): Update.
697 (layout_class): Update.
698 (layout_class_method): Update.
699 * java-tree.h (CAN_COMPLETE_NORMALLY): Removed.
700 (lang_decl_var) <am, final_iud, cif>: Removed fields.
701 (lang_decl_func) <init_calls_this>: Removed field.
702 (lang_type) <dot_class, verify_method>: Removed fields.
703 (FIELD_NESTED_ACCESS): Removed.
704 (FIELD_NESTED_ACCESS_P): Removed.
705 (DECL_FIELD_FINAL_IUD): Removed.
706 (DECL_LOCAL_FINAL_IUD): Removed
707 (LOCAL_FINAL_P): Removed.
708 (FINAL_VARIABLE_P): Removed.
709 (CLASS_FINAL_VARIABLE_P): Removed.
710 (DECL_BIT_INDEX): Removed.
711 (DECL_INIT_CALLS_THIS): Removed.
712 (FIELD_LOCAL_ALIAS): Removed.
713 (FIELD_LOCAL_ALIAS_USED): Removed.
714 (FIELD_THISN): Removed.
715 (DECL_FUNCTION_INIT_TEST_CLASS): Removed.
716 (LOCAL_CLASS_INITIALIZATION_FLAG): Removed.
717 (LOCAL_CLASS_INITIALIZATION_FLAG_P): Removed.
718 (TYPE_DOT_CLASS): Removed.
719 (TYPE_VERIFY_METHOD): Removed.
720 (ID_CLASSDOLLAR_P): Removed.
721 (enum java_tree_index) <JTI_CLASSDOLLAR_IDENTIFIER_NODE>:
722 Removed.
723 (classdollar_identifier_node): Removed.
724 (TYPE_UNKNOWN): Removed.
725 (CLASS_FROM_SOURCE_P): Removed.
726 * expr.c (build_jni_stub): Update.
727 (force_evaluation_order): Update.
728 (build_java_empty_stmt): Update.
729 (build_class_init): Update.
730 (java_stack_swap): Update.
731 (build_jni_stub): Update.
732
733 2007-08-17 Tom Tromey <tromey@redhat.com>
734
735 * java-tree.h (LABEL_TYPE_STATE): Removed.
736 (load_type_state): Removed.
737 (LABEL_PC): Removed.
738 (LABEL_VERIFIED): Removed.
739 (type_states): Declare.
740 * expr.c (type_states): New global.
741 (load_type_state): Now static. Use type_states. Changed
742 argument.
743 (lookup_label): Don't set LABEL_PC.
744 (expand_byte_code): Don't use LABEL_VERIFIED.
745 (note_instructions): Initialize type_states.
746 * verify-glue.c (vfy_note_stack_depth): Rewrote.
747 (vfy_note_stack_type): Use type_states.
748 (vfy_note_local_type): Likewise.
749
750 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
751
752 * jcf-parse.c (read_class, java_parse_file): Use CONST_CAST.
753 * jcf.h (JCF_FINISH): Likewise.
754
755 2007-07-31 Nick Clifton <nickc@redhat.com>
756
757 * java-gimplify.c: Change copyright header to refer to version 3
758 of the GNU General Public License and to point readers at the
759 COPYING3 file and the FSF's license web page.
760 * typeck.c, lang-specs.h, mangle_name.c, jcf-dump.c, class.c,
761 decl.c, config-lang.in, jcf-parse.c, constants.c, Make-lang.in,
762 resource.c, except.c, builtins.c, jvspec.c, java-tree.def,
763 javaop.def, jcf-path.c, verify-glue.c, jcf-depend.c, lang.opt,
764 jcf-reader.c, mangle.c, zextract.c, jcf-io.c, jcf.h, zipfile.h,
765 verify.h, java-except.h, win32-host.c, expr.c, jvgenmain.c,
766 parse.h, lang.c, java-tree.h, javaop.h, boehm.c: Likewise.
767
768 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
769
770 * jcf-io.c (find_class): Fix -Wcast-qual warnings.
771
772 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
773
774 * lang.c (java_get_callee_fndecl): Constify.
775
776 2007-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
777
778 * mangle.c (set_type_package_list): Constify.
779 * verify-glue.c (vfy_make_string): Delete.
780 * verify.h (vfy_make_string): Likewise.
781
782 2007-07-26 Tom Tromey <tromey@redhat.com>
783
784 * java-tree.h (push_labeled_block, pop_labeled_block): Remove.
785 (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
786 EXIT_BLOCK_LABELED_BLOCK): Likewise.
787 * lang.c (java_tree_inlining_walk_subtrees): Update.
788 (java_dump_tree): Likewise.
789 * java-tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRY_EXPR):
790 Remove.
791 * decl.c (push_labeled_block, pop_labeled_block): Remove.
792 * java-gimplify.c (java_gimplify_labeled_block_expr,
793 java_gimplify_exit_block_expr, java_gimplify_try_expr): Remove.
794 (java_gimplify_expr): Update.
795
796 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
797
798 * class.c (java_treetreehash_hash, java_treetreehash_compare):
799 Constify.
800 * expr.c (type_assertion_eq): Likewise.
801 * jcf-io.c (compare_path): Likewise.
802 * jcf-parse.c (cmpstringp): Likewise.
803 * verify-impl.c (get_one_type, compute_argument_types,
804 compute_return_type): Likewise.
805
806 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
807
808 PR target/32462
809 PR libgcj/32465
810 * class.c (hide): Wrap in HAVE_GAS_HIDDEN.
811
812 2007-07-12 Richard Guenther <rguenther@suse.de>
813
814 * expr.c (expand_java_return): RETURN_EXPR has void type.
815 (build_jni_stub): Likewise. Use a comparison against zero
816 for null-pointer test in COND_EXPR.
817 (build_field_ref): Build POINTER_PLUS_EXPR with correct
818 type. Convert result instead.
819 (build_invokevirtual): Likewise.
820
821 2007-07-09 Geoffrey Keating <geoffk@apple.com>
822
823 PR 32617
824 * lang.c (java_init): Remove setting of force_align_functions_log.
825 * class.c (add_method_1): Set DECL_ALIGN of non-static method
826 to cope with ptrmemfunc_vbit_in_pfn.
827
828 2007-07-03 David Daney <ddaney@avtrex.com>
829
830 * java/Make-lang.in (doc/gcj.info): Add $(gcc_docdir) to
831 include path.
832 (doc/gcj.dvi): Same.
833 (doc/gcj.pdf): Same.
834 (java/index.html): Same.
835
836 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
837
838 * class.c (make_class_data): Build the index in sizetype.
839 Use POINTER_PLUS_EXPR instead of PLUS_EXPR when
840 adding to a pointer type.
841 (build_symbol_entry): Likewise.
842 * expr.c (build_java_arrayaccess): Likewise.
843 (build_field_ref): Likewise.
844 (build_known_method_ref): Likewise.
845 (build_invokevirtual): Likewise.
846 * except.c (build_exception_object_ref): Do a
847 NEGATIVE and then a POINTER_PLUS_EXPR instead
848 of a MINUS_EXPR.
849
850 2007-06-11 Rafael Ávila de Espíndola <espindola@google.com>
851
852 * typeck.c (java_signed_type): Remove.
853 * lang.c (LANG_HOOKS_SIGNED_TYPE): Remove.
854 * java-tree.h (java_signed_type): Remove.
855
856 2007-05-18 Geoffrey Keating <geoffk@apple.com>
857
858 * jcf-dump.c (HANDLE_MAGIC): Use 'unsigned long' for %lx.
859 (print_constant): Likewise.
860
861 2007-05-14 Rafael Ávila de Espíndola <espindola@google.com>
862
863 * expr.c (build_java_binop): Use unsigned_type_for instead of
864 java_unsigned_type.
865 * java-tree.h (java_unsigned_type): Remove.
866 * lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
867 * typeck.c (java_unsigned_type): Remove.
868
869 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
870
871 * java-tree.h (lang_tree_node): Use GENERIC_NEXT
872 instead of checking GIMPLE_STMT_P in chain_next.
873
874 2007-04-06 Colin Walters <walters@redhat.com>
875
876 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161701
877 * jcf-io.c (open_class): Copy 'filename'.
878
879 2007-04-03 Andrew Haley <aph@redhat.com>
880
881 * jvgenmain.c (main): Change main to use class$, not class$$.
882 (do_mangle_classname): Likewise.
883 * class.c (hide): New function.
884 (add_field): Hide everything that shouldn't be visible outside a
885 DSO.
886 (build_static_class_ref): Likewise.
887 (build_classdollar_field): Likewise.
888 (make_class_data): Likewise.
889 (layout_class_method): Likewise.
890 * expr.c (special_method_p): New function.
891
892 * class.c (push_class): Don't bogusly guess the source filename.
893 * jcf-parse.c (give_name_to_class): Don't set input_location from
894 DECL_ARTIFICIAL decls.
895
896 2007-03-30 Rafael Ávila de Espíndola <espindola@google.com>
897
898 * typeck.c (java_signed_or_unsigned_type): Removed.
899 (java_signed_type): use get_signed_or_unsigned_type instead of
900 java_signed_or_unsigned_type.
901 (java_unsigned_type): Ditto.
902 * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Removed.
903 * java-tree.h (java_signed_or_unsigned_type): Removed.
904
905 2007-03-26 Tom Tromey <tromey@redhat.com>
906
907 * Make-lang.in (JAVA_MANFILES): Removed grmiregistry.1.
908 (java.maintainer-clean): Likewise.
909 (java.install-man): Likewise.
910 (.INTERMEDIATE): Removed grmiregistry.pod.
911 (grmiregistry.pod): Removed.
912 * gcj.texi (Invoking gcjh): Removed.
913 (Invoking gjnih): Likewise.
914 (Invoking grmiregistry): Likewise.
915 (direntry): Updated.
916 (Top): Likewise.
917 (which-gcj): Removed.
918
919 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
920
921 * Make-lang.in: Add install-pdf target as copied from
922 automake v1.10 rules.
923
924 2007-02-27 Brooks Moses <brooks.moses@codesourcery.com>
925
926 * gcj.texi: Standardize title page.
927
928 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
929
930 * class.c: Fix a comment typo.
931
932 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
933 Brooks Moses <brooks.moses@codesourcery.com>
934 Lee Millward <lee.millward@codesourcery.com>
935
936 * java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
937 of build3.
938 (BUILD_MONITOR_EXIT): Likewise.
939
940 * java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
941 (java_gimplify_modify_expr): Likewise.
942
943 * class.c (cache_this_class_ref): Use build_call_expr.
944 (build_static_field_ref): Likewise.
945 (emit_indirect_register_classes): Likewise.
946 (emit_register_classes): Likewise.
947
948 * resource.c (write_resource_constructor): Use build_call_expr.
949
950 * builtins.c (builtin_creator_function): Change interpretation of
951 the second parameter to be the whole CALL_EXPR instead of the arglist.
952 (max_builtin): Tweak parameter list. Use new CALL_EXPR accessors.
953 (min_builtin): Likewise.
954 (abs_builtin): Likewise.
955 (java_build_function_call_expr): Likewise.
956 (convert_real): Likewise.
957 (UNMARSHAL3): Likewise.
958 (UNMARSHAL4): Likewise.
959 (UNMARSHAL5): Likewise.
960 (build_arglist_for_builtin): Delete. Fix callers to use
961 build_call_expr instead.
962 (putObject_builtin): Tweak parameter list. Use new CALL_EXPR
963 accessors.
964 (compareAndSwapInt_builtin): Likewise.
965 (compareAndSwapLong_builtin): Likewise.
966 (compareAndSwapObject_builtin): Likewise.
967 (putVolatile_builtin): Likewise.
968 (getVolatile_builtin): Likewise.
969 (VMSupportsCS8_builtin): Likewise.
970 (check_for_builtin): Pass entire CALL_EXPR to builtin expander
971 instead of arglist.
972
973 * expr.c (build_java_athrow): Use build_call_nary instead of build3.
974 (build_java_throw_out_of_bounds_exception): Likewise.
975 (java_check_reference): Likewise.
976 (build_java_arraystore_check): Likewise.
977 (build_newarray): Likewise.
978 (build_anewarray): Likewise.
979 (expand_java_multinewarray): Use build_call_list instead of build3.
980 (build_java_monitor): Use build_call_nary instead of build3.
981 (java_create_object): Likewise.
982 (expand_java_NEW): Likewise.
983 (build_instanceof): Likewise.
984 (expand_java_CHECKCAST): Likewise.
985 (build_java_soft_divmod): Likewise.
986 (build_java_binop): Likewise.
987 (build_field_ref): Likewise.
988 (build_class_init): Likewise.
989 (rewrite_arglist_getcaller): Use build_call_expr.
990 (build_invokeinterface): Use build_call_nary instead of build3.
991 (expand_invoke): Use build_call_list instead of build3.
992 (build_jni_stub): Use build_call_nary, build_call_list, or
993 build_call_expr instead of build3.
994 (expand_java_field_op): Use build_call_expr instead of build3.
995 (force_evaluation_order): Use new CALL_EXPR accessors.
996
997 * lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
998
999 2007-02-15 David Daney <ddaney@avtrex.com>
1000
1001 * Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1.
1002 (java.maintainer-clean):Add gc-analyze.1.
1003 (.INTERMEDIATE): Add gc-analyze.pod.
1004 (gc-analyze.pod): New rule.
1005 (java.install-man): Install gc-analyze.1
1006 * gcj.texi: Add new section for the gc-analyze program.
1007
1008 2007-02-07 Andrew Haley <aph@redhat.com>
1009
1010 * class.c (uncache_this_class_ref): New.
1011 * expr.c (build_jni_stub): Initialize the class.
1012 (expand_byte_code): Call uncache_this_class_ref after generating
1013 code.
1014
1015 2007-02-06 Tom Tromey <tromey@redhat.com>
1016
1017 PR java/30714:
1018 * jvspec.c (lang_specific_driver): Check for the '-' in '-I'.
1019
1020 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
1021
1022 * java-tree.h, javaop.def, jcf-parse.c: Fix comment typos.
1023
1024 2007-02-02 Andrew Haley <aph@redhat.com>
1025
1026 * expr.c (expand_byte_code): Call cache_this_class_ref() and
1027 cache_cpool_data_ref().
1028 Set TYPE_CPOOL_DATA_REF.
1029 (cache_cpool_data_ref): New function.
1030 * constants.c (build_ref_from_constant_pool): Remove special-case
1031 code for flag_indirect_classes.
1032 (build_constant_data_ref): Move special-case code for
1033 flag_indirect_classes here from build_ref_from_constant_pool.
1034 * decl.c (finish_method): Move class initialization from here to
1035 cache_this_class_ref.
1036 * class.c (cache_this_class_ref): New function.
1037 (build_class_ref): Use this_classdollar for the ouput class.
1038
1039 2007-02-02 David Daney <ddaney@avtrex.com>
1040
1041 * class.c (is_compiled_class): Move check to avoid reloading
1042 current class.
1043 (layout_class_method): Don't calculate DECL_EXTERNAL if it is
1044 already set.
1045
1046 2007-02-01 Andrew Haley <aph@redhat.com>
1047
1048 PR java/30641
1049 * jcf-parse.c (jcf_parse): Clear the field_offsets bitmap.
1050
1051 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
1052
1053 * class.c, jcf-parse.c: Fix comment typos.
1054
1055 2007-01-30 Tom Tromey <tromey@redhat.com>
1056
1057 * gcj.texi (Strings): Fix documentation for JvNewString.
1058
1059 2007-01-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1060
1061 * gcj.texi (Invoking gcjh, Invoking gjnih, Arrays): Fix some
1062 typos.
1063
1064 2007-01-30 Ben Elliston <bje@au.ibm.com>
1065
1066 * jvspec.c (lang_specific_driver): Remove unused classpath_args.
1067
1068 2007-01-29 Tom Tromey <tromey@redhat.com>
1069
1070 PR java/30607:
1071 * jvspec.c (lang_specific_driver): Handle separate -I argument.
1072 * lang.opt (-I): Add 'Separate'.
1073
1074 2007-01-29 Andrew Haley <aph@redhat.com>
1075
1076 * class.c (add_method_1): Mark fndecl as external unless we are
1077 compiling it into this object file.
1078
1079 2007-01-24 Andrew Haley <aph@redhat.com>
1080
1081 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): current_class is a
1082 type node, not a decl, so use TYPE_SYNTHETIC not CLASS_SYNTHETIC.
1083
1084 2007-01-22 Andrew Haley <aph@redhat.com>
1085
1086 * builtins.c (VMSupportsCS8_builtin): New function.
1087
1088 2007-01-23 Andrew Pinski <pinskia@gmail.com>
1089
1090 PR java/30454
1091 * jcf-io.c (opendir_in_zip): Close the file
1092 and free zipf before returning after an error.
1093
1094 2007-01-16 Tom Tromey <tromey@redhat.com>
1095
1096 * java-tree.def: Added copyright header.
1097
1098 2007-01-15 Tom Tromey <tromey@redhat.com>
1099
1100 * lang.c (dump_compound_expr) <EXPR_WITH_FILE_LOCATION>: Removed
1101 case.
1102 * java-gimplify.c (java_gimplify_expr) <EXPR_WITH_FILE_LOCATION>:
1103 Removed case.
1104 * java-tree.h (EXPR_WFL_EMIT_LINE_NOTE): Removed.
1105 (EXPR_WFL_NODE): Likewise.
1106 (EXPR_WFL_LINECOL): Likewise.
1107 (EXPR_WFL_FILENAME): Likewise.
1108 (EXPR_WFL_LINENO): Likewise.
1109 (build_expr_wfl, expr_add_location): Don't declare.
1110 (build_unknown_wfl): Removed.
1111 (EXPR_WFL_FILENAME_NODE): Removed.
1112 (EXPR_WFL_COLNO): Removed.
1113 (EXPR_WFL_SET_LINECOL): Removed.
1114 (DECL_FUNCTION_WFL): Removed.
1115 (DECL_FIELD_FINAL_WFL): Removed.
1116 (struct lang_decl_func) <wfl>: Removed field.
1117 <called_constructor>: Likewise.
1118 <inner_access>: Likewise.
1119 (struct lang_decl_var) <wfl>: Removed field.
1120 (DECL_CONSTRUCTOR_CALLS): Removed.
1121 (DECL_FUNCTION_ACCESS_DECL): Likewise.
1122 (DECL_FUNCTION_INNER_ACCESS): Likewise.
1123 (DECL_SPECIFIC_COUNT): Likewise.
1124 * java-tree.def (EXPR_WITH_FILE_LOCATION): Removed.
1125 * expr.c (build_expr_wfl): Removed.
1126 (expr_add_location): Likewise.
1127
1128 2007-01-12 Tom Tromey <tromey@redhat.com>
1129
1130 * jcf-dump.c (main): Updated call to find_class.
1131 * lang.c (java_init): Removed dead code.
1132 * jcf-parse.c (read_class): Don't use java_source field. Removed
1133 dead code.
1134 (parse_zip_file_entries): Don't use java_source field.
1135 (process_zip_dir): Likewise.
1136 (jcf_parse): Removed dead code.
1137 (java_parse_file): Likewise.
1138 (read_class): Updated call to find_class.
1139 * jcf-io.c (find_class): Don't use java_source field. Removed
1140 'source_ok' argument, .java logic.
1141 * jcf.h (JCF) <java_source>: Removed field.
1142 (JCF_ZERO): Updated. (find_class): Updated.
1143 * decl.c: Removed dead code.
1144 * class.c: Removed dead code.
1145
1146 2007-01-11 Tom Tromey <tromey@redhat.com>
1147
1148 * typeck.c (convert): Don't use flag_emit_class_files.
1149 * lang.c (java_post_options): Don't use flag_emit_class_files.
1150 (java_handle_option): Don't use flag_extraneous_semicolon or
1151 flag_redundant.
1152 * jcf-parse.c (HANDLE_CONSTANTVALUE): Don't use
1153 flag_emit_class_files.
1154 (load_class): Likewise.
1155 * java-tree.h (flag_emit_class_files): Don't declare.
1156 (STATIC_CLASS_INIT_OPT_P): Don't use flag_emit_class_files.
1157 (flag_extraneous_semicolon): Don't declare.
1158 (flag_not_overriding): Likewise.
1159 (flag_static_local_jdk1_1): Likewise.
1160 (flag_redundant): Likewise.
1161 * expr.c (build_newarray): Don't use flag_emit_class_files.
1162 * class.c (DEFAULT_ENABLE_ASSERT): Don't use
1163 flag_emit_class_files.
1164 (build_class_ref): Likewise.
1165 * builtins.c (check_for_builtin): Don't use
1166 flag_emit_class_files.
1167
1168 2007-01-10 Tom Tromey <tromey@redhat.com>
1169
1170 * lang.c (java_can_use_bit_fields_p): Removed.
1171 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
1172
1173 2007-01-09 Andrew Haley <aph@redhat.com>
1174
1175 * expr.c (build_java_arrayaccess): Rewrite to generate array
1176 access in canonical form.
1177 (expand_java_arraystore): Use build_fold_addr_expr() on address of
1178 array access.
1179
1180 2007-01-03 Andrew Haley <aph@redhat.com>
1181
1182 PR java/28754
1183 * expr.c (expand_java_field_op): If we're initializing a field's
1184 declaring interface we should not also initialize the class
1185 context in which it was referenced.
1186
1187 2007-01-02 Tom Tromey <tromey@redhat.com>
1188
1189 * java-tree.h (compiling_from_source, current_encoding,
1190 JTI_FINIT_IDENTIFIER_NODE, JTI_INSTINIT_IDENTIFIER_NODE,
1191 JTI_LENGTH_IDENTIFIER_NODE, JTI_SUPER_IDENTIFIER_NODE,
1192 JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE,
1193 JTI_WFL_OPERATOR): Removed
1194 (finit_identifier_node, instinit_identifier_node,
1195 length_identifier_node, super_identifier_node,
1196 continue_identifier_node, access0_identifier_node, wfl_operator):
1197 Removed.
1198 (cyclic_inheritance_report,
1199 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND,
1200 DECL_FUNCTION_NAP, DECL_FUNCTION_SYNTHETIC_CTOR,
1201 DECL_FIXED_CONSTRUCTOR_P): Removed.
1202 (struct lang_decl_func) <smic, nap, synthetic_ctor, fixed_ctor>:
1203 Removed.
1204 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST, TYPE_II_STMT_LIST,
1205 TYPE_IMPORT_LIST, TYPE_IMPORT_DEMAND_LIST): Removed.
1206 (struct lang_type) <finit_stmt_list, clinit_stmt_list, ii_block,
1207 import_list, import_demand_list>: Removed.
1208 (java_layout_seen_class_methods, init_jcf_parse, init_src_parse,
1209 cxx_keyword_p): Removed.
1210 (DECL_FINIT_P, DECL_INSTINIT_P, ID_FINIT_P, ID_INSTINIT_P,
1211 TYPE_UNUSED, TYPE_UNDERFLOW, TYPE_UNEXPECTED,
1212 CLASS_ACCESS0_GENERATED_P, CLASS_HAS_FINIT_P,
1213 IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
1214 IS_AN_IMPORT_ON_DEMAND_P, COMPOUND_ASSIGN_P, SWITCH_HAS_DEFAULT,
1215 PRIMARY_P, MODIFY_EXPR_FROM_INITIALIZATION_P,
1216 CLASS_METHOD_CHECKED_P, FOR_LOOP_P, ANONYMOUS_CLASS_P,
1217 LOCAL_CLASS_P, ARG_FINAL_P, SUPPRESS_UNREACHABLE_ERROR,
1218 RESOLVE_PACKAGE_NAME_P, RESOLVE_TYPE_NAME_P, IS_BREAK_STMT_P,
1219 IS_CRAFTED_STRING_BUFFER_P, IS_INIT_CHECKED, CALL_USING_SUPER,
1220 NESTED_FIELD_ACCESS_IDENTIFIER_P, TOPLEVEL_CLASS_DECL_P,
1221 PURE_INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
1222 CALL_CONSTRUCTOR_P, CALL_EXPLICIT_CONSTRUCTOR_P,
1223 CALL_THIS_CONSTRUCTOR_P, CALL_SUPER_CONSTRUCTOR_P,
1224 FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, BLOCK_IS_IMPLICIT,
1225 BLOCK_EMPTY_P, IS_UNCHECKED_EXCEPTION_P, java_error_count,
1226 java_parse_abort_on_error, extract_field_decl): Removed.
1227 (finput): Declare.
1228 * lang.c: (compiling_from_source, current_encoding): Removed.
1229 (java_handle_option): Ignore -fencoding.
1230 * parse.h: Don't include lex.h.
1231 (java_error_count, int_fits_type_p, stabilize_reference, RULE,
1232 RECOVERED, DRECOVERED, RECOVER, DRECOVER, YYERROR_NOW,
1233 YYNOT_TWICE, CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
1234 INTERFACE_MODIFIERS, INTERFACE_INNER_MODIFIERS,
1235 INTERFACE_METHOD_MODIFIERS, INTERFACE_FIELD_MODIFIERS,
1236 MODIFIER_WFL, THIS_MODIFIER_ONLY, parse_error_context,
1237 ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, exit_java_complete_class,
1238 CLASS_OR_INTERFACE, GET_REAL_TYPE, GET_TYPE_NAME,
1239 OBSOLETE_MODIFIER_WARNING, OBSOLETE_MODIFIER_WARNING2,
1240 BUILD_PTR_FROM_NAME, INCOMPLETE_TYPE_P,
1241 JAVA_MAYBE_GENERATE_DEBUG_INFO, JBSC_TYPE_P, JSTRING_P,
1242 JNULLP_TYPE_P, JDECL_P, TYPE_INTERFACE_P, TYPE_CLASS_P,
1243 IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS,
1244 MANGLE_OUTER_LOCAL_VARIABLE_NAME,
1245 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID,
1246 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING,
1247 SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
1248 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP,
1249 AIPL_FUNCTION_CREATION, AIPL_FUNCTION_DECLARATION,
1250 AIPL_FUNCTION_CTOR_INVOCATION, AIPL_FUNCTION_FINIT_INVOCATION,
1251 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
1252 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED,
1253 LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
1254 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
1255 LOOP_EXPR_BODY_BODY_EXPR, PUSH_LABELED_BLOCK, POP_LABELED_BLOCK,
1256 PUSH_LOOP, POP_LOOP, PUSH_EXCEPTIONS, POP_EXCEPTIONS,
1257 IN_TRY_BLOCK_P, EXCEPTIONS_P, ANONYMOUS_ARRAY_BASE_TYPE,
1258 ANONYMOUS_ARRAY_DIMS_SIG, ANONYMOUS_ARRAY_INITIALIZER,
1259 INVOKE_STATIC, INVOKE_NONVIRTUAL, INVOKE_SUPER, INVOKE_INTERFACE,
1260 INVOKE_VIRTUAL, jdep_code, struct _jdep, JDEP_DECL, JDEP_DECL_WFL,
1261 JDEP_KIND, JDEP_WFL, JDEP_MISC, JDEP_ENCLOSING, JDEP_CLASS,
1262 JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, JDEP_TO_RESOLVE,
1263 JDEP_RESOLVED_DECL, JDEP_RESOLVED, JDEP_RESOLVED_P, struct
1264 jdeplist_s, jdeplists, CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN,
1265 JDEP_INSERT, SET_TYPE_FOR_RESOLUTION, WFL_STRIP_BRACKET,
1266 STRING_STRIP_BRACKETS, PROMOTE_RECORD_IF_COMPLETE,
1267 BLOCK_CHAIN_DECL, GET_CURRENT_BLOCK, EXPR_WFL_GET_LINECOL,
1268 EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION, QUAL_DECL_TYPE,
1269 GET_SKIP_TYPE, COMPLETE_CHECK_OP, COMPLETE_CHECK_OP_0,
1270 COMPLETE_CHECK_OP_1, COMPLETE_CHECK_OP_2, BUILD_APPEND,
1271 BUILD_STRING_BUFFER, BUILD_THROW, SET_WFL_OPERATOR,
1272 PATCH_METHOD_RETURN_ERROR, CHECK_METHODS, CLEAR_DEPRECATED,
1273 CHECK_DEPRECATED_NO_RESET, CHECK_DEPRECATED, REGISTER_IMPORT,
1274 CURRENT_OSB, struct parser_ctxt, GET_CPC_LIST, CPC_INNER_P,
1275 GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, GET_CPC_DECL_NODE,
1276 GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
1277 GET_ENCLOSING_CPC_CONTEXT, INNER_ENCLOSING_SCOPE_CHECK, PUSH_CPC,
1278 PUSH_ERROR, POP_CPC, DEBUG_CPC, CPC_INITIALIZER_LIST,
1279 CPC_STATIC_INITIALIZER_LIST, CPC_INSTANCE_INITIALIZER_LIST,
1280 CPC_INITIALIZER_STMT, CPC_STATIC_INITIALIZER_STMT,
1281 CPC_INSTANCE_INITIALIZER_STMT, SET_CPC_INITIALIZER_STMT,
1282 SET_CPC_STATIC_INITIALIZER_STMT,
1283 SET_CPC_INSTANCE_INITIALIZER_STMT, JAVA_NOT_RADIX10_FLAG,
1284 java_complete_class, java_check_circular_reference,
1285 java_fix_constructors, java_layout_classes, java_reorder_fields,
1286 java_method_add_stmt, java_get_line_col, reset_report,
1287 java_init_lex, yyparse, java_parse, yyerror, java_expand_classes,
1288 java_finish_classes, ctxp, ctxp_for_generation,
1289 ctxp_for_generation_last): Removed.
1290 * expr.c (force_evaluation_order): Don't mention NEW_CLASS_EXPR.
1291 * mangle.c (utf8_cmp): New function.
1292 (cxx_keywords): New global.
1293 (cxx_keyword_p): New function.
1294 * jvspec.c (JAVA_START_CHAR): Removed obsolete comment.
1295 * java-tree.def (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR,
1296 NEW_ANONYMOUS_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
1297 CASE_EXPR, DEFAULT_EXPR, JAVA_CATCH_EXPR, SYNCHRONIZED_EXPR,
1298 THROW_EXPR, CONDITIONAL_EXPR, INSTANCEOF_EXPR, NEW_ARRAY_INIT,
1299 CLASS_LITERAL, JAVA_EXC_OBJ_EXPR): Removed.
1300 * Make-lang.in (java.srcextra): Do nothing.
1301 (parse.c, keyword.h, gt-java-parse.h): Removed targets.
1302 (JAVA_OBJS): Don't mention deleted files.
1303 (java.mostlyclean): Likewise.
1304 (java.clean): Likewise.
1305 (JAVA_LEX_C): Removed.
1306 (buffer.o, check-init.o, parse.o): Remove unused targets.
1307 (typeck.o): Updated.
1308 * jcf-parse.c (read_class): Comment out unused code.
1309 (java_layout_seen_class_methods): New function.
1310 (parse_source_file_1, parse_source_file_2, parse_source_file_3):
1311 Removed.
1312 (java_parse_file): Comment out unused code. Don't use 'ctxp'.
1313 (init_jcf_parse): Removed.
1314 * config-lang.in (gtfiles): Remove deleted files.
1315 * decl.c (java_init_decl_processing): Don't initialize
1316 finit_identifier_node, instinit_identifier_node,
1317 length_identifier_node, super_identifier_node,
1318 continue_identifier_node, access0_identifier_node. Don't call
1319 init_jcf_parse.
1320 * class.c (cyclic_inheritance_report): New global.
1321 (add_method_1): Don't use
1322 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND.
1323 (maybe_layout_super_class): Comment out code.
1324 (safe_layout_class): New function.
1325 * java-gimplify.c (java_gimplify_expr): Removed CASE_EXPR,
1326 DEFAULT_EXPR, NEW_ARRAY_INIT, JAVA_CATCH_EXPR, JAVA_EXC_OBJ_EXPR,
1327 UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_ANONYMOUS_ARRAY_EXPR,
1328 NEW_CLASS_EXPR, SYNCHRONIZED_EXPR, CONDITIONAL_EXPR,
1329 INSTANCEOF_EXPR, CLASS_LITERAL, THIS_EXPR.
1330 (java_gimplify_case_expr): Removed.
1331 (java_gimplify_default_expr): Likewise.
1332 (java_gimplify_new_array_init): Likewise.
1333 * parse.y: Removed.
1334 * keyword.gperf, keyword.h: Removed.
1335 * chartables.h: Removed.
1336 * check-init.c: Removed.
1337 * buffer.c, buffer.h: Removed.
1338 * convert.h: Removed.
1339 * gen-table.pl: Removed.
1340 * lex.c, lex.h: Removed.
1341
1342 2007-01-02 Andrew Haley <aph@redhat.com>
1343
1344 * expr.c (expand_java_arraystore): Make sure we perform a bounds
1345 check at runtime before we perform a type check.
1346
1347 2006-12-19 Andrew Haley <aph@redhat.com>
1348
1349 * decl.c: Bump minor BC ABI version.
1350
1351 2006-12-13 Gary Benson <gbenson@redhat.com>
1352
1353 * jcf-depend.c (jcf_dependency_add_file): Mark filename unused.
1354
1355 2006-12-12 Tom Tromey <tromey@redhat.com>
1356
1357 * lang-specs.h: Pass -M options to jc1.
1358 * jcf-depend.c (jcf_dependency_add_file): Don't emit
1359 dependencies.
1360
1361 2006-12-07 Mohan Embar <gnustuff@thisiscool.com>
1362
1363 * jcf-path.c (jcf_path_compute): Use platform PATH_SEPARATOR.
1364
1365 2006-12-06 Mohan Embar <gnustuff@thisiscool.com>
1366
1367 * lang-specs.h: Pass '%U'-based options as separate arguments.
1368
1369 2006-12-05 Tom Tromey <tromey@redhat.com>
1370
1371 PR java/29495:
1372 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Mark fields and
1373 classes as well.
1374 * class.c (add_field): Handle ACC_SYNTHETIC.
1375 (add_method_1): Likewise. Handle bridge and varargs.
1376 (get_access_flags_from_decl): Handle synthetic, bridge, varargs,
1377 annotation.
1378 (set_class_decl_access_flags): Handle synthetic and annotation.
1379 * java-tree.h (METHOD_BRIDGE): New macro.
1380 (METHOD_VARARGS): Likewise.
1381 (TYPE_SYNTHETIC): Likewise.
1382 (TYPE_ANNOTATION): Likewise.
1383 (lang_type): New fields 'synthetic' and 'annotation'.
1384 (lang_decl_func): New fields 'varargs' and 'bridge'.
1385
1386 2006-12-04 Andrew Haley <aph@redhat.com>
1387
1388 * jcf-parse.c (rewrite_reflection_indexes): Don't do anything if
1389 there's no map.
1390
1391 2006-11-29 Gary Benson <gbenson@redhat.com>
1392
1393 * expr.c (rewrite_arglist_getcaller): Reorder.
1394
1395 2006-11-29 Andrew Haley <aph@redhat.com>
1396
1397 * expr.c (rewrite_arglist_getcaller): Remove DECL_INLINE.
1398 * lang.c (java_decl_ok_for_sibcall): Check for DECL_INLINE.
1399
1400 2006-11-23 Andrew Haley <aph@redhat.com>
1401
1402 * expr.c (rewrite_arglist_getcaller): New.
1403 (rewrite_arglist_getclass): Fix indentation.
1404 (rules): Add gnu.classpath.VMStackWalker.getCallingClass() and
1405 gnu.classpath.VMStackWalker.getCallingClassLoader().
1406 * builtins.c (initialize_builtins): Remove duplicate def'n of
1407 __sync_synchronize.
1408 Add __builtin_return_address.
1409
1410 2006-11-22 Andrew Haley <aph@redhat.com>
1411
1412 * jcf-reader.c (get_attribute): Mark attr_type unused.
1413
1414 * builtins.c (compareAndSwapObject_builtin): Fix declaration.
1415
1416 2007-01-08 Richard Guenther <rguenther@suse.de>
1417
1418 * lex.c (do_java_lex): Use build_int_cst_wide_type.
1419 * jcf-parse.c (get_constant): Likewise.
1420
1421 2006-11-12 Jan Hubicka <jh@suse.cz>
1422
1423 * resource.c (compile_resource_data): Update for new varpool names.
1424 * java/class.c (build_utf8_ref): Likewise.
1425
1426 2006-11-12 David Daney <ddaney@avtrex.com>
1427
1428 PR java/29805
1429 * typeck.c (build_java_array_type): Increase buffer sizes.
1430
1431 2006-11-11 Richard Guenther <rguenther@suse.de>
1432
1433 * check-init.c (check_init): Remove handling of FIX_CEIL_EXPR,
1434 FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
1435
1436 2006-11-06 Andrew Haley <aph@redhat.com>
1437
1438 * java-tree.h (CONSTANT_LazyFlag): New.
1439 * constants.c (build_constants_constructor): Mask CONSTANT_LazyFlag.
1440 * jcf-parse.c (handle_innerclass_attribute): Write attribute to
1441 reflection_data.
1442 (handle_constant): Return 0 for dummy cpool entries.
1443 Handle constants of kind Class.
1444 Handle constants of kind NameAndType.
1445 (handle_enclosingmethod_attribute): New.
1446 (handle_signature_attribute): New.
1447 (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New.
1448 (HANDLE_SIGNATURE_ATTRIBUTE): New.
1449 (handle_constant): Use unmangle_classname()rather than calling
1450 identifier_subst() directly.
1451
1452 2006-11-02 Andrew Haley <aph@redhat.com>
1453
1454 * java-tree.h (FIELD_ENUM): New.
1455 (lang_decl_var.field_enum): New.
1456 (lang_type.enum_class): New.
1457 (CLASS_ENUM): New.
1458 * class.c (set_class_decl_access_flags): Handle enum types.
1459 (add_field): Handle enum fields.
1460 (get_access_flags_from_decl): Likewise.
1461
1462 * class.c (make_class_data): Put reflection_data into rodata.
1463
1464 2006-11-01 Andrew Haley <aph@redhat.com>
1465
1466 * jcf-parse.c (field_offsets, bit_obstack): New variables.
1467 (jcf_parse): Write end marker to annotation_data.
1468 (java_parse_file): Create field_offsets bitmap. Destroy it.
1469 (annotation_grow, annotation_rewrite_byte)
1470 (annotation_rewrite_short, annotation_rewrite_int)
1471 (annotation_read_short, annotation_write_byte)
1472 (annotation_write_short, annotation_write_int)
1473 (handle_long_constant, handle_constant, handle_element_value)
1474 (handle_annotation, handle_annotations)
1475 (handle_annotation_attribute, rewrite_reflection_indexes)
1476 (handle_member_annotations, handle_parameter_annotations)
1477 (handle_default_annotation): New functions.
1478 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE)
1479 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE)
1480 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
1481 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
1482 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): New definitions.
1483 * java-tree.h (enum jv_attr_type, enum jv_attr_kind): New.
1484 (TYPE_REFLECTION_DATA): New.
1485 (TYPE_REFLECTION_DATASIZE): New.
1486 * jcf.h (enum cpool_tag): Convert a bunch of #define constants to
1487 an enum.
1488 * jcf-reader.c (get_attribute): Pass field/method index and
1489 attribute type to get_attribute().
1490 * constants.c (find_class_or_string_constant): Make nonstatic.
1491 (cpool_for_class): Likewise.
1492 (build_constants_constructor): Separate string and scalar types.
1493 * class.c (make_class_data): Generate field_indexes permutation.
1494 Pass it to rewrite_reflection_indexes().
1495 (make_class_data): Generate constructor for reflection_data field.
1496
1497 2006-10-20 Tom Tromey <tromey@redhat.com>
1498
1499 * gcj.texi (Top): Don't mention jv-scan.
1500 (Invoking gcj): Likewise.
1501 (Invoking gcjh): Likewise.
1502 (Invoking gjnih): Likewise.
1503 (Invoking gij): Likewise.
1504 (Invoking gcj-dbtool): Likewise.
1505 (Invoking jv-scan): Removed.
1506 * parse-scan.y: Removed.
1507 * jv-scan.c: Removed.
1508 * config-lang.in (stagestuff): Don't mention jv-scan.
1509 * Make-lang.in (java): Removed jv-scan.
1510 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1511 (JVSCAN_OBJS): Removed.
1512 (jv-scan$(exeext)): Likewise.
1513 (JAVA_MANFILES): Removed jv-scan.1.
1514 (java.uninstall): Don't mention jv-scan.
1515 (java.mostlyclean): Likewise.
1516 (java.maintainer-clean): Likewise.
1517 (.INTERMEDIATE): Likewise.
1518 (java/jv-scan.o): Removed.
1519 (jv-scan.pod): Likewise.
1520 (java.srcextra): Don't mention parse-scan.c.
1521 (java.mostlyclean): Likewise.
1522 (java/parse-scan.c): Removed.
1523 (java/parse-scan.o-warn): Removed.
1524 (java/parse-scan.o): Removed.
1525
1526 2006-10-20 Tom Tromey <tromey@redhat.com>
1527
1528 * lang.c (java_handle_option): Don't use
1529 jcf_write_base_directory.
1530 * jcf.h (jcf_write_base_directory): Removed.
1531 * parse.y (java_expand_classes): Don't call write_classfile.
1532 * config-lang.in (gtfiles): Removed jcf-write.c.
1533 * Make-lang.in (JAVA_OBJS): Removed jcf-write.o.
1534 (java/jcf-write.o): Removed.
1535 * jcf-parse.c (parse_class_file): Don't call write_classfile.
1536 * java-tree.h (write_classfile): Removed declaration.
1537 * jcf-write.c: Removed.
1538
1539 2006-10-20 Tom Tromey <tromey@redhat.com>
1540
1541 * Make-lang.in (java): Removed gjnih, gcjh.
1542 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1543 (GCJH_OBJS): Removed.
1544 (GJNIH_OBJS): Likewise.
1545 (gjnih$(exeext)): Likewise.
1546 (gcjh$(exeext)): Likewise.
1547 (JAVA_MANFILES): Removed gcjh.1, gjnih.1.
1548 (java.install-common): Don't special case gcjh.
1549 (java.uninstall): Don't mention gcjh, gjnih.
1550 (java.mostlyclean): Likewise.
1551 (java.maintainer-clean): Likewise.
1552 (.INTERMEDIATE): Likewise.
1553 (gcjh.pod): Removed.
1554 (gjnih.pod): Likewise.
1555 (GCJH_TARGET_INSTALL_NAME): Removed.
1556 (java/gjavah-jni.o): Removed.
1557 (java/gjavah.o): Likewise.
1558 * config-lang.in (stagestuff): Removed gjnih, gcjh.
1559 * gjavah.c: Removed.
1560
1561 2006-10-17 Tom Tromey <tromey@redhat.com>
1562
1563 * jcf-dump.c (print_element_value): Expect a utf8 constant in the
1564 "string" case.
1565
1566 2006-10-17 Tom Tromey <tromey@redhat.com>
1567
1568 * jvgenmain.c (main): Handle -findirect-dispatch.
1569 * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to
1570 jvgenmain.
1571
1572 2006-10-06 Andrew Haley <aph@redhat.com>
1573
1574 * builtins.c (compareAndSwapInt_builtin): Check that we really do
1575 have a compare_and_swap builtin.
1576 (compareAndSwapLong_builtin): Likewise.
1577 (compareAndSwapObject_builtin): Likewise.
1578
1579 2006-10-04 Andrew Haley <aph@redhat.com>
1580
1581 * builtins.c (java_builtins): Add compareAndSwapInt,
1582 compareAndSwapLong, compareAndSwapObject, putOrderedInt,
1583 putOrderedLong, putOrderedObject, putIntVolatile, putLongVolatile,
1584 putObjectVolatile, getObjectVolatile, getIntVolatile,
1585 getLongVolatile, getLong.
1586 (UNMARSHAL3): New macro.
1587 (UNMARSHAL4): Likewise.
1588 (UNMARSHAL5): Likewise.
1589 (build_arglist_for_builtin): New function.
1590 (build_addr_sum, build_check_this): New functions.
1591 (putObject_builtin. compareAndSwapInt_builtin,
1592 compareAndSwapLong_builtin, compareAndSwapObject_builtin,
1593 putVolatile_builtin, getVolatile_builtin): New builtins.
1594
1595 2006-06-08 Andrew Haley <aph@redhat.com>
1596
1597 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
1598 get_symbol_table_index().
1599 (maybe_rewrite_invocation): Set SPECIAL if we need to access a
1600 private method.
1601 (build_known_method_ref): New arg: special. Pass it to
1602 get_symbol_table_index.
1603 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
1604 the method list.
1605 (build_invokevirtual): New arg: special. Pass it to
1606 get_symbol_table_index.
1607 (expand_invoke): New variable: special.
1608 Pass it to maybe_rewrite_invocation().
1609 Pass it to build_known_method_ref().
1610 * class.c (build_symbol_entry): Add new arg: special. Use it to
1611 build the symbol table conbstructor.
1612 (emit_symbol_table): Extract SPECIAL from the method list and pass
1613 it to build_symbol_entry().
1614 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
1615 special accordingly.
1616
1617 2006-09-08 Andrew Haley <aph@redhat.com>
1618
1619 * class.c (layout_class_method): Use build_java_signature, not
1620 build_java_argument_signature. Use lookup_java_method, not
1621 lookup_argument_method.
1622
1623 2006-08-16 Jakub Jelinek <jakub@redhat.com>
1624 Bryce McKinlay <bryce@mckinlay.net.nz>
1625
1626 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
1627
1628 2006-07-18 Tom Tromey <tromey@redhat.com>
1629
1630 * lang.opt: Added missing -W options.
1631
1632 2006-07-12 Tom Tromey <tromey@redhat.com>
1633
1634 PR java/28329:
1635 * lang-specs.h: Pass '%U'-based options as separate arguments.
1636 Use -faux-classpath.
1637 * lang.c (java_handle_option): Handle OPT_faux_classpath.
1638 * lang.opt (faux-classpath): New option.
1639
1640 2006-07-07 Tom Tromey <tromey@redhat.com>
1641
1642 * class.c (make_class_data): Set value for reflection_data field.
1643 * decl.c (java_init_decl_processing): Add reflection_data field.
1644
1645 2006-07-07 Tom Tromey <tromey@redhat.com>
1646
1647 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): Declare locals
1648 earlier.
1649 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
1650
1651 2006-07-07 Andrew Haley <aph@redhat.com>
1652
1653 * jcf-parse.c (set_source_filename): Don't check for
1654 CLASS_FROM_CURRENTLY_COMPILED_P.
1655 Remove // comments.
1656
1657 2006-07-07 Andrew Haley <aph@redhat.com>
1658
1659 * java-tree.h (java_read_sourcefilenames): Declare.
1660 * lang.c (java_handle_option): Call java_read_sourcefilenames().
1661 * lang.opt (fsource-filename): New opt.
1662 * lang-specs.h: Add -fsource-filename.
1663 * jcf-parse.c (num_files, filenames): New variables.
1664 (reverse, cmpstringp, java_read_sourcefilenames,
1665 find_sourcefile): New.
1666 (set_source_filename): Call find_sourcefile to find the real name
1667 of a source file.
1668
1669 2006-06-27 Tom Tromey <tromey@redhat.com>
1670
1671 * jcf-reader.c (get_attribute): Handle EnclosingMethod,
1672 Signature, LocalVariableTypeTable, annotation attributes.
1673 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New macro.
1674 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
1675 (HANDLE_START_FIELD): Mention 'descriptor', not 'signature'.
1676 (HANDLE_METHOD): Likewise.
1677 (HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE): New macro.
1678 (print_annotation): New function.
1679 (print_element_value): Likewise.
1680 (indent): Likewise.
1681 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE): New macro.
1682 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE): Likewise.
1683 (print_parameter_annotations): New function.
1684 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): New macro.
1685 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE):
1686 Likewise.
1687 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): Likewise.
1688 (print_annotations): New function.
1689
1690 2006-06-23 Tom Tromey <tromey@redhat.com>
1691
1692 * lang-specs.h: Default -fsource and -ftarget to 1.5. If
1693 emitting class files, always use 1.5.
1694 * gcj.texi (Input Options): Document -fsource.
1695 (Code Generation): Document -ftarget.
1696
1697 2006-06-21 Tom Tromey <tromey@redhat.com>
1698
1699 PR java/28089:
1700 * expr.c (expand_java_field_op): Initialize field's declaring
1701 class.
1702
1703 2006-06-20 Tom Tromey <tromey@redhat.com>
1704
1705 * expr.c (push_value): Always flush quick stack.
1706
1707 2006-06-19 Tom Tromey <tromey@redhat.com>
1708
1709 * expr.c (push_value): Also flush quick stack if value is a
1710 component_ref.
1711
1712 2006-06-19 Tom Tromey <tromey@redhat.com>
1713
1714 * expr.c (push_value): Flush quick stack if value has side
1715 effects.
1716
1717 2006-06-13 Tom Tromey <tromey@redhat.com>
1718
1719 * class.c (is_compiled_class): Explicitly check for current
1720 class.
1721
1722 2006-06-09 Tom Tromey <tromey@redhat.com>
1723
1724 * gjavah.c (decompile_method): Don't decompile a static field
1725 accessor method.
1726
1727 2006-06-06 Tom Tromey <tromey@redhat.com>
1728
1729 * lang-specs.h <jc1>: Add .jar file to command line if
1730 -fsaw-java-file. Also, remove -ffilelist-file in this case.
1731
1732 2006-06-05 Tom Tromey <tromey@redhat.com>
1733
1734 * jcf-dump.c (print_access_flags): Handle varargs, bridge,
1735 synthetic, enum, annotation.
1736 * jcf.h (ACC_BRIDGE): New macro.
1737 (ACC_VARARGS): Likewise.
1738 (ACC_SYNTHETIC): Likewise.
1739 (ACC_ENUM): Likewise.
1740 (ACC_ANNOTATION): Likewise.
1741
1742 2006-06-04 Tom Tromey <tromey@redhat.com>
1743
1744 * lang.opt (-fsaw-java-file, -fsource, -ftarget): New options.
1745 * jvspec.c (jvgenmain_spec): Remove -fsaw-java-file, -fsource,
1746 and -ftarget.
1747 (lang_specific_driver): Removed dead code. Add -fsaw-java-file
1748 when needed. Handle classpath-setting.
1749 * Make-lang.in ($(GCJ)$(exeext)): Link in jcf-path.o.
1750 * lang-specs.h: Rewrote.
1751
1752 2006-06-04 Tom Tromey <tromey@redhat.com>
1753
1754 * jcf-io.c (find_class): Set source_ok to 0.
1755 * jcf-parse.c (jcf_parse): Disable gnu.gcj.gcj-compiled warning.
1756 (parse_class_file): Don't call java_mark_class_local.
1757 (java_parse_file): Skip .java files. Call java_mark_class_local
1758 before lowering any code.
1759 (parse_zip_file_entries): Don't call duplicate_class_warning
1760 here.
1761 (process_zip_dir): ... call it here.
1762 * class.c (add_field): Don't mark field external if it is being
1763 compiled into this object.
1764 (make_class_data): Handle situation where class_dtable_decl is
1765 created before Class is compiled.
1766 (is_compiled_class): Don't assume files in zip are compiled into
1767 this object.
1768 (layout_class_method): Don't mark method external if it is being
1769 compiled into this object.
1770
1771 2006-06-04 Tom Tromey <tromey@redhat.com>
1772
1773 * jcf-path.c (jcf_path_compute): New function.
1774 * jcf.h (jcf_path_compute): Declare.
1775
1776 2006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
1777
1778 * decl.c: Include langhooks.h.
1779 (builtin_function): Remove.
1780 (java_init_decl_processing): Replace calls to builtin_function
1781 with add_builtin_function.
1782 * Make-lang.in (jc1$(exeext)): Depend on and link with attribs.o.
1783 (java/decl.o): Depend on langhooks.h.
1784 * java-tree.h (builtin_function): Remove.
1785
1786 2006-10-10 Brooks Moses <bmoses@stanford.edu>
1787
1788 * Make-lang.in: Added "java.pdf", "gcj.pdf" target support.
1789
1790 2006-09-12 Tom Tromey <tromey@redhat.com>
1791
1792 * expr.c (push_value): Always flush quick stack.
1793
1794 2006-09-12 Tom Tromey <tromey@redhat.com>
1795
1796 PR java/29013:
1797 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Always note
1798 the push of the called method's return result.
1799
1800 2006-09-12 Tom Tromey <tromey@redhat.com>
1801
1802 * jvspec.c (lang_specific_driver): Read spec file even if
1803 -fsyntax-only.
1804
1805 2006-09-12 Tom Tromey <tromey@redhat.com>
1806
1807 PR java/28754:
1808 * expr.c (expand_java_field_op): Initialize field's declaring
1809 interface if necessary.
1810
1811 2006-09-12 Tom Tromey <tromey@redhat.com>
1812
1813 PR java/28892:
1814 * expr.c (expand_java_field_op): No error for assignments not in
1815 class initializer or constructor.
1816
1817 2006-08-22 Andrew Haley <aph@redhat.com>
1818
1819 * decl.c (java_add_stmt): Give the statement list a type.
1820
1821 2006-08-16 Jakub Jelinek <jakub@redhat.com>
1822 Bryce McKinlay <bryce@mckinlay.net.nz>
1823
1824 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
1825
1826 2006-08-10 Simon Martin <simartin@users.sourceforge.net>
1827
1828 PR java/8923
1829 * parse.y (build_incdec): Emit an error instead of an ICE if '++'
1830 or '--' is used with a constant operand.
1831 (java_complete_lhs): When processing a '++' or '--' expression,
1832 don't call java_complete_tree but java_complete_lhs, so that a
1833 static final variable operand is never replaced by its value. This
1834 avoids an ICE later on.
1835 (patch_unaryop): Fixed typo in comment.
1836
1837 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1838
1839 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
1840
1841 2006-07-12 Bryce McKinlay <mckinlay@redhat.com>
1842
1843 * builtins.c (check_for_builtin): If a builtin could result in a
1844 direct call being generated, don't use it if flag_indirect_dispatch
1845 is set.
1846
1847 2006-07-12 Bryce McKinlay <mckinlay@redhat.com>
1848
1849 * gcj.texi (Invocation): Corrections for Invocation API example.
1850
1851 2006-07-04 Andrew Haley <aph@redhat.com>
1852
1853 * class.c (build_fieldref_cache_entry): Set DECL_IGNORED_P on the
1854 entry.
1855
1856 2006-06-21 Andrew Haley <aph@redhat.com>
1857
1858 * java-tree.h (update_aliases): Remove
1859 * expr.c (expand_iinc): Remove call to update_aliases().
1860 (STORE_INTERNAL): Likewise.
1861 * decl.c (update_aliases, initialize_local_variable)
1862 (maybe_pushlevels): Set DECL_VALUE_EXPR for debugging decls.
1863
1864 2006-06-19 Andrew Haley <aph@redhat.com>
1865
1866 PR java/1305
1867 PR java/27908
1868 * expr.c (java_modify_addr_for_volatile): New function.
1869 (expand_java_field_op): Handle volatile fields.
1870 * java-gimplify.c (java_gimplify_component_ref): Call
1871 java_modify_addr_for_volatile to give the field_ref the correct
1872 volatile type.
1873 (java_gimplify_modify_expr): Likewise.
1874 * java-tree.h (java_modify_addr_for_volatile): New decl.
1875
1876 2006-06-17 Karl Berry <karl@gnu.org>
1877
1878 * gcj.texi (@dircategory): Use "Software development" instead
1879 of "Programming", following the Free Software Directory.
1880
1881 2006-06-16 Andrew Haley <aph@redhat.com>
1882
1883 * class.c (make_class_data): When using flag_indirect_classes,
1884 don't initialize the vtable of Class instances.
1885
1886 2006-06-09 Andrew Haley <aph@redhat.com>
1887
1888 PR java/1305
1889 PR java/27908
1890 * builtins.c (initialize_builtins): Add __sync_synchronize().
1891 * class.c (add_field): Mark volatile fields.
1892 * java-gimplify.c (java_gimplify_expr): Call new functions to
1893 handle self-modifying exprs and COMPONENT_REFs.
1894 (java_gimplify_component_ref): New.
1895 (java_gimplify_modify_expr): Add handling for volatiles.
1896
1897 2006-06-08 Tom Tromey <tromey@redhat.com>
1898
1899 * gcj.texi (libgcj Runtime Properties): Document
1900 gnu.gcj.user.realname.
1901
1902 2006-06-08 Andrew Haley <aph@redhat.com>
1903
1904 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
1905 get_symbol_table_index().
1906 (maybe_rewrite_invocation): Set SPECIAL if we need to access a
1907 private method.
1908 (build_known_method_ref): New arg: special. Pass it to
1909 get_symbol_table_index.
1910 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
1911 the method list.
1912 (build_invokevirtual): New arg: special. Pass it to
1913 get_symbol_table_index.
1914 (expand_invoke): New variable: special.
1915 Pass it to maybe_rewrite_invocation().
1916 Pass it to build_known_method_ref().
1917 * class.c (build_symbol_entry): Add new arg: special. Use it to
1918 build the symbol table conbstructor.
1919 (emit_symbol_table): Extract SPECIAL from the method list and pass
1920 it to build_symbol_entry().
1921 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
1922 special accordingly.
1923
1924 2006-06-06 David Daney <ddaney@avtrex.com>
1925
1926 * gcj.texi (libgcj Runtime Properties): Document
1927 gnu.gcj.runtime.NameFinder.show_raw and
1928 gnu.gcj.runtime.NameFinder.remove_unknown.
1929
1930 2006-06-06 Tom Tromey <tromey@redhat.com>
1931
1932 * jcf-dump.c (print_access_flags): Handle varargs, bridge,
1933 synthetic, enum, annotation.
1934 * jcf.h (ACC_BRIDGE): New macro.
1935 (ACC_VARARGS): Likewise.
1936 (ACC_SYNTHETIC): Likewise.
1937 (ACC_ENUM): Likewise.
1938 (ACC_ANNOTATION): Likewise.
1939
1940 2006-06-06 Mike Stump <mrs@apple.com>
1941
1942 * Make-lang.in: Rename to htmldir to build_htmldir to avoid
1943 installing during build.
1944
1945 2006-05-31 Thomas Fitzsimmons <fitzsim@redhat.com>
1946
1947 * gcj.texi (Extensions): Document the new gcj-dbtool-based
1948 classname-to-library resolution mechanism.
1949 Declare the old gnu.gcj.runtime.VMClassLoader.library_control
1950 mechanism deprecated.
1951 (libgcj Runtime Properties): Document
1952 gnu.gcj.runtime.VMClassLoader.library_control's new default.
1953
1954 2006-05-29 Jakub Jelinek <jakub@redhat.com>
1955
1956 * javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64)
1957 bit wide type.
1958 (jword): Define to uint64 on 64-bit arches.
1959 * jcf-dump.c (print_constant): Cast JPOOL_UINT to long.
1960
1961 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
1962
1963 * class.c, except.c, expr.c, java-gimplify.c: Fix comment
1964 typos.
1965
1966 2006-05-26 Tom Tromey <tromey@redhat.com>
1967
1968 * expr.c (java_push_constant_from_pool): Handle 'ldc class'.
1969 * verify-glue.c (vfy_class_type): New function.
1970 * verify-impl.c (check_constant): Allow 'ldc class'.
1971 * verify.h (vfy_class_type): Declare.
1972
1973 2006-05-25 Andrew Haley <aph@redhat.com>
1974
1975 PR java/27756
1976 * decl.c (maybe_pushlevels): When variable ranges are non-nested
1977 update all lifetimes, not just the first one.
1978
1979 2006-05-24 Tom Tromey <tromey@redhat.com>
1980
1981 * java-tree.h: Fixed flag documentation.
1982
1983 2006-05-24 Tom Tromey <tromey@redhat.com>
1984
1985 PR libgcj/27729:
1986 * jcf.h (ACC_INVISIBLE): Changed value.
1987
1988 2006-05-24 Andrew Haley <aph@redhat.com>
1989
1990 PR java/27754
1991 * decl.c (java_add_stmt): Use a STATEMENT_LIST rather than a
1992 COMPOUND_EXPR.
1993
1994 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
1995
1996 * lang.opt (femit-class-file): Remove VarExists.
1997
1998 2006-05-16 Tom Tromey <tromey@redhat.com>
1999
2000 * verify-impl.c (verify_instructions_0) <op_return>: Special case
2001 for Object.<init>.
2002
2003 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
2004
2005 PR driver/26885
2006 * Make-lang.in ($(GCJ)$(exeext)): Replace gcc.o with
2007 $(GCC_OBJS).
2008
2009 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
2010
2011 * Make-lang.in (java/decl.o): Add dependency on $(TARGET_H).
2012 (java/expr.o): Replace target.h with $(TARGET_H).
2013 (java/parse.o): Likewise.
2014
2015 2006-05-10 Andrew Haley <aph@redhat.com>
2016
2017 * class.c (emit_indirect_register_classes): Fix comment.
2018
2019 2006-05-04 Tom Tromey <tromey@redhat.com>
2020
2021 * java-tree.h (uses_jv_markobj_p): Declare.
2022 * class.c (uses_jv_markobj_p): Removed.
2023 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): New define.
2024 (get_boehm_type_descriptor): Use it.
2025 (uses_jv_markobj_p): Moved from class.c. Return bool.
2026
2027 2006-05-04 Tom Tromey <tromey@redhat.com>
2028
2029 * java-tree.def (THIS_EXPR): Now a tcc_expression.
2030
2031 2006-05-04 Andrew Haley <aph@redhat.com>
2032
2033 * class.c (make_field_value): Always build_address_of fdecl if
2034 there is an initializer.
2035
2036 2006-05-03 Andrew Haley <aph@redhat.com>
2037
2038 PR libgcj/27352
2039 * expr.c (maybe_rewrite_invocation): New function.
2040 (rewrite_arglist_getclass): Likewise.
2041 (rules): New.
2042 (expand_invoke): Call maybe_rewrite_invocation.
2043 * parse.y (patch_invoke): Likewise.
2044 * java-tree.h: (maybe_rewrite_invocation): New function.
2045
2046 2006-04-21 Andrew Haley <aph@redhat.com>
2047
2048 * lang.c (java_init): Handle flag_indirect_classes.
2049 * jvgenmain.c: Use "class$$" instead of "class$".
2050 * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as
2051 DECLs.
2052 (mangle_class_field): Special case "class$$" as well as "class$".
2053 * constants.c (build_ref_from_constant_pool): If
2054 flag_indirect_classes, generate a ref into the heap.
2055 * decl.c (constants_field_decl_node,
2056 constants_data_field_decl_node): New.
2057 * class.c (build_static_class_ref): New.
2058 (build_classdollar_field): Factor out from build_class_ref().
2059 (make_field_value): Handle static fields in heap.
2060 (make_class_data): Make sure we get a static ref to class.
2061 Make class initializer const if flag_indirect_classes.
2062 (register_class): Build a class_ref for initialization if
2063 flag_indirect_classes.
2064 (emit_indirect_register_classes): New.
2065
2066 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
2067
2068 * expr.c, gjavah.c: Fix comment typos.
2069
2070 2006-04-03 Andrew Haley <aph@redhat.com>
2071
2072 PR java/26858
2073 * expr.c (build_field_ref): Don't check the field offset if
2074 flag_syntax_only.
2075
2076 2006-03-30 Andrew Haley <aph@redhat.com>
2077
2078 PR java/26858
2079 * lang.c (java_attribute_table): New.
2080 (LANG_HOOKS_ATTRIBUTE_TABLE): Define.
2081 * expr.c (build_field_ref): Add a null pointer check for all
2082 fields of offset > 4k. Don't do so for accesses via the this
2083 pointer, which we know can never be null.
2084 * class.c (build_java_method_type): Mark arg 1 of all nonstatic
2085 methods nonnull.
2086
2087 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
2088
2089 * Make-lang.in: Rename docdir to gcc_docdir.
2090
2091 2006-03-30 Tom Tromey <tromey@redhat.com>
2092
2093 PR java/26042:
2094 * parse.y (java_reorder_fields): Reset superclass field's size as
2095 well.
2096
2097 2006-03-28 Tom Tromey <tromey@redhat.com>
2098
2099 PR java/26390:
2100 * parse.y (find_most_specific_methods_list): Added 'class'
2101 argument.
2102 (lookup_method_invoke): Updated.
2103
2104 2006-03-15 Tom Tromey <tromey@redhat.com>
2105
2106 * jcf-write.c (generate_bytecode_insns): Use qualifying type for
2107 non-static method calls.
2108
2109 2006-03-15 David Daney <ddaney@avtrex.com>
2110
2111 * java-tree.h : Moved comment for TYPE_DOT_CLASS adjacent to its
2112 declaration.
2113
2114 2006-03-15 David Daney <ddaney@avtrex.com>
2115
2116 * lang.opt (-freduced-reflection): New option.
2117 * lang.c (java_post_options): Generate an error if
2118 -freduced-reflection used with -fjni or -findirect-dispatch.
2119 * java-tree.h (flag_reduced_reflection): Declare new variable.
2120 * boehm.c (get_boehm_type_descriptor): Indicate all pointers
2121 if bitmap overflows and flag_reduced_reflection set.
2122 * class.c (uses_jv_markobj_p): New function.
2123 (make_class_data): Moved generation of vtable to before
2124 reflection data, generate less reflection data if
2125 flag_reduced_reflection set.
2126 * gcj.texi: Document -freduced-reflection.
2127
2128 2006-03-15 Tom Tromey <tromey@redhat.com>
2129
2130 PR java/26638:
2131 * class.c (get_interface_method_index): Don't put <clinit> into
2132 interface table.
2133
2134 2006-03-15 Tom Tromey <tromey@redhat.com>
2135
2136 * parse.y (analyze_clinit_body): Ignore empty statements.
2137
2138 2006-03-08 David Daney <ddaney@avtrex.com>
2139
2140 * gcj.texi: Document -static-libgcj option.
2141
2142 2006-02-20 Andrew Haley <aph@redhat.com>
2143
2144 * jcf-parse.c (parse_class_file): Set input_location from
2145 current_class.
2146
2147 2006-02-15 Andrew Haley <aph@redhat.com>
2148
2149 * class.c (GEN_TABLE): Don't pushdecl *_SYMS_DECL here.
2150 (make_class_data): pushdecl_top_level TYPE_OTABLE_SYMS_DECL,
2151 TYPE_ATABLE_SYMS_DECL, TYPE_ITABLE_SYMS_DECL here.
2152
2153 2006-02-09 Andrew Haley <aph@redhat.com>
2154
2155 PR java/26192
2156 * expr.c (expand_invoke): Allow methods in arrays to be resolved
2157 in their superclass.
2158
2159 * typeck.c (build_java_array_type): Generate TYPE_STUB_DECLs for
2160 array types.
2161
2162 2006-02-08 Tom Tromey <tromey@redhat.com>
2163
2164 PR java/22578:
2165 * check-init.c (check_init): Handle VIEW_CONVERT_EXPR.
2166 * builtins.c (convert_real): New function.
2167 (java_builtins): Handle Float.intBitsToFloat,
2168 Float.floatToRawIntBits, Double.longBitsToDouble,
2169 Double.doubleToRawLongBits.
2170
2171 2006-02-07 Andrew Haley <aph@redhat.com>
2172
2173 * expr.c (expand_invoke): (BC mode.) If we find a method in a
2174 class other than the one in which we expected to find it, ignore
2175 the result.
2176
2177 PR java/25535
2178 * constants.c (build_constants_constructor): move initializer into
2179 first halfword on a 64-bit big-endian machine.
2180
2181 2006-02-04 Tom Tromey <tromey@redhat.com>
2182
2183 PR java/25676:
2184 * builtins.c (max_builtin): Skip floating point 'max'.
2185 (min_builtin): Skip floating point 'min'.
2186 (check_for_builtin): Never return NULL_TREE.
2187
2188 2006-02-04 Tom Tromey <tromey@redhat.com>
2189
2190 PR java/26097:
2191 * expr.c (push_type): Avoid side effect in gcc_assert.
2192
2193 2006-02-04 Roger Sayle <roger@eyesopen.com>
2194
2195 * decl.c (java_init_decl_processing): Create char_type_node as a
2196 regular INTEGER_TYPE node.
2197 (push_promoted_type): Preserve TYPE_STRING_FLAG on types.
2198 * typeck.c (convert): No longer check for CHAR_TYPEs but instead
2199 test for char_type_node and promoted_char_type_node as special
2200 instances of INTEGER_TYPE tree codes.
2201 (promote_type,build_java_signature): Likewise.
2202 * jcf-write.c (adjust_typed_op): Likewise.
2203 * mangle.c (mangle_type): Likewise.
2204 * parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE.
2205 * parse.h (JINTEGRAL_TYPE_P): Likewise.
2206
2207 2006-02-04 Andreas Tobler <a.tobler@schweiz.ch>
2208
2209 * expr.c (java_stack_swap): Revert gcc_assert patch.
2210
2211 2006-02-03 Ben Elliston <bje@au.ibm.com>
2212
2213 * java-gimplify.c: Use gcc_assert and gcc_unreachable throughout.
2214 * typeck.c: Likewise.
2215 * verify-impl.c: Likewise.
2216 * class.c: Likewise.
2217 * decl.c: Likewise.
2218 * jcf-parse.c: Likewise.
2219 * constants.c: Likewise.
2220 * check-init.c: Likewise.
2221 * jcf-write.c: Likewise.
2222 * verify-glue.c: Likewise.
2223 * mangle.c: Likewise.
2224 * expr.c: Likewise.
2225 * lang.c: Likewise.
2226 * boehm.c: Likewise.
2227
2228 2006-02-01 Jan Hubicka <jh@suse.cz>
2229
2230 * decl.c (end_java_method): Kill hack disabling unit-at-a-time.
2231 * lang.c (java_init_options): Set no_unit_at_a_time_default.
2232
2233 2006-01-30 Andrew Haley <aph@redhat.com>
2234
2235 PR java/21428
2236 * parse.y: (source_start_java_method): Mark DECL_ARTIFICIAL("this").
2237
2238 2006-01-21 Joseph S. Myers <joseph@codesourcery.com>
2239
2240 * jv-scan.c (version), jcf-dump.c (version), gjavah.c (version):
2241 Update copyright notice dates.
2242
2243 2006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2244
2245 * jvspec.c (lang_specific_spec_functions): Remove.
2246
2247 2006-01-06 Tom Tromey <tromey@redhat.com>
2248
2249 * gcj.texi (Arrays): Added more documentation for
2250 JvNewObjectArray.
2251 (Primitive types): Correct information about primitive classes.
2252 (Reference types): New node.
2253 (Index): New node.
2254
2255 2005-12-16 Alexandre Oliva <aoliva@redhat.com>
2256
2257 * jcf-parse.c (set_source_filename): Set the decl source location
2258 even when returning early.
2259
2260 2005-12-15 Tom Tromey <tromey@redhat.com>
2261 Andrew Haley <aph@redhat.com>
2262
2263 PR java/25429
2264 * parse.y (resolve_expression_name): Don't generate accessor
2265 methods for constant fields.
2266
2267 2005-12-13 Andrew Haley <aph@redhat.com>
2268
2269 PR java/25366
2270 PR java/25368
2271 * class.c (maybe_layout_super_class): Update current_class before
2272 calling do_resolve_class.
2273
2274 2005-12-12 H.J. Lu <hongjiu.lu@intel.com>
2275
2276 PR java/25330
2277 * jcf-write.c (write_classfile): Use PID in temporary class
2278 file. Save/restore errno when reporting error.
2279
2280 2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
2281
2282 PR java/9861
2283 * mangle.c (mangle_method_decl): Mangle Java methods by prepending 'J'
2284 to bare_function_type and including the return type
2285 * builtins.c (initialize_builtins) : Change builtin mangled name
2286 constants to conform to new mangling scheme
2287
2288 2005-12-08 Andrew Haley <aph@redhat.com>
2289
2290 PR libgcj/25265
2291 * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
2292 (soft_abstractmethod_node): New.
2293 * expr.c (build_field_ref): Add in-line check for missing field.
2294 * decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
2295
2296 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2297
2298 * Make-lang.in (java.all.build, java.install-normal): Remove.
2299
2300 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2301
2302 * Make-lang.in: Remove all dependencies on s-gtype, except for
2303 gt-java-parse.h.
2304
2305 2005-12-07 Richard Sandiford <richard@codesourcery.com>
2306
2307 * class.c (build_utf8_ref, emit_register_classes): Use
2308 switch_to_section and get_section.
2309
2310 2005-12-06 Tom Tromey <tromey@redhat.com>
2311
2312 PR java/25283:
2313 * parse.y (patch_new_array_init): Revert previous patch.
2314 (lookup_method_invoke): Use size-less array type when creating an
2315 anonymous constructor.
2316
2317 2005-12-05 Tom Tromey <tromey@redhat.com>
2318
2319 * parse.y (patch_new_array_init): Don't set length on array.
2320
2321 2005-12-02 Richard Guenther <rguenther@suse.de>
2322
2323 * java-gimplify.c (java_gimplify_labeled_block_expr): Use
2324 buildN instead of build.
2325 * class.c (finish_class): Likewise.
2326 * expr.c (java_create_object): Likewise.
2327
2328 2005-11-28 Tom Tromey <tromey@redhat.com>
2329
2330 PR java/18278:
2331 * expr.c (build_jni_stub): Unwrap the return value.
2332 * java-tree.h (soft_unwrapjni_node): New define.
2333 (enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE.
2334 * decl.c (java_init_decl_processing): Initialize
2335 soft_unwrapjni_node.
2336
2337 2005-11-24 Bryce McKinlay <mckinlay@redhat.com>
2338
2339 * gcj.texi (gij options): Add -Xss documentation.
2340
2341 2005-11-08 Wil Mahan <wmahan@gmail.com>
2342
2343 PR java/23617
2344 * zextract.c (read_zip_archive): Fix out of memory error when
2345 reading jar files with zip-style comments.
2346
2347 2005-11-07 Terry Laurenzo <tlaurenzo@gmail.com>
2348
2349 * gjavah.c (HANDLE_CODE_ATTRIBUTE): Only define for ELF Object
2350 formats.
2351 * gjavah.c (decompile_method): Add ATTRIBUTE_UNUSED
2352
2353 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
2354 Wil Mahan <wmahan@gmail.com>
2355
2356 PR java/23620
2357 * class.c (make_class): Create empty binfo here.
2358 (set_super_info): Only create binfo if we have superclasses.
2359
2360 2005-10-03 Ranjit Mathew <rmathew@gcc.gnu.org>
2361
2362 PR java/24127
2363 * parse.y (method_header): Make the result of the rule a NULL_TREE
2364 when a parsing error occurs.
2365
2366 2005-09-29 Tom Tromey <tromey@redhat.com>
2367
2368 PR java/24120:
2369 * jcf-io.c (memoized_dirlist_hash): New function.
2370 (caching_stat): Use it.
2371
2372 2005-09-21 Ranjit Mathew <rmathew@gcc.gnu.org>
2373
2374 PR java/21418
2375 * class.c (inherits_from_p): Try to lay out super class
2376 if it is not already laid out.
2377 (maybe_layout_super_class): Handle the case where SUPER_CLASS
2378 is a NULL_TREE.
2379
2380 2005-09-18 James A. Morrison <phython@gcc.gnu.org>
2381
2382 * builtins.c (max_builtin, min_builtin, abs_builtin,
2383 java_build_function_call_expr): Use fold_buildN.
2384 * class.c (layout_class_method): Likewise.
2385 * expr.c (java_truthvalue_conversion, build_java_jsr,
2386 build_java_arrayaccess, expand_java_arrayload, expand_iinc,
2387 build_java_binop, build_field_ref, expand_compare,
2388 build_known_method_ref, build_invokevirtual,
2389 process_jvm_instruction): Likewise.
2390 * parse.y (patch_binop, patch_exit_expr): Likewise.
2391 * typeck.c (convert_ieee_real_to_integer): Likewise.
2392 (convert): Don't call fold after convert_ieee_real_to_integer.
2393
2394 2005-09-14 Bryce McKinlay <mckinlay@redhat.com>
2395
2396 PR java/23891
2397 * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
2398 the newly created type. Set import lists here, not in create_class.
2399 (jdep_resolve_class): Set current_class.
2400 (do_resolve_class): Use current_class's TYPE_PACKAGE to determine
2401 the current package context, not ctxp->package.
2402 (cicp_cache): Removed.
2403 (class_in_current_package): Simplify implementation using TYPE_PACKAGE.
2404 * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
2405 * java-tree.h (TYPE_PACKAGE): New macro.
2406 (struct lang_type): New member 'package'.
2407
2408 2005-09-09 Andrew Haley <aph@redhat.com>
2409
2410 PR libgcj/23182
2411 * expr.c (pop_type_0): If the expected type is object or ptr
2412 (i.e. void*), return the type of the object we just popped from
2413 the stack.
2414
2415 2005-09-06 Andrew Pinski <pinskia@physics.uc.edu>
2416
2417 * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
2418 BLOCK_EXPR_BODY before returning the new BIND_EXPR.
2419
2420 2005-09-06 Kazu Hirata <kazu@codesourcery.com>
2421
2422 * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
2423 jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
2424 typos. Follow spelling conventions.
2425
2426 2005-09-05 Ranjit Mathew <rmathew@hotmail.com>
2427
2428 PR java/23431
2429 * typeck.c (lookup_do): Look up interfaces for the original class,
2430 not the base class.
2431 * parse.y (java_check_regular_methods): Fix diagnostic message for
2432 more restrictive overriding of a method from an interface.
2433
2434 2005-08-16 Tom Tromey <tromey@redhat.com>
2435
2436 * class.c (make_class_data): Always emit JV_STATE_PRELOADING for
2437 class' initial state.
2438
2439 2005-08-16 Ranjit Mathew <rmathew@hotmail.com>
2440
2441 PR java/22113
2442 * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
2443 `literal_token' for large numeric input tokens.
2444
2445 2005-08-16 Ranjit Mathew <rmathew@hotmail.com>
2446
2447 PR java/19870
2448 * parse.y (nested_field_access_p): Rename to nested_member_access_p
2449 and expand to handle method accesses across nested classes.
2450 (build_outer_method_access_method): Rename to
2451 build_nested_method_access_method. Minor adjustments to comments.
2452 (resolve_expression_name): Use the newly-renamed
2453 nested_member_access_p method.
2454 (resolve_qualified_expression_name): Likewise.
2455 (patch_method_invocation): Also consider static methods for access
2456 method generation. Minor adjustments to comments.
2457 (maybe_use_access_method): Use the more general
2458 nested_memeber_access_p to determine access across nested class
2459 boundaries. Allow THIS_ARG to be NULL (for static methods).
2460
2461 2005-08-15 Tom Tromey <tromey@redhat.com>
2462
2463 PR java/23300.
2464 * expr.c (build_field_ref): Don't generate otable reference when
2465 DECL_FIELD_OFFSET is 0.
2466 * class.c (maybe_layout_super_class): Pass outer class to
2467 do_resolve_class.
2468
2469 2005-08-15 Tom Tromey <tromey@redhat.com>
2470
2471 * java-tree.h (LABEL_IN_SUBR): Removed.
2472 (LABEL_IN_SUBR): Likewise.
2473 (LABEL_IS_SUBR_START): Likewise.
2474 (LABEL_SUBR_START): Likewise.
2475 (LABEL_SUBR_CONTEXT): Likewise.
2476 (LABEL_CHANGED): Likewise.
2477 (LABEL_RETURN_LABEL): Likewise.
2478 (LABEL_RETURN_TYPE_STATE): Likewise.
2479 (LABEL_RETURN_LABELS): Likewise.
2480 (RETURN_MAP_ADJUSTED): Likewise.
2481 (LABEL_PENDING_CHAIN): Likewise.
2482
2483 2005-08-15 Tom Tromey <tromey@redhat.com>
2484
2485 * Make-lang.in (JAVA_OBJS): Removed verify.o
2486 (java/verify.o): Removed.
2487 * verify.c: Removed.
2488 * lang.c (flag_new_verifier): Removed.
2489 (java_post_options): Updated.
2490 * java-tree.h (flag_new_verifier): Removed.
2491 (verify_jvm_instructions): Removed.
2492 * expr.c (pop_type_0): Assume flag_new_verifier is true.
2493 (build_java_check_indexed_type): Likewise.
2494 (expand_java_arraystore): Likewise.
2495 (expand_java_arrayload): Likewise.
2496 (pop_arguments): Likewise.
2497 (expand_byte_code): Likewise.
2498 (process_jvm_instruction): Likewise.
2499
2500 2005-08-10 Andrew Haley <aph@redhat.com>
2501
2502 * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
2503 type mismatches to make legal GIMPLE.
2504
2505 2005-08-10 Robin Green <greenrd@greenrd.org>
2506
2507 PR java/23230:
2508 * parse.y (maybe_use_access_method): Generalize check from
2509 java.lang.Object to any superclass of current_class
2510
2511 2005-08-08 Nathan Sidwell <nathan@codesourcery.com>
2512
2513 * class.c (build_class_ref): Wrap the primary class type in a
2514 NOP_EXPR.
2515 * parse.y (java_complete_lhs) <COMPONENT_REF case>: Extract the
2516 primary class type from the NOP_EXPR in which it was placed.
2517
2518 2005-07-28 Diego Novillo <dnovillo@redhat.com>
2519
2520 * expr.c (expand_load_internal): Fix missing parens in
2521 predicate.
2522
2523 2005-07-28 Andrew Haley <aph@redhat.com>
2524
2525 * expr.c (expand_load_internal): Convert to destination type.
2526
2527 2005-07-22 Manfred Hollstein <mh@suse.com>
2528
2529 * verify-impl.c (check_class_constant): Fix uninitialised warnings.
2530 (check_constant): Likewise.
2531 (check_wide_constant): Likewise.
2532
2533 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
2534
2535 Make CONSTRUCTOR use VEC to store initializers.
2536 * check-init.c (check_init): Update to cope with VEC in
2537 CONSTRUCTOR_ELTS.
2538 * class.c (make_field_value, make_method_value, get_dispatch_table,
2539 make_class_data, emit_symbol_table, emit_catch_table,
2540 emit_assertion_table): Use build_constructor_from_list instead of
2541 build_constructor.
2542 * constants.c (build_constants_constructor): Likewise.
2543 * java-gimplify.c (java_gimplify_new_array_init): Update to cope with
2544 VEC in CONSTRUCTOR_ELTS.
2545 * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
2546 PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
2547 of a TREE_LIST.
2548 * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
2549 CONSTRUCTOR_ELTS.
2550 * parse.y (build_new_array_init): Use build_constructor_from_list
2551 instead of build_constructor.
2552 (patch_new_array_init): Update to cope with VEC in
2553 CONSTRUCTOR_ELTS.
2554 (array_constructor_check_entry): Likewise.
2555
2556 2005-07-12 Tom Tromey <tromey@redhat.com>
2557
2558 * jvspec.c (lang_specific_driver): Put filelist_filename first on
2559 command line.
2560
2561 2005-07-12 Tom Tromey <tromey@redhat.com>
2562
2563 PR java/19674:
2564 * parse-scan.y (interface_member_declaration): Added
2565 empty_statement.
2566
2567 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
2568
2569 * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
2570 (LABEL_PENDING_CHAIN): Ditto.
2571 (LABEL_PC): Ditto.
2572 (DECL_BIT_INDEX): Ditto.
2573
2574 2005-07-07 Bryce McKinlay <mckinlay@redhat.com>
2575
2576 PR java/18119
2577 * parse.y (inner_class_accessible): New function. Logic moved from
2578 check_inner_class_access.
2579 (check_inner_class_access): Use inner_class_accessible.
2580 (resolve_inner_class): Simplify arguments. Create circularity hash
2581 here. Keep looking for classes if we found one that was inaccessible.
2582 Return the inaccessible class only if there is no other match.
2583 (do_resolve_class): Update for new resolve_inner_class arguments.
2584 Don't create circularity_hash here.
2585
2586 2005-07-07 Bryce McKinlay <mckinlay@redhat.com>
2587
2588 PR java/21045
2589 * parse.y (add_exception_to_throws): New function.
2590 (purge_unchecked_exceptions): Removed.
2591 (get_constructor_super): Renamed from verify_constructor_super. Now
2592 returns the super constructor after verification.
2593 (java_complete_expand_method): Don't use purge_unchecked_exceptions
2594 or save/restore the exception list.
2595 (check_thrown_exceptions): Add uncaught exceptions in anonymous
2596 class initializers and constructors to the throws clause of the method.
2597
2598 2005-07-05 Bryce McKinlay <mckinlay@redhat.com>
2599
2600 PR java/19674
2601 * parse.y (interface_member_declaration): Allow empty statements in
2602 interface declarations.
2603
2604 2005-07-05 Paolo Bonzini <bonzini@gnu.org>
2605
2606 * Makefile.in (parse.o): Adjust dependencies.
2607 * parse.y: Include tree-dump.h.
2608
2609 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
2610
2611 * class.c, decl.c, expr.c: Use '+' flag instead of %J. Use 'q'
2612 flag for quoting.
2613
2614 2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
2615
2616 * parse.y (issue_warning_error_from_context): Call
2617 pp_output_formatted_text to be able to get the buffer.
2618
2619 2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
2620
2621 * parse.y (issue_warning_error_from_context): Update for the
2622 renaming of pp_format_text to pp_format.
2623
2624 2005-06-28 Paul Brook <paul@codesourcery.com>
2625
2626 * decl.c (java_init_decl_processing): Call
2627 default_init_unwind_resume_libfunc.
2628
2629 2005-06-27 Tom Tromey <tromey@redhat.com>
2630
2631 PR java/21540, PR java/13788:
2632 * parse.y (java_complete_lhs) <CASE_EXPR>: Use
2633 fold_constant_for_init.
2634 (patch_binop): Added 'folding' argument. Updated all callers.
2635 (patch_unaryop) <NOP_EXPR>: New case.
2636 (fold_constant_for_init) <NOP_EXPR>: Likewise.
2637 (fold_constant_for_init) <COND_EXPR>: Fix sense of test.
2638
2639 2005-06-25 Jan Hubicka <jh@suse.cz>
2640
2641 * builtins.c (define_builtin): Accept new flags parameter.
2642 (initialize_builtins): Mark the builtins const and nothrow accordingly.
2643
2644 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
2645
2646 * all files: Update FSF address in copyright headers.
2647
2648 2005-06-24 Tom Tromey <tromey@redhat.com>
2649
2650 * verify-impl.c (verify_instructions_0): Correctly handle
2651 situation where PC falls off end.
2652
2653 2005-06-23 Bryce McKinlay <mckinlay@redhat.com>
2654
2655 PR java/20697
2656 * parse.y (find_most_specific_methods_list): Remove special case for
2657 inner classes.
2658
2659 2005-06-15 Tom Tromey <tromey@redhat.com>
2660
2661 PR libgcj/21906:
2662 * class.c (make_method_value): Use soft_abstractmethod_node for
2663 abstract method.
2664 * java-tree.h (soft_abstractmethod_node): New define.
2665 (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
2666 * decl.c (java_init_decl_processing): Initialize
2667 soft_abstractmethod_node.
2668
2669 2005-06-13 Geoffrey Keating <geoffk@apple.com>
2670
2671 * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
2672
2673 2005-06-13 Per Bothner <per@bothner.com>
2674
2675 * expr.c (int highest_label_pc_this_method,
2676 start_label_pc_this_method): New globals.
2677 (lookup_label): Add start_label_pc_this_method to pc for label, and
2678 update highest_label_pc_this_method. This prevents conflicts between
2679 labels from different methods.
2680 * java-tree.h: Declare new globals.
2681 * jcf-parse.c (parse_class_file): If needed bump
2682 start_label_pc_this_method and reset highest_label_pc_this_method.
2683
2684 2005-06-13 Tom Tromey <tromey@redhat.com>
2685
2686 PR java/21844:
2687 * parse.y (nested_field_access_p): Handle case where outer field
2688 is inherited by enclosing class.
2689
2690 2005-06-12 Per Bothner <per@bothner.com>
2691
2692 * class.c (inherits_from_p): Do load_class if needed.
2693
2694 2005-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2695
2696 * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
2697 * java-tree.h (parse_error_context): Move...
2698 * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
2699 * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
2700 * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
2701
2702 2005-06-08 Roger Sayle <roger@eyesopen.com>
2703
2704 * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
2705
2706 2005-06-06 Jakub Jelinek <jakub@redhat.com>
2707
2708 * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
2709 msgid for argument name.
2710 * gjavah.c (error): Likewise.
2711 * java-tree.h (parse_error_context): Likewise.
2712 * parse.y (parse_error_context, parse_warning_context,
2713 issue_warning_error_from_context): Likewise.
2714
2715 2005-06-01 Tom Tromey <tromey@redhat.com>
2716
2717 PR java/21722:
2718 * class.c (build_static_field_ref): Don't fold constant fields if
2719 current class is from a .class file and we're using indirect
2720 dispatch.
2721
2722 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2723
2724 * java/verify-glue.c: Don't include errors.h and include toplev.h.
2725 * java/Make-lang.in: Updates dependencies.
2726
2727 2005-05-26 Ranjit Mathew <rmathew@hotmail.com>
2728
2729 PR java/19870.
2730 * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
2731 NESTED_FIELD_ACCESS_IDENTIFIER_P.
2732 (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
2733 (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
2734 * jcf-write.c (generate_classfile): Use
2735 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
2736 OUTER_FIELD_ACCESS_IDENTIFIER_P.
2737 * parse.y (build_outer_field_access): Rename to
2738 build_nested_field_access. Support static fields and outer-to-inner
2739 class accesses.
2740 (outer_field_access_p): Rename to nested_field_access_p. Support
2741 static fields and generalise to outer-to-inner class and sibling
2742 inner class accesses.
2743 (outer_field_expanded_access_p): Rename to
2744 nested_field_expanded_access_p and support static fields.
2745 (outer_field_access_fix): Rename to nested_field_access_fix and
2746 support static fields.
2747 (build_outer_field_access_expr): Rename to
2748 build_nested_field_access_expr and support static fields.
2749 (build_outer_field_access_methods): Rename to
2750 build_nested_field_access_methods and support static fields. For
2751 static fields, generate accessors without class instance parameters.
2752 (build_outer_field_access_method): Rename to
2753 build_nested_field_access_method and support static fields.
2754 (build_outer_method_access_method): Use
2755 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
2756 OUTER_FIELD_ACCESS_IDENTIFIER_P.
2757 (resolve_expression_name): Consider static field accesses across
2758 nested classes.
2759 (resolve_qualified_expression_name): Likewise.
2760 (java_complete_lhs): Use nested_field_access_fix instead of
2761 outer_field_access_fix.
2762 (patch_unary_op): Rename outer_field_flag to nested_field_flag.
2763 Use nested_field_expanded_access_p instead of
2764 outer_field_expanded_access_p. Use nested_field_access_fix instead
2765 of outer_field_access_fix.
2766 (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
2767 instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
2768
2769 2005-05-26 Bryce McKinlay <mckinlay@redhat.com>
2770
2771 * decl.c (GCJ_BINARYCOMPAT_ADDITION,
2772 GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
2773 (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
2774 MINOR_BINARYCOMPAT_ABI_VERSION): New.
2775 (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
2776 (parse_version): Calculate version ID using new method. Use bit-flags
2777 for flag_indirect_dispatch and flag_bootstrap_classes.
2778
2779 2005-05-25 Richard Henderson <rth@redhat.com>
2780
2781 PR libgcj/21692
2782 * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
2783 * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
2784 DECL_CONTEXT; avoid pushdecl_top_level.
2785 (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
2786 (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
2787 (layout_class_method): Likewise.
2788 * decl.c (java_mark_cni_decl_local): New.
2789 (java_mark_class_local): Use it.
2790 * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
2791 (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
2792 (struct lang_decl_func): Add local_cni;
2793 (struct lang_decl_var): Add class_field, vtable.
2794 (java_mangle_decl): Declare.
2795 * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
2796 * mangle.c: Remove dup obstack.h; include langhooks-def.h.
2797 (mangle_obstack_1): New.
2798 (java_mangle_decl): Remove obstack argument. Call mangle_class_field,
2799 mangle_vtable, and mangle_local_cni_method_decl. Fall back to
2800 lhd_set_decl_assembler_name for things that don't need mangling.
2801 (mangle_class_field): Rename from java_mangle_class_field, make
2802 static, don't call init_mangling or finish_mangling.
2803 (mangle_vtable): Similarly.
2804 (mangle_local_cni_method_decl): New.
2805 (init_mangling): Remove obstack argument. Use &mangle_obstack_1,
2806 gcc_assert, and MANGLE_RAW_STRING.
2807 (finish_mangling): Use gcc_assert, remove if 0 debugging code.
2808
2809 2005-05-25 DJ Delorie <dj@redhat.com>
2810
2811 * class.c (set_constant_value): Move warning control from if() to
2812 warning(OPT_*).
2813
2814 2005-05-24 Richard Henderson <rth@redhat.com>
2815
2816 * builtins.c (define_builtin): Don't call make_decl_rtl.
2817 * constants.c (build_constant_data_ref): Likewise.
2818 * class.c (build_utf8_ref): Likewise.
2819 (build_fieldref_cache_entry, build_static_field_ref): Likewise.
2820 (get_dispatch_table, layout_class_method): Likewise.
2821 (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
2822 by hand.
2823 (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
2824 (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
2825 to determine if we need a non-zero address.
2826 * decl.c (builtin_function): Don't call make_decl_rtl.
2827 (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
2828 * expr.c (build_known_method_ref): Don't call make_decl_rtl.
2829 * resource.c (compile_resource_data): Likewise.
2830 * parse.y (resolve_field_access): Re-word comment to avoid
2831 building DECL_RTL.
2832
2833 2005-05-24 Richard Henderson <rth@redhat.com>
2834
2835 * class.c (registered_class): Take it out of class_roots; turn into
2836 a vec of trees.
2837 (register_class): Make static. Don't duplicate decl node. Use
2838 VEC_safe_push.
2839 (emit_register_classes): Use VEC_iterate. Use output_constant
2840 instead of assemble_integer. Don't call mark_decl_referenced
2841 directly.
2842 * java-tree.h (register_class): Remove decl.
2843
2844 2005-05-19 Paolo Bonzini <bonzini@gnu.org>
2845
2846 PR java/17845
2847
2848 * parse.y (register_package, package_list): Remove.
2849 (package_declaration): Do not call register_package.
2850 (do_resolve_class): Do not use package_list.
2851
2852 2005-05-15 Gerald Pfeifer <gerald@pfeifer.com>
2853
2854 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Remove
2855 unused variable.
2856
2857 2005-05-15 Tom Tromey <tromey@redhat.com>
2858
2859 PR java/21519:
2860 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call
2861 NOTE_PUSH.
2862
2863 2005-05-12 Aaron Luchko <aluchko@redhat.com>
2864
2865 * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
2866
2867 2005-05-11 Tom Tromey <tromey@redhat.com>
2868
2869 * gcj.texi (Code Generation): Document -fbootstrap-classes.
2870 * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
2871 (parse_version): Use it.
2872 * lang.opt (-fbootstrap-classes): New option.
2873
2874 2005-05-10 Paolo Bonzini <bonzini@gnu.org>
2875
2876 PR java/21436
2877 * class.c (maybe_layout_super_class): Look for imports in this_class.
2878 * parse.h (ctxp_for_generation_last): New.
2879 (do_resolve_class): Add a parameter.
2880 * parse.y (ctxp_for_generation_last): New.
2881 (java_pop_parser_context): Add at end of list.
2882 (find_in_imports, find_in_imports_on_demand): Look in ctxp
2883 if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
2884 the given type are NULL.
2885 (do_resolve_class): Look into the imports of the new second parameter.
2886 Adjust recursive calls.
2887 (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
2888 calls to do_resolve_class.
2889 (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
2890 (java_complete_class): Do not do that here.
2891
2892 2005-05-03 Thomas Fitzsimmons <fitzsim@redhat.com>
2893
2894 PR java/20309
2895 * Make-lang.in (java): Add gjnih.
2896 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
2897 (GJNIH_OBJS): New variable.
2898 (gjnih$(exeext)): New target.
2899 (JAVA_MANFILES): Add gjnih.1.
2900 (java.uninstall): Add gjnih.1.
2901 (java.mostlyclean): Add gjnih.
2902 (java.maintainer-clean): Add gjnih.1.
2903 (java/gjavah-jni.o): New target.
2904 (.INTERMEDIATE): Add gjnih.pod.
2905 (gjnih.pod): New target.
2906 * config-lang.in (stagestuff): Add gjnih.
2907 * gcj.texi (Top): Add gjnih node.
2908 (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
2909 -bootclasspath options.
2910 (Invoking gjnih): New node.
2911 * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
2912 (TOOLNAME): New macro.
2913 (error): Replace hard-coded gcjh with TOOLNAME.
2914 (process_file): Likewise.
2915 (usage): Likewise.
2916 (version): Likewise.
2917 (help): Likewise. Add help output for -force, -old, -trace and -J
2918 options.
2919 (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
2920 (options): Add force, old, trace and J fields.
2921 (main): Handle -force, -old, -trace and -J options.
2922
2923 2005-05-03 Tom Tromey <tromey@redhat.com>
2924
2925 PR java/21245:
2926 * gjavah.c (main): Unlink output file on error.
2927
2928 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
2929
2930 * constants.c, jvgenmain.c, lang.opt, resource.c: Update
2931 copyright.
2932
2933 2005-04-29 Tom Tromey <tromey@redhat.com>
2934
2935 * expr.c (build_jni_stub): Updated for change to build_block.
2936
2937 2005-04-29 Andrew Pinski <pinskia@gcc.gnu.org>
2938
2939 * expr.c (force_evaluation_order): Declare 'saved' earlier.
2940
2941 2005-04-28 Andrew Haley <aph@redhat.com>
2942
2943 PR java/19285
2944 * java-tree.h (soft_resolvepoolentry_node): New.
2945 (alloc_constant_fieldref): Declare.
2946 * expr.c (expand_java_field_op): Don't call class_init for
2947 accesses to static fields with indirect dispatch.
2948 * builtins.c (initialize_builtins): Add "__builtin_expect".
2949 * decl.c (soft_resolvepoolentry_node): New variable.
2950 (java_init_decl_processing): Create a decl for
2951 "_Jv_ResolvePoolEntry".
2952 * class.c (build_fieldref_cache_entry): New function.
2953 (build_static_field_ref): Rewrite for indirect dispatch.
2954 * constants.c (find_name_and_type_constant_tree): New function.
2955 (alloc_constant_fieldref): Likewise.
2956 (build_constants_constructor): Handle CONSTANT_Fieldref and
2957 CONSTANT_NameAndType.
2958
2959 PR java/21115
2960 * expr.c (force_evaluation_order): Convert outgoing args smaller
2961 than integer.
2962
2963 2005-04-27 Bryce McKinlay <mckinlay@redhat.com>
2964
2965 * gcj.texi (libgcj Runtime Properties): Remove obsolete
2966 gnu.gcj.runtime.NameFinder.* system properties. Update documentation
2967 for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
2968
2969 2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2970
2971 * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
2972 to `unlock_stream' with `unlock_std_streams'.
2973
2974 2005-04-25 Jakub Jelinek <jakub@redhat.com>
2975
2976 * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
2977 instead of just expr.h.
2978
2979 2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2980
2981 * gjavah.c (main): Unlock the stdio streams.
2982 * jcf-dump.c (main): Likewise.
2983 * jv-scan.c (main): Likewise.
2984 * jvgenmain.c (main): Likewise.
2985
2986 2005-04-23 DJ Delorie <dj@redhat.com>
2987
2988 * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
2989 parse.y: Adjust warning() callers.
2990
2991 2005-04-21 Bryce McKinlay <mckinlay@redhat.com>
2992
2993 * gcj.texi (Object fields): Change "Integer" to "Int" in example
2994 contructor.
2995
2996 2005-04-20 Bryce McKinlay <mckinlay@redhat.com>
2997
2998 * gcj.texi: Fix typos and bogus example.
2999
3000 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
3001
3002 * except.c: Fix a comment typo.
3003
3004 2005-04-19 Julian Brown <julian@codesourcery.com>
3005
3006 * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
3007 indirect dispatch with PIC.
3008
3009 2005-04-18 Andrew Haley <aph@redhat.com>
3010
3011 * java-except.h (struct eh_range.handler): Remove unused field.
3012 (handle_nested_ranges): Remove function declaration.
3013 (sanity_check_exception_range): Add function declaration.
3014 * verify.c (verify_jvm_instructions): Remove call to
3015 handle_nested_ranges.
3016 * verify-glue.c (verify_jvm_instructions_new): Call
3017 sanity_check_exception_range.
3018 * except.c (link_handler, eh_range_freelist, link_handler,
3019 handle_nested_ranges): Remove.
3020 (add_handler): Rewrite.
3021 (sanity_check_exception_range): New function.
3022 (print_ranges): New function.
3023
3024 2005-04-13 Julian Brown <julian@codesourcery.com>
3025
3026 * decl.c (finish_method): Give methods once-only linkage.
3027
3028 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
3029
3030 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
3031
3032 2005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3033
3034 * java-tree.h: Don't use PARAMS().
3035
3036 2005-04-07 Per Bothner <per@bothner.com>
3037
3038 * class.c (push_class): By default, suppress debug output.
3039 (finish_class): Enable debug output for classes we're emitting.
3040
3041 2005-04-07 Andrew Haley <aph@redhat.com>
3042
3043 * gcj.texi: Correct gcj-dbtool instructions.
3044
3045 2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
3046
3047 * gcj.texi: Fix a typo.
3048 * lang.c: Fix a comment typo.
3049
3050 2005-04-01 Thomas Fitzsimmons <fitzsim@redhat.com>
3051
3052 * gcj.texi (Invoking gij): Add descriptions of new -X options.
3053 Mention recognized-and-ignored compatibility options.
3054 (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
3055 JvFree.
3056 (About CNI): Add Memory allocation section.
3057
3058 2005-04-01 Tom Tromey <tromey@redhat.com>
3059
3060 * decl.c (java_init_decl_processing): Fix types of
3061 _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
3062 _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
3063 _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
3064
3065 2005-03-31 Jan Hubicka <jh@suse.cz>
3066
3067 * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
3068 * class.c: Include cgraph.h
3069 (make_local_functoin_alias): Mark aslias as needed.
3070 * resource.c: Include cgraph.h
3071 (compile_resource_data): Go via cgraph interface.
3072
3073 2005-03-30 Ian Lance Taylor <ian@airs.com>
3074
3075 * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
3076
3077 2005-03-30 Tom Tromey <tromey@redhat.com>
3078
3079 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
3080 inner_class_info_index==0 or outer_class_info_index==0.
3081
3082 2005-03-29 Tom Tromey <tromey@redhat.com>
3083
3084 * gcj.texi (libgcj Runtime Properties): Document
3085 gnu.gcj.runtime.endorsed.dirs.
3086
3087 2005-03-24 Anthony Green <green@redhat.com>
3088
3089 * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
3090 'gcj-dbtool -p'.
3091
3092 2005-03-23 Tom Tromey <tromey@redhat.com>
3093
3094 * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
3095 (parse_version): Use it.
3096
3097 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
3098
3099 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
3100
3101 2005-03-18 Andrew Haley <aph@redhat.com>
3102
3103 PR java/20522
3104 * decl.c (update_aliases): Don't update variables that are about
3105 to die.
3106 (maybe_poplevels): Add comment.
3107
3108 2005-03-17 Bryce McKinlay <mckinlay@redhat.com>
3109
3110 PR java/20502
3111 * jcf-parse.c (duplicate_class_warning): New function.
3112 (java_parse_file): Call duplicate_class_warning if
3113 CLASS_FROM_CURRENTLY_COMPILED_P is already set.
3114 (parse_zip_file_entries): Likewise. Also set
3115 CLASS_FROM_CURRENTLY_COMPILED_P.
3116
3117 2005-03-16 Andrew Haley <aph@redhat.com>
3118
3119 * expr.c (expand_java_arrayload): Don't generate a
3120 NullPointerException based on the type of the node.
3121 (build_java_array_length_access): Likewise.
3122
3123 2005-03-15 Zack Weinberg <zack@codesourcery.com>
3124
3125 * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
3126
3127 2005-03-11 Tom Tromey <tromey@redhat.com>
3128
3129 * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
3130 (libgcj Runtime Properties): Document the default .db.
3131
3132 2005-03-10 Ranjit Mathew <rmathew@hotmail.com>
3133
3134 PR java/20312
3135 * parse.y (checks_throws_clauses): Check exceptions list even when
3136 the base class does not come from a source file being compiled.
3137 (java_complete_lhs): Remove unused variable 'wfl'.
3138
3139 2005-03-09 Ranjit Mathew <rmathew@hotmail.com>
3140
3141 PR java/20338
3142 * decl.c (finish_method): Emit _Jv_InitClass for private static
3143 methods inside inner classes as well.
3144
3145 2005-03-08 Julian Brown <julian@codesourcery.com>
3146 * Revert patch from 2005-03-08 for causing bootstrap failure on
3147 ppc-darwin.
3148
3149 2005-03-08 Julian Brown <julian@codesourcery.com>
3150
3151 * decl.c (finish_method): Give methods once-only linkage.
3152
3153 2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
3154
3155 * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
3156
3157 2005-03-07 Bryce McKinlay <mckinlay@redhat.com>
3158
3159 * verify-glue.c (vfy_is_assignable_from): Perform static check using
3160 can_widen_reference_to if the C++ ABI is in use.
3161 (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
3162 * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
3163 type_isresolved, init_state, set_pc, state_get_pc,
3164 _Jv_BytecodeVerifier): Clean up unused and disabled functions.
3165 (verify_fail): Report the current PC from the verifier context.
3166 (free_state): Remove #if 0 block to enable this function.
3167 (free_verifier_context): Call free_state on state_list iterator
3168 values before freeing them.
3169 * expr.c (pop_type_0): Pop correct type for error message when stack
3170 contains a multi-word type.
3171
3172 2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
3173
3174 * expr.c (build_java_array_length_access): Remove !flag_new_verifier
3175 for known NULL array length access.
3176
3177 2005-03-07 Tom Tromey <tromey@redhat.com>
3178
3179 * gcj.texi (Invoking gcj-dbtool): Document '-f'.
3180
3181 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
3182
3183 * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
3184 typeck.c: Update copyright.
3185
3186 2005-03-06 Ranjit Mathew <rmathew@hotmail.com>
3187
3188 Remove xref code.
3189 * xref.c, xref.h: Remove file.
3190 * Make-lang.in (java/xref.o): Remove.
3191 * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
3192 * lang.c (flag_emit_xref): Remove definition.
3193 * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
3194 * typeck.c (convert): Remove use of do_not_fold.
3195 * parse.y (do_not_fold): Remove definition.
3196 (parser grammar): Remove xref code.
3197 (maybe_create_class_interface_decl, create_class): Likewise.
3198 (register_fields, method_header, finish_method_declaration): Likewise.
3199 (declare_local_variables, source_end_java_method): Likewise.
3200 (java_complete_expand_classes): Do not set do_not_fold.
3201 (java_complete_expand_method): Remove xref code.
3202 (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
3203 (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
3204 (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
3205 (patch_synchronized_statement, patch_throw_statement): Likewise.
3206 (maybe_build_class_init_for_field): Likewise.
3207
3208 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
3209
3210 * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
3211 instead of IS_NON_TYPE_CODE_CLASS.
3212
3213 2005-03-04 Andrew Haley <aph@redhat.com>
3214
3215 PR java/18362
3216 * class.c (set_method_index): Don't set method_index if it is
3217 NULL_TREE.
3218 (layout_class_method): Don't complain about "non-static method foo
3219 overrides static method" in the case of indirect dispatch.
3220
3221 2005-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3222
3223 * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
3224 warning.
3225 * Make-lang.in: Don't elide warnings in jcf-io.c.
3226
3227 2005-03-01 Per Bothner <per@bothner.com>
3228
3229 PR java/8608
3230 * check-init.c (wfl): Remove static.
3231 (final_assign_error, check_init): Replace calls to parse_error_context
3232 by plain error.
3233 (check_init): Save, set, and restore input_location for each exp.
3234
3235 2005-03-01 Per Bothner <per@bothner.com>
3236
3237 * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
3238 if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
3239 * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
3240
3241 2005-03-01 Per Bothner <per@bothner.com>
3242
3243 * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
3244
3245 2005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com>
3246
3247 PR libgcj/16923
3248 * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
3249 JvVMOption.
3250
3251 2005-02-22 Tom Tromey <tromey@redhat.com>
3252
3253 PR java/20056:
3254 * verify-impl.c (EITHER): New define.
3255 (types_compatible): Handle it.
3256 (check_field_constant): Use it.
3257
3258 2005-02-18 Tom Tromey <tromey@redhat.com>
3259
3260 PR java/20056:
3261 * verify-impl.c (types_equal): Fixed test.
3262
3263 PR java/20056:
3264 * verify-glue.c (vfy_class_has_field): New function.
3265 * verify.h (vfy_class_has_field): Declare.
3266 * verify-impl.c (check_field_constant): Added 'putfield'
3267 argument.
3268 (verify_instructions_0): Updated.
3269 (types_equal): New function.
3270
3271 2005-02-14 Tom Tromey <tromey@redhat.com>
3272
3273 PR java/19921:
3274 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the
3275 stack effect of multianewarray.
3276
3277 2005-02-14 Andrew Haley <aph@redhat.com>
3278
3279 PR java/19907
3280 * expr.c (expand_byte_code): Call promote_arguments().
3281 (promote_arguments): New function.
3282 * decl.c (check_local_unnamed_variable): Remove special case for
3283 new verifier.
3284 (find_local_variable): Promote all boolean types to int
3285 when searching for local variable decls.
3286
3287 2005-02-12 Kazu Hirata <kazu@cs.umass.edu>
3288
3289 * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
3290 parse-scan.y: Update copyright.
3291
3292 2005-02-11 Per Bothner <per@bothner.com>
3293
3294 PR java/15543
3295 * parse-scan.y (input_location): Remove variable.
3296 (main_input_filename): New - replaces input_filename, which isn't
3297 settable if USE_MAPPED_LOCATION.
3298 * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
3299 so we don't reference input_location or wfl_operator in that case.
3300 * jv-scan.c (expand_location): Remove - no longer used.
3301 (main): Set main_input_filename rather than input_filename.
3302
3303 2005-02-09 Richard Henderson <rth@redhat.com>
3304
3305 * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
3306 * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
3307
3308 2005-02-08 Marcin Dalecki <martin@dalecki.de>
3309
3310 * expr.c (add_type_assertion): Use the proper enumeration type,
3311 since this is what htab_find_slot() is expecting.
3312
3313 2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
3314
3315 * gcj.texi: Update copyright dates.
3316
3317 2005-02-02 Tom Tromey <tromey@redhat.com>
3318
3319 * gcj.texi (libgcj Runtime Properties): Default library_control
3320 to 'cache'.
3321
3322 2005-02-02 Ranjit Mathew <rmathew@hotmail.com>
3323
3324 PR java/15543
3325 * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
3326 (modifiers) when square brackets are present in a declaration for
3327 a final paramter.
3328 * jv-scan.c (main): Set input_filename and input_line.
3329
3330 2005-02-01 Tom Tromey <tromey@redhat.com>
3331
3332 PR java/19742:
3333 * gjavah.c (get_field_name): Don't override name for JNI header.
3334
3335 2005-02-01 Roger Sayle <roger@eyesopen.com>
3336
3337 * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
3338 of unsigned types using iushr and lushr JVM bytecodes.
3339
3340 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
3341
3342 PR java/19738
3343 * gjavah.c (jni_print_float): Do not emit floating-point
3344 initialiser for a static final field.
3345 (jni_print_double): Likewise.
3346
3347 2005-02-01 Mark Mitchell <mark@codesourcery.com>
3348
3349 Revert:
3350 2005-01-31 Mark Mitchell <mark@codesourcery.com>
3351 * gjavah.c (print_field_info): Mark static data members of
3352 floating-point type with "__extension__".
3353
3354 2005-01-31 Mark Mitchell <mark@codesourcery.com>
3355
3356 * gjavah.c (print_field_info): Mark static data members of
3357 floating-point type with "__extension__".
3358
3359 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
3360
3361 PR java/9157
3362 * parse.y (build_string_concatenation): Remove redundant if.
3363 (patch_conditional_expr): Attempt to patch_string() the condition
3364 of a ?: as well, in addition to its other operands.
3365
3366 2005-01-25 Tom Tromey <tromey@redhat.com>
3367
3368 * Make-lang.in (java/java-tree-inline.o): Removed.
3369
3370 2005-01-25 Ranjit Mathew <rmathew@hotmail.com>
3371
3372 PR java/19070
3373 * parse.y (patch_binop): Allow comparisons against NULL only
3374 if the other operand is of a reference type.
3375
3376 2005-01-24 Tom Tromey <tromey@redhat.com>
3377
3378 * java-tree.h (gcj_abi_version): Declare.
3379 * class.c (make_class_data): Push gcj_abi_version into "next"
3380 field. Renamed field.
3381 * decl.c (gcj_abi_version): New global.
3382 (parse_version): New function.
3383 (java_init_decl_processing): Call it. Renamed 'next' field.
3384 Include version.h.
3385 (GCJ_BINARYCOMPAT_ADDITION): New define.
3386
3387 2005-01-24 Roger Sayle <roger@eyesopen.com>
3388
3389 PR java/19295
3390 * jcf-write.c (generate_bytecode_insns): Conversions between
3391 integer types of the same precision shouldn't generate widening
3392 or narrowing conversion bytecodes.
3393
3394 2005-01-22 Kazu Hirata <kazu@cs.umass.edu>
3395
3396 * java-except.h, java-tree.h: Remove unused prototypes.
3397
3398 2005-01-20 Andrew Pinski <pinskia@gcc.gnu.org>
3399
3400 PR java/18091:
3401 * jcf-write.c (perform_relocations): Don't call memcpy if source
3402 and destination are the same.
3403
3404 2005-01-17 Tom Tromey <tromey@redhat.com>
3405
3406 * verify-impl.c (get_short): Sign extend.
3407 (get_int): Likewise.
3408
3409 2005-01-12 Ranjit Mathew <rmathew@hotmail.com>
3410
3411 * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
3412 with TYPE_SIZE.
3413
3414 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
3415
3416 * verify.c: Revert to the version before the BC-ABI merge.
3417
3418 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
3419
3420 PR java/19277
3421 * check-init.c (check_init): Take care of references that do not
3422 have an explicit final variable declaration (e.g. array length
3423 access) for pre/post in/de-crement operators.
3424
3425 2005-01-08 Mark Wielaard <mark@klomp.org>
3426
3427 * parse.y (process_imports): Allocate (and free) original_name only
3428 when not already defined.
3429 * jcf-parse.c (read_class): Free results of find_class() and
3430 lrealpath().
3431 (java_parse_file): Keep pointer to head of file_list and free when
3432 done. Free result of lrealpath().
3433
3434 2005-01-05 Tom Tromey <tromey@redhat.com>
3435
3436 * gcj.texi (Standard Properties): java.ext.dirs is now used.
3437
3438 2004-12-20 Andrew Haley <aph@redhat.com>
3439
3440 * typeck.c: Use fold_convert for ints and booleans.
3441
3442 2004-12-17 Andrew Haley <aph@redhat.com>
3443
3444 PR java/18931
3445 * typeck.c (convert): Use a CONVERT_EXPR when converting to
3446 BOOLEAN_TYPE or CHAR_TYPE.
3447 (convert_to_boolean, convert_to_char) : Remove.
3448 * convert.h (convert_to_boolean, convert_to_char) : Remove.
3449 * expr.c (expand_load_internal): Do type conversion if type is not
3450 as required.
3451
3452 2004-12-13 Danny Smith <dannysmith@users.sourceforge.net>
3453
3454 PR target/18459
3455 * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
3456 Update comment.
3457
3458 2004-12-07 Andrew Haley <aph@redhat.com>
3459
3460 PR java/18811:
3461 * jcf-parse.c (load_class): Remove sanity test for missing inner
3462 class file.
3463
3464 2004-12-06 Tom Tromey <tromey@redhat.com>
3465
3466 * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
3467 (java.uninstall): Likewise.
3468 (java.maintainer-clean): Likewise.
3469 (.INTERMEDIATE): Likewise.
3470 (java.install-man): Likewise.
3471 (gcj-dbtool.pod): New target.
3472 * gcj.texi (Code Generation): Document -findirect-dispatch.
3473 (libgcj Runtime Properties): Document
3474 gnu.gcj.precompiled.db.path.
3475 (Top): Link to "Invoking gcj-dbtool".
3476
3477 2004-12-06 Tom Tromey <tromey@redhat.com>
3478
3479 PR java/14853:
3480 * java-tree.h (extract_field_decl): Declare.
3481 * parse.y (extract_field_decl): Renamed from
3482 strip_out_static_field_access_decl. No longer static.
3483 * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
3484
3485 2004-12-03 Tom Tromey <tromey@redhat.com>
3486
3487 * lang.c (flag_new_verifier): Define.
3488 (java_post_options): Set flag_new_verifier if indirect dispatch
3489 is being used.
3490 * lang.opt (fnew-verifier): Removed.
3491
3492 2004-12-03 Tom Tromey <tromey@redhat.com>
3493
3494 PR bootstrap/14614:
3495 * Make-lang.in (java.install-common): Only install transformed
3496 gcjh if gcj-cross exists.
3497
3498 2004-12-03 Andrew Haley <aph@redhat.com>
3499
3500 PR java/18812
3501 * except.c (link_handler): Patch 'outer' field of siblings of the
3502 range we're demoting.
3503
3504 2004-12-03 Andrew Haley <aph@redhat.com>
3505
3506 PR java/18697
3507 * class.c (layout_class_method): Don't fail to override a method
3508 simply because it has DECL_ARTIFICIAL set.
3509
3510 2004-12-02 Tom Tromey <tromey@redhat.com>
3511
3512 PR java/16675:
3513 * parse.y (craft_constructor): Special case null_pointer_node.
3514
3515 2004-12-02 Tom Tromey <tromey@redhat.com>
3516
3517 PR java/18741:
3518 * java-gimplify.c (java_gimplify_expr): Don't call
3519 SET_EXPR_LOCATION unless wrapped tree is an expression.
3520
3521 2004-11-27 Per Bothner <per@bothner.com>
3522
3523 * jcf-parse.c (set_source_filename): Improvement to Andrew's fix:
3524 Fix fencepost error in 'i', which got executed one too many times.
3525 Also, fold memcpy into explicit loop, as originally intended.
3526 Also, free temporary 'buf' which otherwise leaks.
3527
3528 2004-11-27 Per Bothner <per@bothner.com>
3529
3530 * expr.c (build_expr_wfl): Only declare last_file and last_filenode
3531 local static variables if not USE_MAPPED_LOCATION.
3532
3533 2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
3534
3535 * class.c, decl.c, expr.c: Fix comment typos.
3536
3537 2004-11-26 Andrew Pinski <pinskia@physics.uc.edu>
3538
3539 PR java/18305
3540 * decl.c (end_java_method): Call
3541 attach_init_test_initialization_flags on all the init_decls.
3542 * parse.y (attach_init_test_initialization_flags): Move to ...
3543 * expr.c (attach_init_test_initialization_flags): here and
3544 support BIND_EXPR also.
3545 * java-tree.h (attach_init_test_initialization_flags): Prototype.
3546 * jcf-parse.c (parse_class_file): Don't disable class init
3547 optimization.
3548
3549 2004-11-25 Joseph S. Myers <joseph@codesourcery.com>
3550
3551 * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
3552 in diagnostics.
3553
3554 2004-11-24 Richard Henderson <rth@redhat.com>
3555
3556 * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
3557 vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
3558
3559 2004-11-24 Tom Tromey <tromey@redhat.com>
3560
3561 * verify.c (defer_merging): Don't use C++-style comment.
3562 * verify.h (java_opcode): Added java_opcode_end.
3563 * class.c (build_class_ref): Remove C++ comment and old FIXME.
3564
3565 * verify-impl.c (vfy_push_type): Removed bogus "return".
3566 (initialize_stack): Use vfy_alloc and vfy_free.
3567 (verify_instructions_0): Likewise.
3568
3569 * Merged gcj-abi-2-dev-branch to trunk.
3570
3571 2004-11-24 Andrew Haley <aph@redhat.com>
3572
3573 * jcf-parse.c (parse_class_file): Set file_start_location.
3574
3575 2004-11-10 Tom Tromey <tromey@redhat.com>
3576
3577 * class.c (make_field_value): Don't call build_static_field_ref.
3578 (build_static_field_ref): Don't emit direct references when using
3579 indirect dispatch.
3580
3581 * gcj.texi (Invoking gij): Document -verbose. Put -verbose and
3582 -verbose:class into man page synopsis.
3583
3584 2004-11-09 Tom Tromey <tromey@redhat.com>
3585
3586 * expr.c (build_java_arraystore_check): Still generate check if
3587 element type is itself an array.
3588
3589 2004-11-08 Tom Tromey <tromey@redhat.com>
3590
3591 * java-tree.h (soft_check_assignment_node): Removed.
3592 (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
3593 * decl.c (java_init_decl_processing): Don't initialize
3594 soft_check_assignment_node.
3595
3596 2004-11-05 Tom Tromey <tromey@redhat.com>
3597
3598 * class.c (layout_class_methods): Don't add Miranda methods when
3599 using indirect dispatch.
3600
3601 2004-11-05 Bryce McKinlay <mckinlay@redhat.com>
3602
3603 * class.c (make_class_data): Call emit_assertion_table to set the
3604 'assertion_table' field.
3605 (build_signature_for_libgcj): Move here from expr.c.
3606 (add_assertion_table_entry): New function. Callback for assertion
3607 hashtable traversal.
3608 (emit_assertion_table): New. Take class argument, and generate
3609 assertion table DECL based on the TYPE_ASSERTIONS hashtable.
3610 * decl.c (init_decl_processing): Define assertion_entry_type record.
3611 Push 'assertion_table' class field instead of 'verify'.
3612 * expr.c (type_assertion_eq): Compare 'assertion_code' field.
3613 (type_assertion_hash): Include 'assertion_code' in hash.
3614 (add_type_assertion): Rewritten. Take class and assertion_code
3615 arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
3616 (can_widen_reference_to): Use new add_type_assertion() arguments.
3617 * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
3618 JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
3619 (verify_identifier_node): Removed.
3620 (assertion_entry_type, assertion_table_type): New.
3621 (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
3622 assertion code definitions.
3623 (struct type_assertion): Add assertion_code. Rename 'source_type' and
3624 'target_type' to 'op1' and 'op2'.
3625 (add_type_assertion): Declare.
3626 (lang_printable_name_wls): Remove unused definition.
3627 * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
3628 to emit runtime assertion.
3629 (vfy_note_stack_type): Clean up non-C90 declarations.
3630 (vfy_note_local_type): Likewise.
3631 * verify.h (vfy_is_assignable_from): Declare.
3632 * verify-impl.c (is_assignable_from_slow): Remove unused function.
3633 (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
3634 instead of is_assignable_from_slow().
3635 (types_compatible): Reinstate ref_compatible() call.
3636
3637 2004-11-04 Tom Tromey <tromey@redhat.com>
3638
3639 * class.c (build_static_field_ref): Reverted previous patch.
3640
3641 * class.c (build_static_field_ref): Don't emit direct references
3642 when using indirect dispatch.
3643
3644 2004-11-03 Tom Tromey <tromey@redhat.com>
3645
3646 * expr.c (expand_java_arrayload): Set lhs_type_node.
3647 (expand_java_arraystore): Set rhs_type_node.
3648
3649 2004-11-02 Tom Tromey <tromey@redhat.com>
3650
3651 * jcf-parse.c (compute_class_name): Use filename length from zip
3652 directory, not strlen.
3653
3654 * expr.c (expand_invoke): Mark new interface methods as abstract.
3655
3656 2004-11-01 Tom Tromey <tromey@redhat.com>
3657
3658 * verify-impl.c (push_jump): Removed check for uninitialized
3659 objects.
3660 (push_exception_jump): Likewise.
3661 (handle_ret_insn): Likewise.
3662 (handle_jsr_insn): Likewise.
3663 (state_check_no_uninitialized_objects): Removed.
3664
3665 * decl.c (check_local_unnamed_variable): Recognize
3666 promoted-to-int parameters when using the new verifier.
3667 * expr.c (expand_java_arraystore): Explicitly request array type
3668 when using new verifier.
3669 (expand_java_arrayload): Likewise.
3670 (invoke_build_dtable): Don't pass object_type_node as
3671 expression argument to build_java_indirect_ref.
3672 (build_java_check_indexed_type): Do nothing.
3673 (build_java_arraystore_check): Handle case where array doesn't
3674 have array type.
3675 (build_java_array_length_access): Likewise.
3676 (expand_invoke): Handle case where interface overrides a method
3677 from Object.
3678 (pop_type_0): Always succeed for reference types.
3679 (process_jvm_instruction): Don't pop a value in a dead
3680 exception handler.
3681 (pop_arguments): Convert arguments to correct types.
3682
3683 2004-10-29 Andrew Haley <aph@redhat.com>
3684
3685 * jcf-parse.c (give_name_to_class): Remove line that was
3686 incorrectly merged.
3687
3688 2004-10-29 Andrew Haley <aph@redhat.com>
3689
3690 * jcf-parse.c (set_source_filename): Add code to build new sfname.
3691
3692 2004-10-20 Andrew Haley <aph@redhat.com>
3693
3694 * decl.c (end_java_method): Don't expand if flag_syntax_only.
3695
3696 2004-10-26 Tom Tromey <tromey@redhat.com>
3697
3698 * verify.h (vfy_notify_verified): Removed.
3699 * verify-glue.c (vfy_notify_verified): Removed.
3700
3701 2004-10-26 Tom Tromey <tromey@redhat.com>
3702
3703 * verify-impl.c (debug_print_state): Declare `i' before code.
3704 (merge_types): Modify `t' when it is null_type.
3705
3706 2004-10-26 Tom Tromey <tromey@redhat.com>
3707
3708 * verify-impl.c (type_print): Renamed from print. Now static and
3709 takes an argument.
3710 (debug_print_state): Use type_print.
3711
3712 2004-10-25 Tom Tromey <tromey@redhat.com>
3713
3714 * expr.c (build_invokeinterface): Compute correct offset for
3715 index into interface methods.
3716
3717 2004-10-20 Tom Tromey <tromey@redhat.com>
3718
3719 * java-tree.h (verify_jvm_instructions_new): Declare.
3720
3721 * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
3722 command line.
3723
3724 * verify-impl.c (verify_instructions): Correctly handle wide
3725 types on the stack.
3726 * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
3727 (vfy_get_component_type): Strip pointer types.
3728 (vfy_find_class): Use get_type_from_signature. Strip pointer
3729 types.
3730 Include java-except.h.
3731
3732 2004-10-20 Bryce McKinlay <mckinlay@redhat.com>
3733
3734 * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
3735 vfy_push_type_t, set_variable, add_new_state, merge_into,
3736 handle_jsr_insn, branch_prepass, check_class_constant,
3737 check_wide_constant, get_one_type, compute_static_types,
3738 verify_instructions_0): Clean up C99 declarations after statements.
3739
3740 2004-10-20 Tom Tromey <tromey@redhat.com>
3741
3742 * verify-impl.c (merge_refs): Compare reference against iterator,
3743 not ref2.
3744
3745 * verify-glue.c (vfy_tag): Mask off resolved flag.
3746
3747 2004-10-19 Tom Tromey <tromey@redhat.com>
3748
3749 * verify-impl.c (verify_instructions): Call vfy_note_local_type.
3750 (init_state_with_stack): Initialize `this_type' in state.
3751 (verify_method): Use debug_print.
3752 * verify-glue.c (vfy_is_primitive): Removed debugging print.
3753 (vfy_note_stack_depth): Reverted last patch.
3754 (vfy_note_stack_type): Note pointer to Object, not Object.
3755 (vfy_note_local_type): Likewise.
3756
3757 * verify.h (vfy_note_instruction_seen): Declare.
3758 * verify-glue.c (verify_jvm_instructions_new): Set
3759 BCODE_EXCEPTION_TARGET on target instruction.
3760 (vfy_note_instruction_seen): New function.
3761 * verify-impl.c (FLAG_INSN_SEEN): New define.
3762 (verify_instructions_0): Set flag on instruction. Save state for
3763 PC=0 later.
3764 (verify_instructions): Call vfy_note_instruction_seen.
3765
3766 * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
3767 (verify_jvm_instructions_new): Call method_init_exceptions,
3768 add_handler, and handle_nested_ranges.
3769 * verify-impl.c (verify_method): Return 1 on success.
3770 (verify_instructions_0): Save the state at PC=0.
3771
3772 * verify-impl.c (init_type_from_class): Set is_resolved and
3773 ref_next on new ref_intersection.
3774 (init_type_from_string): Likewise.
3775
3776 2004-10-15 Bryce McKinlay <mckinlay@redhat.com>
3777
3778 * expr.c (expand_bytecode): Use verify_jvm_instructions_new
3779 if flag_new_verifier is set.
3780 * java-tree.h (flag_new_verifier): Declare.
3781 * lang.opt (fnew-verifier): New option.
3782 * verify-impl.c: Work around namespace pollution by undef'ing
3783 'current_class'.
3784 (struct verifier_context): Make 'bytecode' const.
3785 (verify_fail_pc): Pass -1 PC argument to vfy_fail.
3786 (types_compatible): For the BC-ABI, always consider reference types
3787 compatible.
3788 (check_class_constant): Use vfr->current_class.
3789 (check_constant): Likewise.
3790 (check_wide_constant): Likewise.
3791 (check_field_constant): Check for 'L' at start of type name.
3792 (get_one_type): Return pointer instead of type. Set type result in
3793 caller via passed type pointer.
3794 (compute_argument_types): Update to use new get_one_type arguments.
3795 (compute_return_type): Likewise.
3796 (make_verifier_context): New. Allocate and initialize 'vfr'.
3797 (free_verifier_context): New. Free 'vfr' and its contents.
3798 (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
3799 and free_verifier_context.
3800
3801 2004-10-15 Tom Tromey <tromey@redhat.com>
3802
3803 * verify-glue.c (vfy_note_local_type): Mark argument as unused.
3804 * verify.h (vfy_fail): Fixed formatting.
3805
3806 * verify-impl.c (vfr): Fixed comment formatting.
3807 (collapse_type): New function.
3808 (verify_instructions): Notify compiler about type map.
3809 * verify.h (vfy_note_stack_depth): Updated.
3810 (vfy_note_stack_type): Likewise.
3811 (vfy_note_local_type): Likewise.
3812 (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
3813 Declare.
3814 * verify-glue.c (vfy_note_stack_depth): Correctly size type
3815 state. Added `method' argument.
3816 (vfy_note_stack_type): Renamed from vfy_note_type. Added `method'
3817 argument.
3818 (vfy_note_local_type): New function.
3819 (vfy_unsuitable_type): Likewise.
3820 (vfy_return_address_type): Likewise.
3821 (vfy_null_type): Likewise.
3822
3823 * verify.h (VFY_IN_GCC): Removed.
3824 (VFY_WANT_TYPEMAP): Removed.
3825 * verify-impl.c (verify_instructions_0): Removed useless "\".
3826 (struct state) <next>: Uncomment.
3827
3828 2004-10-13 Bryce McKinlay <mckinlay@redhat.com>
3829
3830 * verify-impl.c: Formatting fixes. Reformat C++-style comments to
3831 C-style.
3832
3833 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
3834
3835 * Make-lang.in (verify.o): Re-enabled this target.
3836 * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
3837 (vfy_get_interface): Likewise.
3838 (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
3839 * verify.h (verify_jvm_instructions_new): Declare.
3840 * verify-impl.c (free_state): Temporarily comment out unused
3841 function.
3842
3843 2004-10-06 Tom Tromey <tromey@redhat.com>
3844
3845 * java-tree.h (JV_STATE_READ): New enum value.
3846
3847 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
3848
3849 * verify.h: New file.
3850
3851 2004-10-05 Bryce McKinlay <mckinlay@redhat.com>
3852
3853 * verify-impl.c, verify-glue.c, verify.h: New files.
3854 * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
3855
3856 2004-09-24 Andrew Haley <aph@redhat.com>
3857
3858 * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
3859 for a slot if it's of pointer type.
3860
3861 2004-09-14 Tom Tromey <tromey@redhat.com>
3862
3863 * class.c (make_class_data): Correctly initialize "state" field.
3864 Initialize "engine" field.
3865 * decl.c (java_init_decl_processing): Add "engine" field.
3866
3867 2004-09-10 Andrew Haley <aph@redhat.com>
3868
3869 PR java/12760
3870 * expr.c (build_invokeinterface): Use fast method for interface
3871 dispatch.
3872 * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
3873 JTI_ITABLE_PTR_TYPE.
3874 (struct lang_type): Add itable_methods, itable_decl, itable_syms_decl.
3875 (emit_symbol_table): Add new arg, element_size.
3876 * decl.c (java_init_decl_processing): Initialize Class.itable.
3877 * class.c (GEN_TABLE): New macro.
3878 (gen_indirect_dispatch_tables): Use it. Add itable.
3879 (make_class_data): Add new arg for emit_symbol_table().
3880 Emit itable.
3881 (add_miranda_methods): Make sure search_class has been parsed.
3882 (emit_symbol_table): Add new arg, element_size.
3883
3884 2004-09-06 Andrew Haley <aph@redhat.com>
3885
3886 * verify.c (merge_types): Return Object for all merges of
3887 interfaces.
3888 * expr.c (add_type_assertion): Don't generate assertions when
3889 source type is array of Object.
3890
3891 2004-09-03 Andrew Haley <aph@redhat.com>
3892
3893 * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
3894
3895 * lang.c (java_post_options): Force flag_verify_invocations if
3896 we're not using indirect dispatch.
3897
3898 * expr.c (pop_type_0): Move test for interfaces before call to
3899 can_widen_reference_to().
3900 (build_signature_for_libgcj): Remove generation of canonical array
3901 type.
3902 (add_type_assertion): Canonicalize both arrays.
3903 Don't assert that type X can be assigned to Object.
3904 Don't assert that type X an be assigned to type X.
3905 Don't assert that Object can be assigned to type X.
3906 (can_widen_reference_to): Warn whenever we generate an assertion.
3907 (process_jvm_instruction): Use throwable_type_node for the type of
3908 an exception class.
3909
3910 2004-09-01 Andrew Haley <aph@redhat.com>
3911
3912 * decl.c (java_init_decl_processing): Change
3913 verify_identifier_node to "__verify".
3914 * expr.c (add_type_assertion): Use verify_identifier_node for name.
3915 * java-tree.h (verify_identifier_node): Change to "__verify".
3916
3917 * expr.c (build_signature_for_libgcj): New function.
3918 (add_type_assertion): Use it to construct signatures for
3919 source_type and target_type.
3920
3921 2004-08-27 Andrew Haley <aph@redhat.com>
3922
3923 * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
3924 (verify_identifier_node): New.
3925 (TYPE_VERIFY_METHOD): New.
3926 (struct type_assertion): New type.
3927 * expr.c (type_assertion_eq): New function.
3928 (type_assertion_hash): New function.
3929 (add_type_assertion): New function.
3930 (can_widen_reference_to): Call add_type_assertion().
3931 * decl.c (java_init_decl_processing): Add verify_identifier_node.
3932 * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
3933 (finish_class): Output TYPE_VERIFY_METHOD (type).
3934
3935 * decl.c (end_java_method): Nullify unused fields.
3936
3937 2004-08-17 Andrew Haley <aph@redhat.com>
3938
3939 * verify.c (defer_merging): Quieten.
3940 * jcf-parse.c (load_class): Only try to open a class file if it's
3941 java.lang.Object or if it's part of the current compilation.
3942 Check that the class we just tried to load is the class we just
3943 loaded. Quieten.
3944 (java_parse_file): Set flag_verify_invocations off if we're
3945 compiling from .class.
3946 (parse_zip_file_entries): Abort if we try to read a dummy class.
3947 * expr.c (can_widen_reference_to): Quieten.
3948 (build_invokevirtual): Abort if we try to invokevirtual an
3949 interface.
3950 (expand_invoke): Don't build a non-interface call to an interface.
3951 (build_instanceof): Don't do premature optimization if
3952 flag_verify_invocations is not set.
3953 * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
3954 from superclass.
3955 (build_static_field_ref): Add correct type conversion for
3956 field_address.
3957 (add_miranda_methods): Disable generation of Miranda methods for
3958 dummy classes.
3959 (layout_class_method): Don't complain about non-static method
3960 overrides static method with dummy classes.
3961
3962 2004-08-13 Tom Tromey <tromey@redhat.com>
3963
3964 * class.c (build_static_field_ref): Re-enable atable lookups for
3965 static fields.
3966
3967 * parse.y (strip_out_static_field_access_decl): Indentation fix.
3968
3969 2004-08-11 Tom Tromey <tromey@redhat.com>
3970
3971 * gcj.texi (libgcj Runtime Properties): Document new properties.
3972
3973 2004-08-06 Andrew Haley <aph@redhat.com>
3974
3975 * jcf-parse.c (load_class): Check that we really have loaded the
3976 class we're looking for.
3977
3978 2004-07-19 Andrew Haley <aph@redhat.com>
3979
3980 * verify.c (verify_jvm_instructions): Comment change only.
3981
3982 * typeck.c (build_java_array_type): Add size field to array name.
3983
3984 * java-tree.h (LOCAL_SLOT_P): New.
3985 (update_aliases): Add PC argument.
3986 (pushdecl_function_level): New function.
3987
3988 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
3989 MODIFY_EXPR, and SAVE_EXPR.
3990 (java_gimplify_modify_expr): New function.
3991
3992 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
3993 (expand_iinc): Pass PC to update_aliases().
3994 (STORE_INTERNAL): Likewise.
3995 (process_jvm_instruction): Likewise.
3996
3997 * decl.c (base_decl_map): New variable.
3998 (uniq): New variable.
3999 (update_aliases): Rewrite with more thorough checking.
4000 (debug_variable_p): New function.
4001 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
4002 (check_local_named_variable): Delete whole function.
4003 (initialize_local_variable): New function.
4004 (check_local_unnamed_variable): Add checks and comments.
4005 (find_local_variable): Rewrite.
4006 (java_replace_reference): New function.
4007 (function_binding_level): New variable.
4008 (pushdecl_function_level): New function.
4009 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
4010 (maybe_pushlevels): Call pushdecl() on each of the new decls.
4011 (start_java_method): Reset uniq. Create base_decl_map. Set
4012 function_binding_level.
4013 (end_java_method): Null unused fields to save memory.
4014
4015 2004-06-29 Andrew Haley <aph@redhat.com>
4016
4017 * except.c (expand_start_java_handler): Push a new binding level.
4018 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
4019 register_exception_range() to register where we'll do it.
4020 (expand_end_java_handler): Remove old bogus code. Replace with
4021 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
4022 the top of the expression we're curently building.
4023 (maybe_end_try): Delete.
4024 * decl.c (binding_level.exception_range): New field.
4025 (clear_binding_level): Add field exception_range. Reformat.
4026 (poplevel): Call expand_end_java_handler().
4027 (poplevel): Call java_add_stmt only if functionbody is false.
4028 (maybe_poplevels): Don't call maybe_end_try() from here.
4029 (end_java_method): Clear no longer used trees in function decl.
4030 (register_exception_range): New function.
4031 * java-tree.h (register_exception_range, struct eh_range): Declare.
4032
4033 2004-06-22 Andrew Haley <aph@redhat.com>
4034
4035 * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
4036 the otable.
4037 * check-init.c (get_variable_decl): Teach check-init about
4038 FIELD_DECLs addressed via the otable.
4039 * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
4040 CLASS_PARSED_P.
4041
4042 2004-05-28 Andrew Haley <aph@redhat.com>
4043
4044 * jcf-parse.c (load_class): Don't try to read a class that we've
4045 already read.
4046
4047 * expr.c (build_invokeinterface): Use the old-fashioned way of
4048 doing indirect dispatch: look up interfaces by name.
4049 * java-tree.h (enum java_tree_index): Add
4050 JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
4051 * decl.c (java_init_decl_processing): Add
4052 soft_lookupinterfacemethodbyname_node.
4053
4054 * gjavah.c (print_method_info): Final methods have vtable entries,
4055 so gjavah needs to output them.
4056 * class.c (layout_class_method): Generate vtable entries for final
4057 methods.
4058 * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
4059 dispatch, even if a method is final.
4060
4061 2004-05-25 Andrew Haley <aph@redhat.com>
4062
4063 * class.c (build_symbol_entry): Convert the names of constructors
4064 to init_identifier_node when generating an entry for the indirect
4065 dispatch table.
4066
4067 * expr.c (build_known_method_ref): Generate indirect calls for
4068 all methods marked DECL_EXTERNAL or TREE_PUBLIC.
4069
4070 2004-05-24 Andrew Haley <aph@redhat.com>
4071
4072 * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
4073 atable element is of the right type.
4074
4075 * class.c (build_static_field_ref): Cast pointer to correct type
4076 for field.
4077
4078 2004-04-20 Bryce McKinlay <mckinlay@redhat.com>
4079
4080 * Merged with HEAD as of 20040514. Diff against
4081 gcj-abi-2-merge-20040514.
4082
4083 2004-04-16 Andrew Haley <aph@redhat.com>
4084
4085 * verify.c (check_pending_block): Disable subroutine checks.
4086 (defer_merging): New function.
4087 (merge_types): If types are dummy, use defer_merging to combine them.
4088 (verify_jvm_instructions): If invocation is invokeinterface and
4089 target is dummy, assume target really is an interface.
4090
4091 * parse.y (patch_invoke): Break out call to java_create_object.
4092
4093 * lang.c (flag_verify_invocations): New.
4094
4095 * jcf-parse.c (load_class): If we've already failed to load a
4096 class, don't try again.
4097 (load_class): If we can't find a .class file, don't fail, but emit
4098 a warning.
4099 (parse_class_file): Don't act on dummy methods.
4100
4101 * java-tree.h (flag_verify_invocations): New.
4102 (TYPE_DUMMY): New.
4103 (lang_type.dummy_class): New field.
4104 (java_create_object): New function.
4105 (METHOD_DUMMY): New.
4106
4107 * expr.c (build_field_ref): Widen field offset.
4108 (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
4109 that each of its elements is compatible with the one we're
4110 popping.
4111 (pop_type_0): Issue a warning to say that we need to generate a
4112 runtime check.
4113 (java_create_object): New function.
4114 (build_field_ref): Only generate hard refs if we're not using
4115 indirect dispatch.
4116 (expand_java_field_op): If we're using !verify_invocations and we
4117 see a missing field, generate a decl for it.
4118
4119 (expand_invoke): If a class doesn't have the method we seek and
4120 we're using !flag_verify_invocations, generate a decl for the
4121 method now.
4122
4123 (build_known_method_ref): Always use indirect dispatch via the
4124 atable for static methods.
4125
4126 (expand_java_NEW): Break out object creation into new function,
4127 java_create_object.
4128
4129 (can_widen_reference_to): Issue a warning to say that we need to
4130 generate a runtime check.
4131
4132 * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
4133 (make_method_value): Also use index for interfaces.
4134 (make_class_data): Skip dummy field for inherited data.
4135 Don't build method array for dummy methods.
4136 Set size_in_byte to -1 when using inirect dispatch
4137 Don't build a hard class ref if we don't have a hard ref to our
4138 superclass, or if we're using inirect dispatch.
4139 Null out dispatch tables.
4140
4141 (layout_class_method): Don't complain about non-static method
4142 overrides static method is method is artificial.
4143
4144 (build_static_field_ref): Disable atable references to static
4145 fields for the time being.
4146
4147 (layout_class_methods): Check for CLASS_INTERFACE as
4148 well as CLASS_ABSTRACT.
4149
4150 2004-11-24 Steven Bosscher <stevenb@suse.de>
4151
4152 * class.c (make_class_data): Don't check flag_inline_functions.
4153 * lang.c (flag_really_inline): Remove unused flag.
4154 (java_handle_option): Don't set it here. Remove special handling
4155 of flag_inline_functions for Java.
4156 (java_init): Don't set flag_inline_trees here. Already done...
4157 (java_post_options): ...here. Don't clear flag_inline_functions.
4158
4159 2004-11-24 Steven Bosscher <stevenb@suse.de>
4160
4161 * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
4162 (java_gimplify_exit_block_expr): New function.
4163 (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
4164 LABELED_BLOCK_EXPR.
4165 * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
4166 (EXIT_BLOCK_EXPR): Likewise.
4167 * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
4168 (LABELED_BLOCK_BODY): Likewise.
4169 (EXIT_BLOCK_LABELED_BLOCK): Likewise.
4170 * jcf-write.c (generate_bytecode_insns): Don't handle the unused
4171 EXIT_BLOCK_RETURN operand. Use EXIT_BLOCK_LABELED_BLOCK instead of
4172 TREE_OPERAND.
4173 * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
4174 (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
4175 EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. Don't handle the
4176 second operand of EXIT_BLOCK_EXPR.
4177 * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
4178 TREE_OPERAND.
4179 (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
4180
4181 2004-11-23 Ben Elliston <bje@au.ibm.com>
4182
4183 * xref.h (xref_flag_value): Remove.
4184 (xref_set_data, xref_get_data): Likewise.
4185 (xref_set_current_fp): Likewise.
4186 (XREF_NONE): Likewise.
4187 (XREF_GET_DATA): Likewise.
4188 * xref.c (xref_flag_value): Remove.
4189 (xref_set_data, xref_get_data): Likewise.
4190 (xref_set_current_fp): Likewise.
4191
4192 2004-11-23 Ben Elliston <bje@au.ibm.com>
4193
4194 * gjavah.c (output_directory): Make static.
4195 (temp_directory): Likewise.
4196
4197 2004-11-15 Tom Tromey <tromey@redhat.com>
4198
4199 * decl.c (instn_ptr_type_node): Removed.
4200 (lineNumbers_ptr_type_node): Removed.
4201 (jint_type): Removed.
4202 (jint_ptr_type): Removed.
4203
4204 2004-11-09 Andrew Pinski <pinskia@physics.uc.edu>
4205
4206 PR java/15576
4207 * check-init.c (check_init): Ignore DECL_EXPR.
4208 * expr.c (always_initialize_class_p): Reenable.
4209 (build_class_init): Use a variable to store the decl. Also use
4210 boolean_false_node instead of integer_zero_node.
4211 * parse.y (attach_init_test_initialization_flags): Add a decl_expr
4212 to the block.
4213
4214 2004-11-08 Tom Tromey <tromey@redhat.com>
4215
4216 PR java/16843:
4217 * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
4218 generating a JNI header.
4219 (print_field_info): Handle JNI headers.
4220 (jni_print_float): Likewise.
4221 (jni_print_double): Likewise.
4222
4223 2004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
4224
4225 * decl.c (end_java_method): Remove duplicated code.
4226
4227 2004-11-06 Zack Weinberg <zack@codesourcery.com>
4228 Gerald Pfeifer <gerald@pfeifer.com>
4229
4230 * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
4231 as well.
4232
4233 2004-11-02 Bryce McKinlay <mckinlay@redhat.com>
4234
4235 PR java/17265
4236 * class.c: Reinstate 2004-08-18 patch.
4237 (make_local_function_alias): Don't create an alias for extern (native)
4238 functions.
4239
4240 2004-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
4241
4242 PR java/17265
4243 * class.c (make_local_function_alias): Revert 2004-08-18 change.
4244 (make_method_value): Likewise.
4245
4246 2004-10-21 Andrew Haley <aph@redhat.com>
4247
4248 PR java/18091:
4249 * jcf-parse.c (set_source_filename): Add code to build new sfname.
4250
4251 2004-10-20 Andrew Haley <aph@redhat.com>
4252
4253 * decl.c (end_java_method): Don't expand if flag_syntax_only.
4254 Remove duplicated code block.
4255
4256 2004-10-18 Steven Bosscher <stevenb@suse.de>
4257
4258 * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
4259 New rules to work around old Bison warnings.
4260
4261 2004-10-17 Steven Bosscher <stevenb@suse.de>
4262
4263 * class.c (ident_subst): Always alloca buffer.
4264 * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
4265 opcode after including javaop.def.
4266 * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
4267 conditional expression that exits, to avoid warnings.
4268 * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
4269 a user of an extension.
4270 * win32-host.c: Move check down to have non-empty file when
4271 WIN32 is not defined.
4272
4273 * Make-lang.in (java-warn): Add STRICT_WARN.
4274 (java/jcf-io.o-warn): Don't have Werror for this file.
4275 * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
4276
4277 2004-10-16 Hans-Peter Nilsson <hp@bitrange.com>
4278
4279 * expr.c (expr_add_location): Move declaration to before all
4280 statements.
4281 * parse.y (java_expand_classes): Ditto.
4282 * lex.c (java_peek_unicode): Ditto.
4283
4284 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
4285
4286 * check-init.c: Use %<, %> and %q for quoting in diagnostics,
4287 if possible, else convert `foo' to 'foo'.
4288 * class.c: Likewise.
4289 * decl.c: Likewise.
4290 * expr.c: Likewise.
4291 * jcf-io.c: Likewise.
4292 * jcf-parse.c: Likewise.
4293 * lang.c: Likewise.
4294 * lex.c: Likewise.
4295 * parse.h: Likewise.
4296
4297 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
4298
4299 * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
4300 rename parameter 'msg' to 'msgid' in function declaration.
4301 (issue_warning_error_from_context): Likewise.
4302 (yyerror): Rename parameter 'msg' to 'msgid'.
4303 (all over): Use new quoting style for diagnostics.
4304
4305 2004-10-15 Kazu Hirata <kazu@cs.umass.edu>
4306
4307 * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
4308 jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
4309 Update copyright.
4310
4311 2004-10-14 Matt Austern <austern@apple.com>
4312
4313 * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
4314 pointer_set_t* now.
4315
4316 2004-10-13 Tom Tromey <tromey@redhat.com>
4317
4318 PR java/15578:
4319 * lang.opt (--extdirs): Document.
4320 * jvspec.c (lang_specific_driver): Recognize -encoding and
4321 -extdirs.
4322
4323 2004-10-06 Ulrich Weigand <uweigand@de.ibm.com>
4324
4325 * parse.y (issue_warning_error_from_context): Use va_list *
4326 instead of va_list parameter.
4327 (parse_error_context): Update call.
4328 (parse_warning_context): Likewise.
4329
4330 2004-10-05 Zack Weinberg <zack@codesourcery.com>
4331
4332 * parse.y, parse-scan.y: Add list of diagnostic messages to
4333 insulate translation template from version of yacc/bison used
4334 to compile the grammar.
4335
4336 2004-10-05 Ranjit Mathew <rmathew@hotmail.com>
4337
4338 Prepare for %q, %< and %> in diagnostic message strings.
4339 * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
4340 Name second parameter 'msgid'.
4341 * parse.y: Additionally include pretty-print.h and diagnostic.h.
4342 (issue_warning_error_from_context): Use pretty-printer functions
4343 instead of vsprintf for constructing formatted messages. Rename
4344 parameter 'msg' to 'msgid'.
4345 (parse_error_context): Rename parameter 'msg' to 'msgid'.
4346 (parse_warning_context): Likewise.
4347
4348 2004-10-05 Andrew Haley <aph@redhat.com>
4349
4350 PR java/17779
4351 * jcf-parse.c (parse_zip_file_entries): If a class has a
4352 superclass and a TYPE_SIZE of zero, lay it out.
4353
4354 2004-09-30 Andrew Haley <aph@redhat.com>
4355
4356 PR java/17733
4357 * jcf-parse.c (compute_class_name): Rewrite.
4358
4359 2004-10-01 Jan Hubicka <jh@suse.cz>
4360
4361 * java.c (java_expand_body): Update call of tree_rest_of_compilation.
4362
4363 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
4364
4365 * lex.c: Fix a comment typo.
4366
4367 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
4368
4369 * java-tree.h: Fix a comment typo.
4370
4371 2004-09-30 Per Bothner <per@bothner.com>
4372
4373 Simplify lexer. Implement --enable-mapped-location support.
4374 * jcf-parse.c (parse_class_file): Use linemap_line_start.
4375 (parse_source_file_1): Pass filename as extra parameter, so we can call
4376 linemap_add and set input_location here, rather than in both callers.
4377 (read_class): Pass copied filename to parse_source_file_1.
4378 Don't initialize wfl_operator - only needed for source compilation.
4379 (read_class, jcf_parse): Call linemap_add with LC_LEAVE.
4380 * lex.h: Remove a bunch of debugging macros.
4381 * lex.h (struct_java_line, struct java_error): Remove types.
4382 (JAVA_COLUMN_DELTA): Remove - use java_lexer.next_colums instead.
4383 (struct java_lc_s): Remove prev_col field.
4384 (struct java_lexer): New fields next_unicode, next_columns, and
4385 avail_unicode. New position field, and maybe token_start field.
4386 Don't need hit_eof field - use next_unicode == -1 instead.
4387 (JAVA_INTEGERAL_RANGE_ERROR): Rename to JAVA_RANGE_ERROR.
4388 (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR): Update accordingly.
4389 * parse.h: Various changes for USE_MAPPED_LOCATION.
4390 (EXPR_WFL_EMIT_LINE_NOTE): XXX
4391 (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
4392 (struct parser_ctxt): New file_start_location field.
4393 Remove p_line, c_line fields since we no longer save lines.
4394 Remove elc, lineno, and current_jcf fields - no longer used.
4395 * parse.y: Updates for USE_MAPPED_LOCATION and new lexer.
4396 Don't use EXPR_WFL_ADD_COL since that isn't trivial with
4397 source_location and is probably not needed anymore anyway.
4398 Use new expr_add_Location function.
4399 (SET_EXPR_LOCATION_FROM_TOKEN): New convenience macro.
4400 (java_pop_parser_context): Minor cleanup.
4401 (java_parser_context_save_global, java_parser_context_restore_global,
4402 java_pop_parser_context): Save/restore input_location as a unit.
4403 (issue_warning_error_from_context): If USE_MAPPED_LOCATION take
4404 a source_location instead of a wfl context node.
4405 (check_class_interface_creation): input_filename is not addressable.
4406 (create_artificial_method): Calling java_parser_context_save_global
4407 and java_parser_context_restore_global is overkill. Instead,
4408 temporarily set input_location from class decl.
4409 (java_layout_seen_class_methods): Set input_location from method decl.
4410 (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
4411 (finish_loop_body): Likewise.
4412 * lex.c: Updates for USE_MAPPED_LOCATION. Use build_unknwon_wfl.
4413 (java_sprint_unicode): Take a character, not index in line.
4414 (java_sneak_uncode): Replaced by java_peek_unicode.
4415 (java_unget_unicode): No longer used.
4416 (java_allocate_new_line. java_store_unicode): Removed, since we
4417 no longer remember "lines".
4418 (java_new_lexer): Update for new data structures.
4419 (java_read_char): Move unget_value checking to java_read_unicode.
4420 (java_get_unicode, java_peek_unicode, java_next_unicode): New more
4421 efficient functions that are used directly when lexing.
4422 (java_read_unicode_collapsing_terminators): No longer needed.
4423 (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
4424 Re-organize to use java_peek_unicode to avoid java_unget_unicode.
4425 (java_parse_escape_sequence): Rewrite to be simpler / more efficient.
4426 (do_java_lex): Lots of movings around to avoid java_unget_unicode,
4427 combine switch branches, and test for common token kinds earlier.
4428 (java_lex_error): Rewrite.
4429 * jv-scan.c (expand_location): New function, copied from tree.c.
4430 (main): Set ctxp->filename instead of setting input_filename directly.
4431
4432 2004-09-30 Per Bothner <per@bothner.com>
4433
4434 More cleanup for --enable-mapped-location.
4435 * class.c (push_class): If USE_MAPPED_LOCATION don't set
4436 input_location here. Instead do it in give_name_to_class.
4437 (build_class_ref): Set DECL_ARTIFICIAL, for the sake of dwarf2out.
4438 * expr.c (expand_byte_code): Call linemap_line_start.
4439 * expr.c (build_expr_wfl): If USE_MAPPED_LOCATION, change final
4440 parameters to a source_location. Don't need EXPR_WFL_FILENAME_NODE.
4441 (expr_add_location): New function, if USE_MAPPED_LOCATION.
4442 * class.c (maybe_layout_super_class): Adjust build_expr_wfl call
4443 to USE_MAPPED_LOCATION case.
4444
4445 * java-tree.h (JAVA_FILE_P, ZIP_FILE_P): Remove unused macros.
4446 * jcf-parse.c (java_parse_file): Don't set input_filename.
4447 Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
4448 Create a list of TRANSLATION_UNIT_DECL.
4449 (current_file_list): Is now a TRANSLATION_UNIT_DECL chain. The
4450 reason is so we can set a DECL_SOURCE_LOCATION for each file.
4451 (java_parse_file): Don't set unused ZIP_FILE_P, JAVA_FILE_P..
4452 Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
4453 (file_start_location): New static.
4454 (set_source_filename): Avoid extra access to input_filename macro.
4455 Concatenate new name with class's package prefix.
4456 (set_source_filename, give_name_to_class): Update.
4457 (give_name_to_class): Set class's "line 0" input_location here.
4458 (parse_class_file): Set input_location as a unit.
4459
4460 * jcf-parse.c (load_class): Sanity test if missing inner class file.
4461
4462 2004-09-29 Per Bothner <per@bothner.com>
4463
4464 * java-tree.h: Redefine some macros and add some declaration
4465 to handle the USE_MAPPED_LOCATION case.
4466 * parse.h (EXPR_WFL_QUALIFICATION): Use operand 1, not 2.
4467 * java-tree.h (EXPR_WFL_FILENAME_NODE): Use operand 2, not 1.
4468 * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
4469 USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
4470
4471 * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
4472 * decl.c (finish_method, java_add_stmt): Likewise.
4473 * java-gimplify.c (java-gimplify.c): Likewise.
4474 * jcf-write.c (generate_bytecode_insns): Likewise.
4475 * lang.c (java_post_options): Likewise - call linemap_add.
4476
4477 2004-09-29 Andrew Haley <aph@redhat.com>
4478
4479 PR java/17007
4480 * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
4481 result of TRUNC_MOD_EXPR.
4482 (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
4483 * decl.c (java_init_decl_processing): Mark
4484 soft_lookupinterfacemethod_node and soft_instanceof_node pure.
4485
4486 2004-09-28 Tom Tromey <tromey@redhat.com>
4487
4488 PR java/15710:
4489 * class.c (add_miranda_methods): Load superinterface if not
4490 already loaded.
4491
4492 2004-09-28 Andrew Haley <aph@redhat.com>
4493
4494 PR java/17586
4495 * jcf-parse.c (load_class): Don't try to read a class that we've
4496 already read.
4497
4498 2004-09-28 Andrew Haley <aph@redhat.com>
4499
4500 * jcf-parse.c (load_class): Back out previous broken patch.
4501
4502 2004-09-28 Andrew Haley <aph@redhat.com>
4503
4504 PR java/17586
4505 * jcf-parse.c (load_class): Don't try to read a class that we've
4506 already read.
4507 Check that we really did read the right class.
4508
4509 2004-09-25 Tom Tromey <tromey@redhat.com>
4510
4511 PR java/17500:
4512 * parse.y (create_artificial_method): Use add_method_1.
4513
4514 2004-09-25 Kazu Hirata <kazu@cs.umass.edu>
4515
4516 * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
4517 comment typos.
4518 * gcj.texi: Fix typos.
4519
4520 2004-09-24 Tom Tromey <tromey@redhat.com>
4521
4522 PR java/15656:
4523 * parse.y (class_instance_creation_expression): Set `$$' to NULL
4524 in error parts of rule.
4525 (unary_expression): Don't call error_if_numeric_overflow when $1
4526 is NULL.
4527
4528 2004-09-24 Tom Tromey <tromey@redhat.com>
4529
4530 PR java/16789:
4531 * parse.y (resolve_qualified_expression_name): Set
4532 CAN_COMPLETE_NORMALLY on first call when chaining static calls.
4533 * expr.c (force_evaluation_order): Check for empty argument list
4534 after stripping COMPOUND_EXPR.
4535
4536 2004-09-23 Andrew Haley <aph@redhat.com>
4537
4538 PR java/16927:
4539 * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
4540 COND_EXPRs.
4541
4542 2004-09-23 Tom Tromey <tromey@redhat.com>
4543
4544 PR java/17329:
4545 * java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case
4546 where operand is null.
4547
4548 2004-09-23 Tom Tromey <tromey@redhat.com>
4549
4550 PR java/17380:
4551 * parse.y (not_accessible_p): Allow access to protected members
4552 even when class is not static.
4553
4554 2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
4555
4556 * Make-lang.in: Revert the gcc-none.o change.
4557
4558 2004-09-22 Nathan Sidwell <nathan@codesourcery.com>
4559
4560 * parse.y (patch_anonymous_class): VEC_space returns true if there
4561 is space.
4562
4563 2004-09-21 Matt Austern <austern@apple.com>
4564
4565 Fix bootstrap.
4566 * gjavah.c (free_method_name_list): Fix function definition so
4567 it's a proper C prototype.
4568
4569 2004-09-21 Tom Tromey <tromey@redhat.com>
4570
4571 PR java/17575:
4572 * gjavah.c (free_method_name_list): New method.
4573 (main): Call it.
4574
4575 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
4576 Zack Weinberg <zack@codesourcery.com>
4577
4578 * java-tree.def: Use tree_code_class enumeration constants
4579 instead of code letters.
4580 * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
4581 new tree-class enumeration constants.
4582
4583 2004-09-13 Tom Tromey <tromey@redhat.com>
4584
4585 PR java/17216:
4586 * class.c (layout_class_method): Put synthetic methods into the
4587 vtable.
4588
4589 2004-09-11 Andrew Pinski <apinski@apple.com>
4590
4591 * Make-lang.in (java/ggc-none.c): Change dependency
4592 for ggc.h into $(GGC_H).
4593
4594 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
4595
4596 * Make-lang.in (java/win32-host.o): Add dependency on
4597 coretypes.h.
4598 * win32-host.c: Add includes for coretypes.h, jcf.h
4599
4600 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
4601
4602 * Make-lang.in (GCJH_OBJS): Change dependency from
4603 ggc-none.o to java/ggc-none.o
4604 (JCFDUMP_OBJS): Likewise.
4605 (java/ggc-none.o): New target.
4606
4607 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
4608
4609 * boehm.c (get_boehm_type_descriptor): Adjust build_int_cst calls.
4610 * class.c (build_utf8_ref, build_static_field_ref,
4611 make_field_value, make_method_value, get_dispatch_table,
4612 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
4613 * constants.c (get_tag_node, build_ref_from_constant_pool,
4614 build_constants_constructor): Likewise.
4615 * decl.c (java_init_decl_processing): Likewise.
4616 * expr.c (build_java_array_length_access, build_newarray,
4617 expand_java_multianewarray, expand_java_pushc, expand_iinc,
4618 build_java_binop, build_field_ref, expand_java_add_case,
4619 expand_java_call, build_known_method_ref, build_invokevirtual,
4620 build_invokeinterface, build_jni_stub): Likewise.
4621 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
4622 * jcf-parse.c (get_constant): Likewise.
4623 * lex.c (do_java_lex): Likewise.
4624 * parse.y (patch_binop, patch_unaryop, patch_cast,
4625 build_newarray_node, patch_newarray): Likewise.
4626 * resource.c (compile_resource_data): Likewise.
4627 * typeck.c (build_prim_array_type): Likewise.
4628
4629 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
4630
4631 * decl.c (java_init_decl_processing): Adjust
4632 initialize_sizetypes call.
4633
4634 2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
4635
4636 * jv-scan.c (fancy_abort): Add.
4637
4638 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
4639
4640 * expr.c (build_java_arrayaccess): Use convert to change
4641 len's type.
4642
4643 2004-08-19 Bryce McKinlay <mckinlay@redhat.com>
4644
4645 * class.c (make_local_function_alias): Allocate extra space for 'L'
4646 in name buffer. Reported by Thomas Neumann.
4647
4648 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
4649
4650 * parse.h (JAVA_RADIX10_FLAG): Rename to ...
4651 (JAVA_NOT_RADIX10_FLAG): ... here. Invert meaning.
4652 * lex.c (do_java_lex): Adjust.
4653 (error_if_numeric_overflow): Likewise.
4654
4655 2004-08-18 Andrew Pinski <apinski@apple.com>
4656
4657 * class.c (make_local_function_alias): Only make a new decl if we
4658 support alias attribute on all decls.
4659
4660 2004-08-18 Bryce McKinlay <mckinlay@redhat.com>
4661
4662 * class.c (make_local_function_alias): New function. Create local
4663 alias for public method DECL.
4664 (make_method_value): Use make_local_function_alias.
4665 * parse.y (craft_constructor): Don't special-case anonymous classes.
4666 Always set ctor_name to init_identifier_node.
4667 (lookup_method_invoke): Call layout_class_method when creating
4668 anonymous class constructor.
4669
4670 2004-08-18 Richard Henderson <rth@redhat.com>
4671
4672 * java-gimplify.c (java_gimplify_expr): Move '2' handling into
4673 default case. Treat '<' similarly. Update for
4674 is_gimple_formal_tmp_var name change.
4675
4676 2004-08-17 Andrew Haley <aph@redhat.com>
4677
4678 * lang.c (lang_printable_name): Obey verbose flag.
4679 * parse.y (constructor_circularity_msg): Set VERBOSE arg for
4680 lang_printable_name().
4681 (verify_constructor_circularity, get_printable_method_name,
4682 check_abstract_method_definitions, java_check_regular_methods,
4683 java_check_abstract_methods, check_inner_class_access,
4684 fix_constructors, patch_method_invocation, patch_return):
4685 Likewise.
4686 * expr.c (pop_type_0): Likewise.
4687
4688 * java-tree.h (lang_printable_name_wls): Delete.
4689
4690 2004-08-16 Tom Tromey <tromey@redhat.com>
4691
4692 PR java/8473:
4693 * parse.y (primary): Changed for initialized and uninitialized
4694 array creations.
4695 (array_access): Handle array_creation_initialized.
4696 (array_creation_expression): Split into
4697 array_creation_initialized and array_creation_uninitialized.
4698
4699 2004-08-16 Andrew Haley <aph@redhat.com>
4700
4701 * jcf-write.c (find_constant_index): Canonicalize NaNs when
4702 generating bytecode.
4703
4704 2004-08-16 Elliot Lee <sopwith@redhat.com>
4705
4706 PR java/9677
4707 * jcf-parse.c (java_parse_file): Handle filenames with embedded
4708 spaces, and quoted filelists.
4709
4710 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
4711
4712 * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
4713 * class.c (build_utf8_ref, build_static_field_ref,
4714 make_field_value, make_method_value, get_dispatch_table,
4715 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
4716 * constants.c (get_tag_node, build_ref_from_constant_pool,
4717 build_constants_constructor): Likewise.
4718 * decl.c (java_init_decl_processing): Likewise.
4719 * expr.c (build_java_array_length_access, build_newarray,
4720 expand_java_multianewarray, expand_java_pushc, expand_iinc,
4721 build_java_binop, build_field_ref, expand_java_add_case,
4722 expand_java_call, build_known_method_ref, build_invokevirtual,
4723 build_invokeinterface, build_jni_stub): Likewise.
4724 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
4725 * jcf-parse.c (get_constant): Likewise.
4726 * lex.c (do_java_lex): Likewise.
4727 * parse.y (patch_binop, patch_unaryop, patch_cast,
4728 build_null_of_type, patch_newarray): Likewise.
4729 * resource.c (compile_resource_data): Likewise.
4730 * typeck.c (build_prim_array_type): Likewise.
4731
4732 2004-08-10 Bryce McKinlay <mckinlay@redhat.com>
4733
4734 * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
4735 Don't create BLOCK here or call java_gimplify_block.
4736
4737 2004-08-09 H.J. Lu <hongjiu.lu@intel.com>
4738
4739 * java-tree.h (flag_deprecated): Removed.
4740 * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
4741 * parse.y (check_deprecation): Check warn_deprecated instead of
4742 flag_deprecated.
4743
4744 2004-08-06 Kelley Cook <kcook@gcc.gnu.org>
4745
4746 * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
4747 flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
4748 flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
4749 flag_check_references, flag_extraneous_semicolon, flag_deprecated,
4750 flag_force_classes_archive_check, flag_optimize_sci,
4751 flag_indirect_dispatch): Remove explicit declarations.
4752 * lang.opt: Add implicit declare/define/assign. Remove obsolete
4753 final comment.
4754
4755 2004-08-05 Michael Chastain <mec.gnu@mindspring.com>
4756
4757 PR bootstrap/14893
4758 * Make-lang.in (java.install-man): Install from either build
4759 tree or source tree, whichever has the file first.
4760
4761 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
4762
4763 * jcf-parse.c (get_constant): Adjust force_fit_type call.
4764 * lex.h (SET_LVAL_NODE_TYPE): Remove.
4765 * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
4766 (do_java_lex): Likewise. Adjust force_fit_type call.
4767
4768 2004-08-04 Roger Sayle <roger@eyesopen.com>
4769 Andrew Haley <aph@redhat.com>
4770
4771 * typeck.c (convert_ieee_real_to_integer): Call fold on the range
4772 checking trees as they're being built.
4773 (convert): Call convert_ieee_real_to_integer if we're
4774 converting a constant, even if we're writing a class file.
4775
4776 2004-08-02 Bryce McKinlay <mckinlay@redhat.com>
4777
4778 PR java/16701
4779 * parse.y (fold_constant_for_init): Call resolve_field_access with
4780 correct current_class context.
4781
4782 2004-08-01 Roger Sayle <roger@eyesopen.com>
4783
4784 * decl.c (update_aliases, initialize_local_variable): Replace calls
4785 to build with calls to buildN.
4786 * java-gimplify.c (java_gimplify_modify_expr): Likewise.
4787 * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
4788 * parse.h (BUILD_THROW): Likewise.
4789 * parse.y (switch_expression, synchronized_statement,
4790 catch_clause_parameter, array_creation_expression,
4791 conditional_expression, make_qualified_name,
4792 resolve_qualified_expression_name, patch_method_invocation,
4793 patch_invoke, build_method_invocation, build_new_invocation,
4794 build_assignment, patch_assignment, build_binop, patch_binop,
4795 build_string_concatenation, build_incdec, patch_unaryop,
4796 patch_cast, build_array_ref, build_newarray_node, patch_newarray,
4797 patch_return, build_if_else_statement, build_labeled_block,
4798 build_new_loop, build_loop_body, build_bc_statement,
4799 build_assertion, encapsulate_with_try_catch, build_try_statement,
4800 build_try_finally_statement, patch_synchronized_statement,
4801 emit_test_initialization): Likewise, replace build with buildN.
4802
4803 2004-07-28 Eric Christopher <echristo@redhat.com>
4804
4805 * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
4806 (java_unsafe_for_reeval): Ditto.
4807
4808 2004-07-26 <hp@bitrange.com>
4809
4810 * parse.y (build_super_invocation): Adjust declaration order to
4811 avoid declaration after statement.
4812
4813 2004-07-25 Bernardo Innocenti <bernie@develer.com>
4814
4815 * decl.c: Rename all identifiers named `class' to `cl'.
4816
4817 2004-07-25 Richard Henderson <rth@redhat.com>
4818
4819 * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
4820
4821 2004-07-23 Mike Stump <mrs@apple.com>
4822
4823 * boehm.c (set_bit): Improve type safety wrt unsignedness.
4824 * gjavah.c (throwable_p, decode_signature_piece,
4825 print_full_cxx_name, print_include, add_namelet, add_class_decl,
4826 process_file): Likewise.
4827 * jcf-dump.c (main): Likewise.
4828 * jcf-io.c (read_zip_member): Likewise.
4829 * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
4830 give_name_to_class, get_class_constant): Likewise.
4831 * jcf-write.c (find_constant_wide, push_long_const,
4832 generate_classfile): Likewise.
4833 * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
4834 * parse.y (read_import_dir): Likewise.
4835 * typeck.c (parse_signature_type): Likewise.
4836 * verify.c (verify_jvm_instructions): Likewise.
4837 * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
4838
4839 2004-07-23 Thomas Fitzsimmons <fitzsim@redhat.com>
4840
4841 * Make-lang.in: Replace rmic and rmiregistry references with
4842 grmic and grmiregistry.
4843 * gcj.texi: Likewise.
4844
4845 2004-07-20 Andrew Haley <aph@redhat.com>
4846
4847 PR java/16431.
4848 * verify.c (verify_jvm_instructions): Comment change only.
4849
4850 * typeck.c (build_java_array_type): Add size field to array name.
4851
4852 * java-tree.h (LOCAL_SLOT_P): New.
4853 (update_aliases): Add PC argument.
4854 (pushdecl_function_level): New function.
4855
4856 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
4857 MODIFY_EXPR, and SAVE_EXPR.
4858 (java_gimplify_modify_expr): New function.
4859
4860 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
4861 (expand_iinc): Pass PC to update_aliases().
4862 (STORE_INTERNAL): Likewise.
4863 (process_jvm_instruction): Likewise.
4864
4865 * decl.c (base_decl_map): New variable.
4866 (uniq): New variable.
4867 (update_aliases): Rewrite with more thorough checking.
4868 (debug_variable_p): New function.
4869 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
4870 (check_local_named_variable): Delete whole function.
4871 (initialize_local_variable): New function.
4872 (check_local_unnamed_variable): Add checks and comments.
4873 (find_local_variable): Rewrite.
4874 (java_replace_reference): New function.
4875 (function_binding_level): New variable.
4876 (pushdecl_function_level): New function.
4877 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
4878 (maybe_pushlevels): Call pushdecl() on each of the new decls.
4879 (start_java_method): Reset uniq. Create base_decl_map. Set
4880 function_binding_level.
4881 (end_java_method): Null unused fields to save memory.
4882
4883 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
4884
4885 * class.c (add_interface_do): Remove.
4886 (set_super_info, interface_of_p, maybe_add_interface,
4887 add_interface, make_class_data, layout_class,
4888 add_miranda_methods): Adjust BINFO accessors and addition.
4889 * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
4890 accessors.
4891 * jcf-write.c (generate_classfile): Likewise.
4892 * parse.y (patch_anonymous_class, check_inner_circular_reference,
4893 check_circular_reference, java_complete_class,
4894 check_abstract_method_definitions,
4895 java_check_abstract_method_definitions,
4896 check_interface_throws_clauses, java_check_abstract_methods,
4897 lookup_java_interface_method2,
4898 find_applicable_accessible_methods_list): Adjust BINFO accessors
4899 and addition.
4900 * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
4901
4902 2004-07-18 Roger Sayle <roger@eyesopen.com>
4903
4904 * builtins.c (max_builtin, min_builtin,
4905 java_build_function_call_expr): Replace calls to build with buildN.
4906 * class.c (build_class_ref, build_static_field_ref,
4907 get_dispatch_table, make_class_data, layout_class_method): Likewise.
4908 * constants.c (build_ref_from_constant_pool): Likewise.
4909 * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
4910 add_stmt_to_compound): Likewise.
4911 * except.c (build_exception_object_ref, expand_end_java_handler):
4912 Likewise.
4913 * java-gimplify.c (java_gimplify_case_expr,
4914 java_gimplify_default_expr, java_gimplify_block,
4915 java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
4916 * jcf-write.c (generate_bytecode_insns): Likewise.
4917 * typeck.c (convert_ieee_real_to_integer): Likewise.
4918
4919 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
4920
4921 * java-tree.h (builtin_function): Declare.
4922
4923 2004-07-16 Steven Bosscher <stevenb@suse.de>
4924
4925 * parse.y (java_complete_expand_methods, java_expand_classes): Don't
4926 abuse restore_line_number_status.
4927
4928 2004-07-15 Frank Ch. Eigler <fche@redhat.com>
4929
4930 g++/15861
4931 * jcf-parse.c (java_emit_static_constructor): Specify default
4932 priority.
4933
4934 2004-07-13 Per Bothner <per@bothner.com>
4935
4936 * java-tree.h (all_class_filename): Remove useless macro.
4937 (enum java_tree_index): Remove JTI_ALL_CLASS_FILENAME constant.
4938 (BUILD_FILENAME_IDENTIFIER_NODE): Remove useless macro.
4939 * parse.y (java_parser_context_restore_global): Replace
4940 BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
4941 * jcf-parse.c (read_class, java_parse_file): Likewise.
4942
4943 2004-07-12 Bryce McKinlay <mckinlay@redhat.com>
4944
4945 PR java/16474
4946 gjavah.c (print_field_info): Emit constant only if field is static.
4947
4948 2004-07-11 Roger Sayle <roger@eyesopen.com>
4949
4950 * expr.c (java_truthvalue_conversion, flush_quick_stack,
4951 java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
4952 build_java_ret, build_java_throw_out_of_bounds_exception,
4953 build_java_array_length_access, java_check_reference,
4954 build_java_arrayaccess, build_java_arraystore_check, build_newarray,
4955 build_anewarray, expand_java_multianewarray, expand_java_arraystore,
4956 expand_java_arrayload, build_java_monitor, expand_java_return,
4957 expand_load_internal, expand_java_NEW, build_get_class,
4958 build_instanceof, expand_java_CHECKCAST, expand_iinc,
4959 build_java_soft_divmod, build_java_binop, build_field_ref,
4960 expand_compare, expand_java_goto, expand_java_switch,
4961 expand_java_add_case, build_class_init, build_known_method_ref,
4962 invoke_build_dtable, build_invokevirtual, build_invokeinterface,
4963 expand_invoke, build_jni_stub, expand_java_field_op,
4964 java_expand_expr, expand_byte_code, STORE_INTERNAL,
4965 force_evaluation_order, emit_init_test_initialization): Convert
4966 calls to "build" into calls to the prefered "buildN" functions.
4967
4968 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
4969
4970 * java-tree.h (set_block): Remove.
4971 * lang.c (java_clear_binding_stack): New.
4972 (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
4973 * decl.c (struct binding_level): Remove this_block.
4974 (clear_binding_level): Likewise.
4975 (poplevel): Don't handle this_block.
4976 (set_block): Remove.
4977
4978 2004-07-10 Bryce McKinlay <mckinlay@redhat.com>
4979
4980 * class.c (common_enclosing_context_p): Remove statement with no
4981 side-effects.
4982
4983 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
4984
4985 PR java/8618
4986 * parse.y (create_anonymous_class): Remove 'location' argument. Use
4987 the WFL from TYPE_NAME to get line number for the decl. Fix comment.
4988 (craft_constructor): Inherit access flags for implicit constructor
4989 from the enclosing class.
4990 (create_class): Fix comment typo.
4991 (resolve_qualified_expression_name): Pass type of qualifier to
4992 not_accessible_p, not the type in which target field was found.
4993 (not_accessible_p): Handle inner classes. Expand protected
4994 qualifier-subtype check to enclosing instances, but don't apply this
4995 check to static members. Allow protected access to inner classes
4996 of a subtype. Allow private access within common enclosing context.
4997 (build_super_invocation): Get WFL line number info from current
4998 class decl.
4999 (build_incomplete_class_ref): Update for new create_anonymous_class
5000 signature.
5001 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
5002 common_enclosing_instance_p.
5003 * class.c (common_enclosing_context_p): New. Determine if types
5004 share a common enclosing context, even across static contexts.
5005 (common_enclosing_instance_p): Renamed from
5006 common_enclosing_context_p. Determines if types share a common
5007 non-static enclosing instance.
5008 * java-tree.h (common_enclosing_instance_p): Declare.
5009 * jcf-write.c (get_method_access_flags): New. Surpress private flag
5010 for inner class constructors.
5011 (generate_classfile): Use get_method_access_flags.
5012
5013 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
5014
5015 * class.c (interface_of_p): Check for null TYPE_BINFO.
5016
5017 2004-07-09 Nathan Sidwell <nathan@codesourcery.com>
5018
5019 * class.c (make_class): Do not create binfo here.
5020 (set_super_info): Create it here.
5021 * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
5022
5023 2004-07-08 Richard Henderson <rth@redhat.com>
5024
5025 * expr.c (case_identity, get_primitive_array_vtable,
5026 java_expand_expr, emit_init_test_initialization): Remove.
5027 * java-tree.h (java_expand_expr): Remove.
5028 * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
5029
5030 2004-07-07 Per Bothner <per@bothner.com>
5031
5032 * class.c (build_static_field_ref): Add a NOP_EXPR; otherwise we
5033 get internal error due to mismatched types.
5034
5035 * gcj.texi (Invoking gij): Document new -verbose:class flag.
5036
5037 * gcj.texi (Linking): New node. Document -lgij usage.
5038
5039 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
5040
5041 * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
5042 (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
5043 * java/class.c (set_super_info, class_depth, interface_of_p,
5044 maybe_add_interface, add_interface, make_class_data,
5045 layout_class, add_miranda_methods): Adjust BINFO macros.
5046 * expr.c (can_widen_reference_to, lookup_field): Likewise.
5047 * jcf-write.c (generate_classfile): Likewise.
5048 * parse.y (patch_anonymous_class,
5049 check_inner_circular_reference, check_circular_reference,
5050 java_complete_class, check_abstract_method_definitions,
5051 java_check_abstract_method_definitions,
5052 check_interface_throws_clauses, java_check_abstract_methods,
5053 lookup_java_interface_method2,
5054 find_applicable_accessible_methods_list): Likewise.
5055 * typeck.c (find_method_in_interface): Likewise.
5056 * verify.c (merge_types): Likewise.
5057
5058 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
5059
5060 * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
5061 * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
5062
5063 2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
5064
5065 * class.c (make_class): Use make_tree_binfo.
5066 (set_super_info, add_interface_do): Likewise.
5067 * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
5068
5069 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
5070
5071 * verify.c: Correct array element access formatting thinko.
5072
5073 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
5074
5075 * verify.c: Insert a short blurb at the start referring to the JVMS.
5076 (merge_type_state): Remove redundant nested if statement.
5077 (verify_jvm_instructions): Ensure current_subr is initialised to
5078 NULL_TREE.
5079 Minor formatting fixes all over the place.
5080
5081 2004-07-02 Richard Henderson <rth@redhat.com>
5082
5083 * jcf-write.c (generate_bytecode_insns <case SAVE_EXPR>): Rewrite.
5084
5085 2004-07-01 Richard Henderson <rth@redhat.com>
5086
5087 * class.c (registerClass_libfunc): Remove.
5088 (init_class_processing): Don't set it.
5089 (emit_register_classes): Take list_p parameter. Fill it in
5090 with _Jv_RegisterClass calls.
5091 * decl.c (java_init_decl_processing): Don't call
5092 init_resource_processing.
5093 * jcf-parse.c (java_emit_static_constructor): New.
5094 (java_parse_file): Call it.
5095 * resource.c (registerResource_libfunc): Remove.
5096 (init_resource_processing): Remove.
5097 (write_resource_constructor): Take list_p parameter. Fill it in
5098 with _Jv_RegisterResource calls.
5099 * java-tree.h: Update prototypes.
5100
5101 2004-06-29 Bryce McKinlay <mckinlay@redhat.com>
5102
5103 PR java/1262
5104 * class.c (layout_class_method): Do not override package-private
5105 method if its in a different package.
5106 (split_qualified_name): Move here from parse.y. Rename from
5107 breakdown_qualified. Add comment.
5108 (in_same_package): Move here from parse.y. Add comment.
5109 * java-tree.h (break_down_qualified, in_same_package): Declare.
5110 (in_same_package): Likewise.
5111 * parse.y (breakdown_qualified, in_same_package): Moved to class.c.
5112 Callers updated.
5113
5114 2004-06-29 Andrew Haley <aph@redhat.com>
5115
5116 * except.c (expand_start_java_handler): Push a new binding level.
5117 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
5118 register_exception_range() to register where we'll do it.
5119 (expand_end_java_handler): Remove old bogus code. Replace with
5120 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
5121 the top of the expression we're curently building.
5122 (maybe_end_try): Delete.
5123 * decl.c (binding_level.exception_range): New field.
5124 (clear_binding_level): Add field exception_range. Reformat.
5125 (poplevel): Call expand_end_java_handler().
5126 (poplevel): Call java_add_stmt only if functionbody is false.
5127 (maybe_poplevels): Don't call maybe_end_try() from here.
5128 (end_java_method): Clear no longer used trees in function decl.
5129 (register_exception_range): New function.
5130 * java-tree.h (register_exception_range, struct eh_range): Declare.
5131
5132 2004-06-28 Bryce McKinlay <mckinlay@redhat.com>
5133
5134 * jcf-write.c (get_classfile_modifiers): Formatting fixes.
5135
5136 2004-06-27 Ranjit Mathew <rmathew@hotmail.com>
5137
5138 Formatting fixes.
5139 * expr.c (class_has_finalize_method): Fix method name indentation.
5140 (expand_java_call): Remove K&R style parameter declaration.
5141 (expand_invoke): Fix statement indentation.
5142 (expand_java_field_op): Likewise.
5143 * parse-scan.y: Fix typo.
5144 (reset_report): Fix method name indentation.
5145 * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
5146 line. Fix typos.
5147 * verify.c (verify_jvm_instructions): Document parameters, insert
5148 page break.
5149 * lang.c (lang_init_source): Fix method name indentation.
5150 * class.c (common_enclosing_context_p): Likewise.
5151 (emit_symbol_table): Fix parameter list indentation.
5152 * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
5153 parameter declaration.
5154 * constants.c: Fix copyright notice indentation.
5155 * typeck.c (find_method_in_superclasses): Fix parameter list
5156 indentation.
5157 (find_method_in_interfaces): Likewise.
5158 * zextract.c (makelong): Fix method name indentation.
5159
5160 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5161
5162 PR java/15715.
5163 * parse.y (create_interface): Set correct access modifiers for
5164 interfaces.
5165 * jcf-write.c (get_classfile_modifiers): New function.
5166 (generate_classfile): Use get_classfile_modifiers, not
5167 get_access_flags.
5168
5169 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5170
5171 * parse.y (register_incomplete_type): Set JDEP_ENCLOSING for "super"
5172 dependency to current parser context, not NULL_TREE, for top-level
5173 classes.
5174 (jdep_resolve_class): Enable member access check for all inner
5175 class dependencies.
5176
5177 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5178
5179 * parse.y (qualify_and_find): Pass type decl, not identifier, to
5180 load_class.
5181
5182 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5183
5184 PR java/15734
5185 * expr.c (expand_java_field_op): Ensure that target class for static
5186 field access has been loaded.
5187
5188 2004-06-26 Bryce McKinlay <mckinlay@redhat.com>
5189 Ranjit Mathew <rmathew@hotmail.com>
5190
5191 PR java/1207, java/16178
5192 * jcf-parse.c (load_class): Return immediately if passed a type decl
5193 where CLASS_FROM_SOURCE_P is set. Remove FIXME.
5194 * parse.y (do_resolve_class): Remove checks for CLASS_FROM_SOURCE_P
5195 before calling load_class.
5196 (qualify_and_find): Likewise.
5197 (find_in_imports_on_demand): Likewise.
5198 (find_applicable_accessible_methods_list): Likewise.
5199
5200 2004-06-24 Bryce McKinlay <mckinlay@redhat.com>
5201
5202 * parse.y (java_layout_seen_class_methods): Don't call load_class
5203 on class defined by source parser.
5204
5205 2004-06-23 Bryce McKinlay <mckinlay@redhat.com>
5206
5207 * parse.y (set_nested_class_simple_name_value): Removed.
5208 (java_complete_expand_class): Remove calls to
5209 set_nested_class_simple_name_value.
5210
5211 2004-06-22 Andrew Haley <aph@redhat.com>
5212 Ranjit Mathew <rmathew@hotmail.com>
5213
5214 Fixes PR java/16113.
5215 * decl.c (force_poplevels): Remove call to expand_end_bindings.
5216
5217 2004-06-22 Ranjit Mathew <rmathew@hotmail.com>
5218
5219 * parse.y (create_class): Correct diagnostic message about
5220 java.lang.Object extending anything else.
5221
5222 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5223
5224 * class.c (build_class_ref): Add new operand for COMPONENT_REF.
5225 (build_static_field_ref): Likewise and add new operands for ARRAY_REF.
5226 * constants.c (build_ref_from_constant_pool): Likewise.
5227 * expr.c (build_java_array_length_access): Likewise.
5228 (build_get_class, build_field_ref, build_known_method_ref): Likewise.
5229 (invoke_build_dtable, build_invokevirtual): Likewise.
5230 (build_invokeinterface, java_expand_expr): Likewise.
5231 (emit_init_test_initialization): Likewise.
5232 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
5233 * parse.y (make_qualifed_name, build_array_ref): Likewise.
5234
5235 2004-06-21 Andrew Haley <aph@redhat.com>
5236
5237 * java-gimplify.c (java_gimplify_block): set TREE_USED on the new
5238 block.
5239
5240 2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
5241
5242 * jcf.h (struct JCF): Change java_source, right_zip and finished
5243 to unsigned int.
5244 * lex.h (struct java_lexer): Change hit_eof, read_anything,
5245 byte_swap and use_fallback to unsigned int.
5246 * parse.h (struct _jdep): Change flag0 to unsigned int.
5247
5248 2004-06-17 Ranjit Mathew <rmathew@hotmail.com>
5249
5250 Fixes PR java/13948
5251 * parse.y (java_layout_seen_class_methods): Ensure class is loaded
5252 before trying to lay out its methods.
5253 * jcf-parse.c (read_class): Track parsed files using canonical paths
5254 obtained via lrealpath from libiberty.
5255 (java_parse_file): Likewise.
5256 (parse_source_file_1): Rename formal parameter to reflect its
5257 modified purpose. Minor formatting fix.
5258
5259 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
5260
5261 * class.c (emit_register_classes): Make the function uninlinable,
5262 do not set current_function_cannot_inline.
5263 * resource.c (write_resource_constructor): Do not reset
5264 flag_inline_functions around rest_of_compilation.
5265
5266 2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
5267
5268 PR java/15769
5269 * expr.c (java_truthvalue_conversion): Handle
5270 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
5271 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
5272 i.e. return the expression.
5273
5274 2004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca>
5275
5276 * gjavah.c: Include version.h
5277
5278 2004-05-31 Bryce McKinlay <mckinlay@redhat.com>
5279
5280 * jcf-write.c (generate_bytecode_conditional): Correct handling
5281 of unordered conditionals. Add comment.
5282
5283 2004-05-29 Ranjit Mathew <rmathew@hotmail.com>
5284 Per Bothner <per@bothner.com>
5285
5286 * java-tree.h (DECL_LOCAL_FINAL_IUD): New macro to test if a
5287 local variable was initialised upon declaration.
5288 * parse.y (declare_local_variables): Set DECL_LOCAL_FINAL_IUD if
5289 variable was final and initialised upon declaration.
5290 * check-init.c (check_final_reassigned): Give error only if a blank
5291 final is not definitely unassigned or if an initialised final is
5292 reassigned.
5293 (check_bool_init): Respect JLS2 16.1.7 requirements for boolean
5294 assignment expressions. Remove case MODIFY_EXPR, label do_default.
5295 (check_init): Perform initialised-variable-removing-optimisation
5296 only on non-final local variables.
5297
5298 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
5299
5300 * jcf-write.c (generate_bytecode_conditional): Handle binops
5301 UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
5302 and LTGT_EXPR.
5303 (generate_bytecode_insns): Likewise.
5304
5305 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
5306
5307 * check-init.c (check_init): Handle binops UNLT_EXPR, UNLE_EXPR,
5308 UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, and LTGT_EXPR.
5309
5310 2004-05-28 Bryce McKinlay <mckinlay@redhat.com>
5311
5312 * gcj.texi (Object allocation): Remove _Jv_AllocBytes.
5313 (Mixing with C++): Document JvAllocBytes and RawDataManaged.
5314
5315 2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
5316
5317 * decl.c (struct binding_level): Add GTY marker. Compile
5318 binding_depth unconditionally.
5319 (current_binding_level, free_binding_level, global_binding_level):
5320 Likewise.
5321 (clear_binding_level): Unconditionally set binding_depth.
5322 (make_binding_level): Use ggc_alloc_cleared, not xmalloc.
5323
5324 2004-05-26 Bryce McKinlay <mckinlay@redhat.com>
5325
5326 * lex.c (java_new_lexer): Set 'encoding'.
5327 (java_read_char): Improve error message for unrecognized characters.
5328 * lex.h (struct java_lexer): New field 'encoding'.
5329
5330 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
5331
5332 * Make-lang.in: Link in $(LIBCPP) instead of mkdeps.o.
5333
5334 2004-05-21 Mark Wielaard <mark@klomp.org>
5335
5336 * gjavah.c (print_stub_or_jni): Mark functions only JNIEXPORT, not
5337 extern.
5338
5339 2004-05-19 Paolo Bonzini <bonzini@gnu.org>
5340
5341 * typeck.c: Remove non-printable character 160.
5342
5343 2004-05-17 Ranjit Mathew <rmathew@hotmail.com>
5344
5345 * check-init.c: Correct minor typos.
5346
5347 2004-05-13 Diego Novillo <dnovillo@redhat.com>
5348
5349 * Make-lang.in, expr.c, java-gimplify.c: Rename
5350 tree-simple.[ch] to tree-gimple.[ch].
5351
5352 2004-05-14 Ranjit Mathew <rmathew@hotmail.com>
5353
5354 * java-gimplify.c (java_gimplify_expr): Correct minor typos.
5355
5356 2004-05-13 Diego Novillo <dnovillo@redhat.com>
5357
5358 Merge from tree-ssa-20020619-branch. See
5359 ChangeLog.tree-ssa for details.
5360
5361 * Make-lang.in, builtins.c, check-init.c, class.c,
5362 constants.c, decl.c, except.c, expr.c, java-except.h,
5363 java-tree.def, java-tree.h, jcf-parse.c, jcf-write.c,
5364 lang.c, lang.opt, parse.y, resource.c: Merged.
5365 * java-gimplify.c: New file.
5366
5367 2004-05-10 Andrew Haley <aph@redhat.com>
5368
5369 * parse.y (create_class): Set TYPE_VFIELD.
5370 * decl.c (java_init_decl_processing): Likewise.
5371
5372 * expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
5373 * class.c (make_method_value): Replace DECL_VINDEX with call to
5374 get_method_index().
5375 (get_dispatch_vector): Likewise.
5376 (layout_class_method): Likewise.
5377 Replace set of DECL_VINDEX with call to set_method_index().
5378 (set_method_index): New function.
5379 (get_method_index): New function.
5380 * java-tree.h (set_method_index): New function decl.
5381 (get_method_index): New function decl.
5382
5383 2004-05-10 Andrew Pinski <pinskia@physics.uc.edu>
5384
5385 * parse.y (check_pkg_class_access): Add new argument
5386 and use it when cl is NULL to call lookup_cl on it.
5387 (parser_check_super_interface): Do not call lookup_cl.
5388 Pass this_decl to check_pkg_class_access and NULL
5389 instead of lookup_cl.
5390 (parser_check_super): Update for change in
5391 check_pkg_class_access.
5392 (do_resolve_class): Likewise.
5393 (process_imports): Likewise.
5394 (find_in_imports_on_demand): Likewise.
5395 (resolve_qualified_expression_name): Likewise.
5396
5397 2004-05-06 Ranjit Mathew <rmathew@hotmail.com>
5398
5399 Fixes PR java/9685, PR java/15073
5400 * parse.y (accessibility_string): New method.
5401 (not_accessible_field_error): Use accessibility_string()
5402 instead of java_accstring_lookup().
5403 (resolve_qualified_expression_name): Check with
5404 check_pkg_class_access() before allowing access using
5405 qualified names.
5406 Fix comment typo.
5407 Use check_pkg_class_access() instead of not_accessible_p()
5408 for unqualified types.
5409 (not_accessible_p): Use DECL_CONTEXT (member) instead of
5410 REFERENCE for package-private access checking.
5411 (patch_method_invocation): Use accessibility_string() instead
5412 of java_accstring_lookup().
5413
5414 2004-04-30 Ranjit Mathew <rmathew@hotmail.com>
5415
5416 Fixes PR java/15133
5417 * gjavah.c (struct method_name): Add member is_native.
5418 (overloaded_jni_method_exists_p): Match candidate method only if
5419 it is native.
5420 (print_method_info): Initialise is_native flag from the method's
5421 access flags.
5422
5423 2004-04-30 Roger Sayle <roger@eyesopen.com>
5424
5425 * builtins.c (java_builtins): Add acos, asin, ceil and floor.
5426 (initialize_builtins): Likewise, define acos, asin, ceil and floor.
5427
5428 2004-04-22 Roger Sayle <roger@eyesopen.com>
5429
5430 * resource.c (write_resource_constructor): Guard call to possibly
5431 NULL targetm.asm_out.constructor with targetm.have_ctors_dtors.
5432
5433 2004-04-19 Bryce McKinlay <mckinlay@redhat.com>
5434
5435 * class.c (make_class_data): Add new field aux_info.
5436 * decl.c (java_init_decl_processing): Push type and decl for
5437 `aux_info'.
5438
5439 2004-04-15 Bryce McKinlay <mckinlay@redhat.com>
5440
5441 * expr.c (expand_java_NEW): Don't use size argument for
5442 _Jv_AllocObject calls.
5443 * parse.y (patch_invoke): Likewise.
5444
5445 2004-04-12 Bryce McKinlay <mckinlay@redhat.com>
5446
5447 * expr.c (build_invokeinterface): Remove unused variables to
5448 fix warnings.
5449
5450 2004-04-12 Bryce McKinlay <mckinlay@redhat.com>
5451
5452 * class.c (get_interface_method_index): New function. Return dispatch
5453 index for interface method.
5454 (make_method_value): For interface methods, set index field to
5455 iface dispatch index, not DECL_VINDEX.
5456 * expr.c (build_invokeinterface): Use get_interface_method_index.
5457
5458 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5459
5460 * jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.
5461
5462 2004-03-31 Andrew Haley <aph@redhat.com>
5463
5464 PR java/14104
5465 * jcf-io.c (opendir_in_zip): Tidy up error handling.
5466
5467 2004-03-30 Zack Weinberg <zack@codesourcery.com>
5468
5469 * builtins.c, expr.c, jcf.h, parse.h: Use new shorter
5470 form of GTY markers.
5471
5472 2004-03-25 Marcus Meissner <meissner@suse.de>
5473
5474 PR java/14689:
5475 * jcf-path.c (jcf_path_extdirs_arg): Add missing closedir.
5476
5477 2004-03-23 Tom Tromey <tromey@redhat.com>
5478
5479 PR java/14315:
5480 * jcf-write.c (make_class_file_name): Don't report if mkdir
5481 failed with EEXIST.
5482
5483 2004-03-23 Tom Tromey <tromey@redhat.com>
5484
5485 * gcj.texi (Extensions): Document GCJ_PROPERTIES.
5486
5487 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
5488
5489 * class.c, gjavah.c, lang.c: Fix comment typos.
5490 * gcj.texi: Fix typos.
5491
5492 2004-03-19 Per Bothner <per@bothner.com>
5493
5494 * gcj.texi (Code Generation): Document new flags and assert defaults.
5495
5496 * class.c (assume_compiled_node_struct): Rename type to
5497 class_flag_node_struct, as it is now also used for enable_assertions.
5498 Rename assume_compiled_node typedef. Rename excludep field to value.
5499 (find_assume_compiled_node): Rename function to find_class_flag_node.
5500 Minor optimization - avoid needless strlen.
5501 (add_assume_compiled): Some tweaking and optimization.
5502 Rename and generalize to add_class_flag takem an extra parameter.
5503 (add_assume_compled): New just calls add_class_flag.
5504 (add_enable_assert, enable_assertions): New functions.
5505 (enable_assert_tree): New static.
5506 * java-tree.h (add_enable_assert, enable_assertions): New declarations.
5507 * lang.opt (fenable-assertions, fenable-assertions=,
5508 fdisable-assertions, fdisable-assertions=): New options.
5509 * lang.c (java_handle_option): Handle new options.
5510 * parse.y (build_incomplete_class_ref): Handle class$ in an inner
5511 class in an interface - create helper class nested in outer interface.
5512 (build_assertion): Short-circuit if enable_assertions is false.
5513
5514 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5515
5516 * java-tree.h: Changes throughout to add checking to macros
5517 and numerous whitespace changes.
5518 (VAR_OR_FIELD_CHECK): New macro.
5519 * jcf-write.c (get_access_flags): Use FIELD_PUBLIC, METHOD_PUBLIC,
5520 FIELD_FINAL, and METHOD_FINAL instead of CLASS_PUBLIC and CLASS_FINAL.
5521
5522 2004-03-16 Per Bothner <per@bothner.com>
5523
5524 * jcf-jump.c (options): New --print-constants option.
5525 * gcj.texi (Invoking jcf-dump): Document --print-constants.
5526
5527 * jcf-dump.c (flag_print_constant_pool): Default to off.
5528 (print_constant_terse_with_index): New helper function.
5529 (various places): Check flag_print_constant_pool where missing.
5530 (main): If verbose set flag_print_constant_pool.
5531 (HANDLE_INNERCLASSES_ATTRIBUTE): Null inner class name is anonymous.
5532
5533 2004-03-15 Andrew Haley <aph@redhat.com>
5534
5535 PR java/14581
5536 * parse.y (java_complete_lhs): Check that final variable has an
5537 initializer.
5538
5539 2004-03-12 Andrew Haley <aph@redhat.com>
5540
5541 PR java/14551
5542 * typeck.c (convert): Clear TREE_OVERFLOW after an integer
5543 conversion.
5544
5545 2004-02-29 Roger Sayle <roger@eyesopen.com>
5546
5547 * jcf-parse.c (java_parse_file): Handle the case that input_filename
5548 is NULL.
5549
5550 2004-02-27 Per Bothner <per@bothner.com>
5551
5552 * parse.y (build_assertion): Re-do 02-25 change following Jeff Sturm
5553 suggestion: Use build_incomplete_class_ref.
5554 This fixes PR java/13508, java/11714.
5555
5556 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
5557
5558 * java/parse.h: Update copyright.
5559
5560 2004-02-26 Andrew Haley <aph@redhat.com>
5561
5562 PR java/14231:
5563 * parse.y (check_interface_throws_clauses): Check for
5564 !METHOD_INVISIBLE (iface_method).
5565 * class.c (layout_class_methods): Check for CLASS_INTERFACE as
5566 well as CLASS_ABSTRACT.
5567
5568 2004-02-25 Per Bothner <per@bothner.com>
5569
5570 * parse.y (build_assertion): If we're in an inner class, create the
5571 class$ helper routine in the outer class.
5572
5573 2004-02-19 Richard Henderson <rth@redhat.com>
5574
5575 * parse.y (switch_label): Use make_node for DEFAULT_EXPR.
5576
5577 2004-02-16 Geoffrey Keating <geoffk@apple.com>
5578
5579 * Make-lang.in (java.install-man): Add extra dependencies.
5580
5581 2004-02-13 Geoffrey Keating <geoffk@apple.com>
5582
5583 * Make-lang.in: Install man pages under the same names
5584 (possibly transformed) as the program they document.
5585
5586 2004-02-10 Joseph S. Myers <jsm@polyomino.org.uk>
5587
5588 * gjavah.c: Include "intl.h".
5589 (error): New function.
5590 (main): Call gcc_init_libintl.
5591 (get_field_name, throwable_p, print_c_decl, print_full_cxx_name,
5592 print_stub_or_jni, process_file, main): Use error rather than
5593 fprintf.
5594 (print_method_info, usage, help, version, main): Mark strings for
5595 translation with _. Avoid splitting up sentences. Send
5596 information messages to stdout.
5597 * jcf-dump.c: Include "intl.h".
5598 (main): Call gcc_init_libintl.
5599 (process_class, usage, help, version, main, CHECK_PC_IN_RANGE):
5600 Mark error, usage and version messages for translation with _.
5601 Avoid splitting up sentences.
5602 * jv-scan.c: Include "intl.h".
5603 (fatal_error, warning): Change parameter s to msgid. Translate
5604 messages.
5605 (main): Call gcc_init_libintl.
5606 (usage, help, version): Mark error, usage and version messages for
5607 translation with _. Avoid splitting up sentences.
5608 * jvgenmain.c: Include "intl.h".
5609 (main): Call gcc_init_libintl.
5610 (usage, main): Mark error messages for translation with _.
5611 * Make-lang.in (GCJH_OBJS, JVSCAN_OBJS, JCFDUMP_OBJS,
5612 JVGENMAIN_OBJS): Add intl.o.
5613 (java/jcf-dump.o, java/gjavah.o, java/jv-scan.o,
5614 java/jvgenmain.o): Update dependencies.
5615
5616 2004-02-08 Per Bothner <per@bothner.com>
5617
5618 * parse.y (resolve_qualified_expression_name): In case of inaccessible
5619 class don't use not_accessible_field_error, which can get confused.
5620
5621 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
5622
5623 Make-lang.in (po-generated): Delete.
5624
5625 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
5626
5627 * Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
5628 Depend on target.h.
5629 * decl.c: Include target.h.
5630 (start_java_method): Replace PROMOTE_PROTOTYPES with
5631 targetm.calls.promote_prototypes.
5632 * expr.c: Include target.h.
5633 (pop_arguments): Replace PROMOTE_PROTOTYPES with
5634 targetm.calls.promote_prototypes.
5635 * parse.y: Include target.h.
5636 (start_complete_expand_method): Replace PROMOTE_PROTOTYPES
5637 with targetm.calls.promote_prototypes.
5638
5639 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
5640
5641 * typeck.c: Update copyright.
5642
5643 2004-02-02 Tom Tromey <tromey@redhat.com>
5644
5645 * decl.c (java_init_decl_processing): Remove duplicate
5646 gnu/gcj/RawData.
5647
5648 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
5649
5650 * Make-lang.in (doc/gcj.dvi): Use $(abs_docdir).
5651
5652 2004-01-28 Andrew Pinski <pinskia@physics.uc.edu>
5653
5654 * expr.c (build_field_ref): Move variable
5655 definition up.
5656
5657 2004-01-28 Andrew Haley <aph@redhat.com>
5658
5659 * expr.c (build_field_ref): Widen field offset.
5660
5661 2004-01-27 Andrew Haley <aph@redhat.com>
5662
5663 java/13273
5664 * parse.y (check_interface_throws_clauses): Make sure class_decl
5665 has been loaded.
5666
5667 2004-01-22 Jeff Sturm <jsturm@one-point.com>
5668
5669 PR java/13733
5670 * parse.y (patch_assignment): Don't modify lhs_type for
5671 reference assignments.
5672
5673 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
5674
5675 * Make-lang.in: Replace $(docdir) with doc.
5676 (java.info, java.srcinfo, java.man, java.srcman): New rules.
5677 (java.install-man): Revamp rule.
5678
5679 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
5680
5681 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_TARGET_INSTALL_NAME,
5682 GCJH_TARGET_INSTALL_NAME): Define via a immediate $(shell)
5683 instead of deferred backquote.
5684
5685 2004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
5686
5687 * typeck.c (find_method_in_interfaces): Move variable
5688 definition up.
5689
5690 2004-01-16 Andrew Haley <aph@redhat.com>
5691
5692 PR java/13273:
5693 * typeck.c (shallow_find_method): New.
5694 (find_method_in_superclasses): New.
5695 (find_method_in_interfaces): New.
5696 (lookup_do): Rewrite.
5697 * java-tree.h (SEARCH_ONLY_INTERFACE): Delete.
5698
5699 * jcf-parse.c (read_class): Save and restore output_class.
5700 * decl.c (java_expand_body): Set output_class from fndecl.
5701
5702 2004-01-15 Michael Chastain <mec.gnu@mindspring.com>
5703
5704 * class.c (gen_indirect_dispatch_tables): Fix string length
5705 calculations.
5706
5707 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
5708
5709 * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
5710 (java.srcextra): Copy above back to source directory if requested.
5711 (po-generated): Delete reference to $(parsedir).
5712 (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
5713 Use implicit rule.
5714
5715 2004-01-14 Jan Hubicka <jh@suse.cz>
5716
5717 * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
5718 estimation.
5719
5720 2004-01-09 Mark Mitchell <mark@codesourcery.com>
5721
5722 * java-tree.h (java_expand_expr): Change prototype.
5723 * expr.c (java_expand_expr): Add alt_rtl parameter.
5724
5725 2004-01-09 Andrew Haley <aph@redhat.com>
5726
5727 PR java/12755:
5728 * parse.y (java_fix_constructors): Set output_class.
5729 (java_reorder_fields): Likewise.
5730 (java_layout_classes): Likewise.
5731 (java_expand_classes): Generate indirect dispatch tables.
5732 (java_expand_classes): Set output_class.
5733 (java_finish_classes): Likewise.
5734 * lang.c (java_init): Turn on always_initialize_class_p if we're
5735 using indirect dis[atch.
5736 (java_decl_ok_for_sibcall): Use output_class, not current_class.
5737 (java_get_callee_fndecl): Use class local atable.
5738 * jcf-parse.c
5739 (always_initialize_class_p): Decl moved to java-tree.h.
5740 (HANDLE_CLASS_INFO): Set output_class.
5741 (read_class): Likewise.
5742 (parse_class_file): Call gen_indirect_dispatch_tables.
5743 (parse_zip_file_entries): Set output_class.
5744 (java_parse_file): Set output_class. Don't emit symbol tables.
5745 * java-tree.h (output_class): New.
5746 Remove global declarations for otable, atable, and ctable.
5747 (always_initialize_class_p): moved here from decl.c.
5748 (DECL_OWNER): New.
5749 (TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
5750 TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
5751 TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
5752 (struct lang_type): Add otable_methods, otable_decl,
5753 otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
5754 ctable_decl, catch_classes, type_to_runtime_map.
5755 * expr.c (build_field_ref): Make otable, atable, and ctable class
5756 local rather than global.
5757 (build_known_method_ref): Likewise.
5758 (build_invokeinterface): Likewise.
5759 (java_expand_expr): Pass runtime type (rather than actual type) to
5760 expand_start_catch.
5761 * except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
5762 this class. Look up each class in that map to delete duplicates.
5763 (expand_end_java_handler): Pass runtime type (rather than actual
5764 type) to expand_start_catch.
5765 * decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
5766 (do_nothing): New.
5767 (java_init_decl_processing): Rearrange things. Remove global
5768 declarations of otable, atable, and ctable.
5769 (java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
5770 (java_expand_body): Set output_class.
5771 * constants.c (build_constant_data_ref): Use output_class, not
5772 current_class.
5773 (alloc_name_constant): Likewise.
5774 * class.c (gen_indirect_dispatch_tables): New.
5775 (build_class_ref): Generate hard reference to superclass, even if
5776 using indirect dispatch.
5777 (build_static_field_ref): Use class local atable.
5778 (make_class_data): Generate hard reference to superclass, even if
5779 using indirect dispatch.
5780 Generate symbolic references to interfaces when using indirect
5781 dispatch.
5782 (make_class_data): Emit otable, atable, and ctable.
5783 Make otable, atable, and ctable class local rather than global.
5784 (emit_catch_table): Make otable, atable, and ctable class local
5785 rather than global.
5786
5787 2003-12-25 Andrew Pinski <pinskia@physics.uc.edu>
5788
5789 * parse.y (catch_clause_parameter): Fix typo.
5790
5791 PR java/13404
5792 * parse.y: (catch_clause_parameter): Return early if $3, aka
5793 formal_parameter, is null.
5794
5795 2003-12-20 Kazu Hirata <kazu@cs.umass.edu>
5796
5797 * class.c: Remove uses of "register" specifier in
5798 declarations of arguments and local variables.
5799 * decl.c: Likewise.
5800 * expr.c: Likewise.
5801 * gjavah.c: Likewise.
5802 * jcf-dump.c: Likewise.
5803 * jcf-io.c: Likewise.
5804 * jcf-parse.c: Likewise.
5805 * jcf-write.c: Likewise.
5806 * keyword.h: Likewise.
5807 * parse.y: Likewise.
5808 * typeck.c: Likewise.
5809 * verify.c: Likewise.
5810
5811 2003-12-06 Kelley Cook <kcook@gcc.gnu.org>
5812
5813 * Make-lang.in (GCJ_CROSS_NAME): Delete.
5814 (java.install_common, java.install-man): Adjust for above.
5815 (java.uninstall): Likewise.
5816
5817 2003-12-03 Michael Koch <konqueror@gmx.de>
5818
5819 * class.c (make_class_data):
5820 Push field value to 'hack_signers' instead of 'signers'.
5821 * decl.c (java_init_decl_processing):
5822 Push field 'hack_signers' instead of 'signers'.
5823
5824 2003-12-03 Zack Weinberg <zack@codesourcery.com>
5825
5826 * lex.h: Check both HAVE_ICONV and HAVE_ICONV_H before
5827 including iconv.h.
5828
5829 2003-12-03 Ralph Loader <rcl@ihug.co.nz>
5830
5831 PR java/12374:
5832 * parse.y (qualify_ambiguous_name): Remove lots of broken
5833 field access processing - there's no need to do that here,
5834 because we have resolve_field_access. Remove
5835 RESOLVE_EXPRESSION_NAME_P as it isn't used anywhere else.
5836 * java-tree.h: Remove RESOLVE_EXPRESSION_NAME_P as it isn't
5837 used.
5838
5839 2003-12-01 Jeff Sturm <jsturm@one-point.com>
5840
5841 Fix PR java/13237
5842 * parse.y (java_complete_lhs): Save location prior to patching
5843 CALL_EXPR.
5844
5845 2003-11-25 Mohan Embar <gnustuff@thisiscool.com>
5846
5847 PR java/12548
5848 * resource.c (write_resource_constructor): Append
5849 "_resource" to constructor identifier name.
5850
5851 2003-11-25 Jeff Sturm <jsturm@one-point.com>
5852
5853 Fix PR java/13183.
5854 * constants.c (cpool_for_class): New function.
5855 (outgoing_cpool): Remove global variable.
5856 (alloc_name_constant): Use cpool_for_class.
5857 (build_constants_constructor): Likewise.
5858 * decl.c (java_expand_body): Set current_class.
5859 * java-tree.h (outgoing_cpool) Remove declaration.
5860 (init_outgoing_cpool): Likewise.
5861 * jcf-parse.c (init_outgoing_cpool): Remove function.
5862 (parse_class_file): Don't call init_outgoing_cpool.
5863 * parse.y (java_complete_expand_methods): Don't call
5864 init_outgoing_cpool. Don't save outgoing_cpool.
5865 (java_expand_classes): Don't restore outgoing_cpool.
5866 (java_finish_classes): Likewise.
5867
5868 2003-11-24 Mohan Embar <gnustuff@thisiscool.com>
5869
5870 * Make-lang.in: (java.install-common) Add
5871 symlink for $(target_noncanonical)-gcjh for
5872 native builds.
5873
5874 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
5875
5876 * Make-lang.in (java.extraclean): Delete.
5877
5878 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
5879
5880 * Make-lang.in (check-java): Add.
5881
5882 2003-11-19 Jeff Sturm <jsturm@one-point.com>
5883
5884 Fix PR java/13024.
5885 * except.c (prepare_eh_table_type): Allocate variable-sized
5886 buffer `buf' with alloca.
5887
5888 2003-11-17 Jeff Sturm <jsturm@one-point.com>
5889
5890 Fix PR java/12857.
5891
5892 decl.c (java_init_decl_processing): Don't initialize
5893 class_not_found_type_node, no_class_def_found_type_node.
5894
5895 java-tree.h (JTI_CLASS_NOT_FOUND_TYPE_NODE,
5896 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE): Remove from java_tree_index.
5897 (class_not_found_type_node, no_class_def_found_type_node):
5898 Don't define.
5899
5900 parse.y (build_dot_class_method_invocation): Add this_class
5901 argument. Qualify method invocations to a different class.
5902 (create_new_parser_context): Initialize saved_data_ctx to 0.
5903 (java_parser_context_save_global): Initialize saved_data_ctx to 1.
5904 (build_dot_class_method): Don't load classes. Register
5905 incomplete types.
5906 (build_incomplete_class_ref): Special cases for interfaces
5907 and inner classes. Move build_dot_class_method call to here...
5908 (patch_incomplete_class_ref): ...from here. Pass current_class
5909 to build_dot_class_method_invocation.
5910 (build_assertion): Pass class_type to
5911 build_dot_class_method_invocation.
5912 (encapsulate_with_try_catch): Handle EXPR_WITH_FILE_LOCATION node.
5913
5914 2003-11-17 Jeff Sturm <jsturm@one-point.com>
5915
5916 Fix PR java/12739.
5917 * java-tree.h (BLOCK_EMPTY_P): Define.
5918 * parse.y (java_complete_lhs): Check for empty blocks
5919 in TRY_FINALLY_EXPR case.
5920
5921 2003-11-17 Andrew Haley <aph@redhat.com>
5922
5923 * java-tree.h (LOCAL_VAR_OUT_OF_SCOPE_P): New.
5924 (struct lang_decl_var:freed): New variable.
5925 * decl.c (poplevel): Mark local vars that have gone out of scope.
5926 (push_jvm_slot): Don't use the RTL of a var that has gone out of
5927 scope.
5928
5929 2003-11-16 Jason Merrill <jason@redhat.com>
5930
5931 * Make-lang.in (java.tags): Create TAGS.sub files in each directory
5932 and TAGS files that include them for each front end.
5933
5934 2003-11-15 Tom Tromey <tromey@redhat.com>
5935
5936 * gjavah.c (print_stub_or_jni): Pass `env' to FatalError.
5937
5938 2003-11-12 Jason Merrill <jason@redhat.com>
5939
5940 PR optimization/12547
5941 * lang.c (java_tree_inlining_walk_subtrees): Just walk
5942 BLOCK_EXPR_BODY directly.
5943
5944 2003-11-12 Andrew Haley <aph@redhat.com>
5945
5946 PR java/11045
5947 * parse.y (fold_constant_for_init): Check that we really do have a
5948 constant.
5949
5950 PR java/11533
5951 * lang.c (merge_init_test_initialization): Clear DECL_INITIAL for
5952 init_test_decls being inlined.
5953
5954 PR java/12890:
5955 * parse.y (do_resolve_class): Check return value from
5956 breakdown_qualified().
5957
5958 2003-11-11 Tom Tromey <tromey@redhat.com>
5959
5960 PR java/12915:
5961 * parse.y (merge_string_cste): Handle case where we have a
5962 pointer that happens to be zero, not null_pointer_node.
5963
5964 2003-11-10 Tom Tromey <tromey@redhat.com>
5965
5966 * jcf-parse.c (classify_zip_file): Correctly compare
5967 filename_length against length of manifest file's name.
5968
5969 2003-11-08 Tom Tromey <tromey@redhat.com>
5970
5971 PR java/12894:
5972 * jcf-parse.c (classify_zip_file): Only skip MANIFEST.MF file.
5973
5974 2003-11-06 Andrew Haley <aph@redhat.com>
5975
5976 * expr.c (java_stack_swap): Make sure destination stack slots are
5977 of the correct type.
5978
5979 2003-11-03 Kelley Cook <kcook@gcc.gnu.org>
5980
5981 * Make-lang.in (dvi): Move targets to $(docobjdir).
5982 (gcj.dvi): Simplify rule and adjust target.
5983 (gcj.info): Simplify rule.
5984 (gcj.pod): New intermediate rule.
5985 (gcjh.pod): Likewise.
5986 (jv-scan.pod): Likewise.
5987 (jcf-dump.pod): Likewise.
5988 (gij.pod): Likewise.
5989 (jv-convert.pod): Likewise.
5990 (rmic.pod): Likewise.
5991 (rmiregistry.pod): Likewise.
5992 (gcj.1): Delete.
5993 (gcjh.1): Delete.
5994 (jv-scan.1): Delete.
5995 (jcf-dump.1): Delete.
5996 (gij.1): Delete.
5997 (jv-convert.1): Delete.
5998 (rmic.1): Delete.
5999 (rmiregistry.1): Delete.
6000
6001 2003-11-02 Jeff Sturm <jsturm@one-point.com>
6002
6003 Fixes PR java/12866.
6004 * parse.y (resolve_qualified_expression_name): Move test
6005 for outer field access methods from here...
6006 (check_thrown_exceptions) ...to here.
6007
6008 2003-11-01 Kelley Cook <kcook@gcc.gnu.org>
6009
6010 * .cvsignore: Delete.
6011
6012 2003-10-28 Frank Ch. Eigler <fche@redhat.com>
6013
6014 * verify.c (verify_jvm_instructions): Don't warn about legal
6015 eh binding regions generated for example by jdk 1.4.1.
6016
6017 2003-10-24 David S. Miller <davem@redhat.com>
6018
6019 * jcf-parse.c (jcf_parse): Fix args to fatal_error().
6020
6021 2003-10-22 Andrew Haley <aph@redhat.com>
6022
6023 * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
6024 (java_get_callee_fndecl): New.
6025
6026 * jcf-parse.c (java_parse_file): Call emit_catch_table().
6027
6028 * java-tree.h (ctable_decl): New.
6029 (catch_classes): New.
6030 (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.
6031
6032 * decl.c (java_init_decl_processing): Add catch_class_type.
6033 Add ctable_decl.
6034 Add catch_classes field.
6035
6036 * class.c (build_indirect_class_ref): Break out from
6037 build_class_ref.
6038 (make_field_value): Check flag_indirect_dispatch.
6039 (make_class_data): Ditto.
6040 Tidy uses of PUSH_FIELD_VALUE.
6041 Add field catch_classes.
6042 (make_catch_class_record): New.
6043
6044 * java-tree.h (PUSH_FIELD_VALUE): Tidy.
6045
6046 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
6047
6048 * jcf-write.c: Follow spelling conventions.
6049 * parse.y: Likewise.
6050
6051 2003-10-22 Kazu Hirata <kazu@cs.umass.edu>
6052
6053 * ChangeLog: Fix typos.
6054 * expr.c: Fix comment typos.
6055 * jcf-write.c: Likewise.
6056 * lang.c: Likewise.
6057 * lex.c: Likewise.
6058 * mangle.c: Likewise.
6059 * parse-scan.y: Likewise.
6060 * parse.y: Likewise.
6061
6062 2003-10-22 Tom Tromey <tromey@redhat.com>
6063
6064 * expr.c (expand_byte_code): Only warn about dead bytecode when
6065 extra_warnings is set.
6066
6067 2003-10-22 Bryce McKinlay <bryce@mckinlay.net.nz>
6068
6069 Fix for PR java/12586.
6070 * mangle.c (find_compression_record_match): Don't iterate through
6071 package namespace elements unless they all match compression_table
6072 entries.
6073
6074 2003-10-20 Kelley Cook <kcook@gcc.gnu.org>
6075
6076 * Make-lang.in (info): Honor $(parsedir) and $(docobjdir).
6077 (generate-manpages): Likewise.
6078 (java.maintainer-clean): Likewise.
6079 (gcj.info): Likewise.
6080 (gcj.1): Likewise.
6081 (gcjh.1): Likewise.
6082 (jv-scan.1): Likewise.
6083 (jcf-dump.1): Likewise.
6084 (gij.1): Likewise.
6085 (jv-convert.1): Likewise.
6086 (rmic.1): Likewise.
6087 (rmiregistry.1): Likewise.
6088 (java.install-man): Likewise.
6089 (parse-scan.o): Move and define complete compile line.
6090 (parse.o): Likewise.
6091 (jcf-tree-inline.o): Move.
6092
6093 2003-10-20 Mark Mitchell <mark@codesourcery.com>
6094
6095 * Make-lang.in (info): Update dependencies.
6096 (java.install-info): Remove.
6097 ($(srcdir)/java/gcj.info): Replace with ...
6098 ($(docobjdir)/gcj.info): ... this.
6099
6100 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
6101
6102 * Make-lang.in: Replace uses of $(target_alias) with
6103 $(target_noncanonical).
6104
6105 2003-10-09 Tom Tromey <tromey@redhat.com>
6106
6107 * decl.c (java_init_decl_processing): Declare signers field.
6108 * class.c (make_class_data): Set signers field.
6109
6110 2003-10-09 Jason Merrill <jason@redhat.com>
6111
6112 * parse.y (patch_assignment): Use make_node to create a BLOCK.
6113 * parse.h (BUILD_PTR_FROM_NAME): Use make_node to create a
6114 POINTER_TYPE.
6115
6116 2003-10-06 Mark Mitchell <mark@codesourcery.com>
6117
6118 * Make-lang.in (java.info): Replace with ...
6119 (info): ... this.
6120 (java.dvi): Replace with ...
6121 (dvi): ... this.
6122 (java.generated-manpages): Replace with ...
6123
6124 2003-10-03 Kelley Cook <kelleycook@wideopenwest.com>
6125
6126 * builtins.c, jcf.h, jvspec.c: Remove PARAMS macros.
6127
6128 2003-10-01 Andrew Haley <aph@redhat.com>
6129
6130 * jcf-parse.c (java_parse_file): Write otable and atable.
6131 * java-tree.h (atable_methods): New.
6132 (atable_decl): New.
6133 (atable_syms_decl): New.
6134 (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
6135 JTI_ATABLE_SYMS_DECL. Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
6136 (symbol_*type): Rename method_symbol* to symbol*type.
6137 (emit_offset_symbol_table): Delete.
6138 (emit_symbol_table): New.
6139 (get_symbol_table_index): New.
6140 (atable_type): New.
6141 * expr.c (build_field_ref): Handle flag_indirect_dispatch.
6142 (build_known_method_ref): Likewise.
6143 (get_symbol_table_index): Rename from get_offset_table_index.
6144 Parameterize to allow re-use by differing types of symbol table.
6145 (build_invokevirtual): Pass table to get_offset_table_index.
6146 * decl.c (java_init_decl_processing): Push types and decls for
6147 atable and atable_syyms.
6148 * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
6149 (make_class_data): Add new fields atable and atable_syms.
6150 (emit_symbol_table): Rename from emit_offset_symbol_table.
6151 Parameterize to allow re-use by different types of symbol table.
6152 (build_symbol_entry): Renamed from build_method_symbols_entry.
6153
6154 2003-09-30 Roger Sayle <roger@eyesopen.com>
6155
6156 * jcf-write.c (generate_bytecode_insns): Implement evaluate-once
6157 semantics for SAVE_EXPR, by caching the result in a temporary.
6158
6159 2003-09-28 Richard Henderson <rth@redhat.com>
6160
6161 * check-init.c (check_init): Save and restore input_location
6162 instead of file and line separately.
6163 * decl.c (java_expand_body): Likewise.
6164 * jcf-write.c (generate_bytecode_insns): Likewise.
6165 * parse.y (safe_layout_class): Likewise.
6166 * jcf-parse.c (read_class, parse_class_file): Likewise.
6167 (java_parse_file): Use %H for warning locator.
6168
6169 2003-09-28 Roger Sayle <roger@eyesopen.com>
6170
6171 * expr.c (java_check_reference): Use the semantics of COND_EXPRs
6172 with void-type branches instead of using a COMPOUND_EXPR.
6173
6174 2003-09-28 Jeff Sturm <jsturm@one-point.com>
6175
6176 * decl.c (java_optimize_inline, dump_function): Remove.
6177 * java-tree.h (java_optimize_inline): Remove declaration.
6178 * jcf-parse.c (java_parse_file): Assume flag_unit_at_a_time is set.
6179 * parse.y (source_end_java_method, java_expand_classes):
6180 Likewise. Remove dead code.
6181
6182 2003-09-27 Roger Sayle <roger@eyesopen.com>
6183
6184 * lang.c (java_init_options): Set flag_evaluation_order.
6185 * expr.c (force_evaluation_order): Don't attempt to force
6186 evaluation order of binary operations using save_expr.
6187 * parse.y (java_complete_lhs): No longer need to call
6188 force_evaluation_order when constructing binary operators.
6189
6190 2003-09-27 Alexandre Petit-Bianco <apbianco@redhat.com>
6191 Bryce McKinlay <bryce@mckinlay.net.nz>
6192
6193 PR java/1333:
6194 * parse.y (not_accessible_field_error): New function.
6195 (resolve_expression_name): Check field access permissions.
6196 (resolve_qualified_expression_name): Use
6197 not_accessible_field_error.
6198 (resolve_qualified_expression_name): Likewise.
6199
6200 2003-09-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6201
6202 * class.c (build_utf8_ref): Test for HAVE_GAS_SHF_MERGE value.
6203
6204 2003-09-23 Roger Sayle <roger@eyesopen.com>
6205
6206 * jcf-write.c (generate_bytecode_insns): Optimize binary operations
6207 with equal operands without side-effects.
6208
6209 2003-09-22 Jeff Sturm <jsturm@one-point.com>
6210
6211 * decl.c (java_init_decl_processing): Don't emit otable decls
6212 if flag_indirect_dispatch is not set.
6213
6214 2003-09-21 Richard Henderson <rth@redhat.com>
6215
6216 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
6217 resource.c: Revert.
6218
6219 2003-09-21 Richard Henderson <rth@redhat.com>
6220
6221 * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y,
6222 resource.c: Update for DECL_SOURCE_LOCATION rename and change to const.
6223
6224 2003-09-20 Richard Henderson <rth@redhat.com>
6225
6226 * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics.
6227
6228 2003-09-18 Roger Sayle <roger@eyesopen.com>
6229
6230 * expr.c (java_truthvalue_conversion): Remove FFS_EXPR case.
6231 * check-init.c (check_init): Likewise.
6232
6233 2003-09-18 Roger Sayle <roger@eyesopen.com>
6234
6235 * jcf-write.c (generate_bytecode_insns): Add support for fconst_2.
6236
6237 2003-09-16 Andrew Haley <aph@redhat.com>
6238
6239 * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
6240
6241 2003-09-17 Ranjit Mathew <rmathew@hotmail.com>
6242
6243 Fixes PR java/9577
6244 * mangle.c (find_compression_record_match): Skip
6245 over a "6JArray" (the array template mangled string)
6246 IDENTIFIER_NODE.
6247 (mangle_array_type): Correct minor typo.
6248 (atms): Move definition to the beginning.
6249
6250 2003-09-16 Bryce McKinlay <bryce@mckinlay.net.nz>
6251
6252 * class.c (add_miranda_methods): Ensure super-interfaces are laid
6253 out. Fix for PR java/12254.
6254
6255 2003-09-11 Richard Henderson <rth@redhat.com>
6256
6257 * parse.y (source_end_java_method): Update for new
6258 cgraph_finalize_function argument.
6259
6260 2003-09-09 Richard Henderson <rth@redhat.com>
6261
6262 * parse.y (source_end_java_method): Update call to
6263 cgraph_finalize_function.
6264
6265 2003-09-03 Jeff Sturm <jsturm@one-point.com>
6266
6267 * decl.c (java_expand_body): New function.
6268 * expr.c (build_class_init): Set DECL_IGNORED_P.
6269 * java-tree.h (start_complete_expand_method,
6270 java_expand_body): Declare.
6271 * jcf-parse.c (cgraph.h): Include.
6272 (java_parse_file): Handle flag_unit_at_a_time.
6273 * lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING,
6274 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
6275 (java_estimate_num_insns): Use walk_tree_without_duplicates.
6276 (java_start_inlining): New function.
6277 * parse.h (java_finish_classes): Declare.
6278 * parse.y: Include cgraph.h.
6279 (block): Don't special-case empty block production.
6280 (craft_constructor): Set DECL_INLINE.
6281 (source_end_java_method): Handle flag_unit_at_a_time.
6282 Replace inline code with call to java_expand_body.
6283 (start_complete_expand_method): Remove static modifier.
6284 (java_expand_method_bodies): Patch function tree for
6285 class initialization and/or synchronization as needed.
6286 Don't begin RTL expansion yet.
6287 (java_expand_classes): Check flag_unit_at_a_time before
6288 calling finish_class.
6289 (java_finish_classes): New function.
6290 (java_complete_lhs): Ensure COMPOUND_EXPR has non-NULL type.
6291 (patch_assignment): Set DECL_CONTEXT on temporary variable.
6292 (emit_test_initialization): Set DECL_IGNORED_P.
6293
6294 2003-09-03 Roger Sayle <roger@eyesopen.com>
6295
6296 * builtins.c (enum builtin_type): Delete unused enumeration.
6297 * Make-lang.in (java/builtins.o): Remove built-types.def dependency.
6298
6299 2003-08-28 Tom Tromey <tromey@redhat.com>
6300
6301 * gcj.texi (Extensions): Document gcjlib URLs.
6302
6303 2003-08-20 Tom Tromey <tromey@redhat.com>
6304
6305 * gcj.texi (Extensions): Added xref.
6306 (libgcj Runtime Properties): Document
6307 gnu.gcj.runtime.VMClassLoader.library_control.
6308
6309 2003-08-20 Andrew Haley <aph@redhat.com>
6310
6311 * except.c (prepare_eh_table_type): Use new encoding for exception
6312 handlers when using -fno-assume-compiled.
6313
6314 2003-08-13 Tom Tromey <tromey@redhat.com>
6315
6316 * gcj.texi (Invoking gij): Document -X and -?.
6317
6318 2003-08-13 Mohan Embar <gnustuff@thisiscool.com>
6319
6320 * Make-lang.in: Added missing win32-host.o to JAVA_OBJS,
6321 GCJH_OBJS, JCFDUMP_OBJS
6322 * win32-host.c: Removed the unnecessary and broken dependency
6323 on jcf.h
6324
6325 2003-08-11 Tom Tromey <tromey@redhat.com>
6326
6327 * parse.y (java_check_regular_methods): Typo fixes. Call
6328 check_interface_throws_clauses. Use
6329 check_concrete_throws_clauses.
6330 (check_interface_throws_clauses): New function.
6331 (check_concrete_throws_clauses): New function.
6332 (hack_is_accessible_p): New function.
6333 (find_most_specific_methods_list): Added FIXME.
6334 * typeck.c (lookup_do): Use `flags' argument to decide what to
6335 do. Reimplemented.
6336 (lookup_argument_method_generic): New function.
6337 (lookup_argument_method2): Removed.
6338 * jcf.h (ACC_INVISIBLE): New define.
6339 * jcf-write.c (generate_classfile): Skip invisible methods.
6340 * class.c (add_miranda_methods): New function.
6341 (layout_class_methods): Use it.
6342 (get_access_flags_from_decl): Use ACC_INVISIBLE.
6343 * java-tree.h (METHOD_INVISIBLE): New define.
6344 (lang_decl_func) [invisible]: New field.
6345 (lookup_argument_method_generic): Declare.
6346 (SEARCH_INTERFACE): New define.
6347 (SEARCH_SUPER): Likewise.
6348 (SEARCH_ONLY_INTERFACE): Likewise.
6349 (SEARCH_VISIBLE): Likewise.
6350 (lookup_argument_method2): Removed declaration.
6351
6352 2003-08-05 Tom Tromey <tromey@redhat.com>
6353
6354 Fix for PR java/11600:
6355 * parse.y (java_complete_lhs): See whether we're calling a method
6356 on an array.
6357 (check_thrown_exceptions): Added `is_array_call' argument;
6358 fixed `clone' checking; updated all callers.
6359
6360 2003-08-05 Steven Bosscher <steven@gcc.gnu.org>
6361
6362 * java-tree.h (DECL_ESTIMATED_INSNS): Remove (moved to tree.h).
6363
6364 2003-08-03 Tom Tromey <tromey@redhat.com>
6365
6366 * java-tree.h (METHOD_TRANSIENT): Removed.
6367 * decl.c (pushdecl): Removed some dead code.
6368 * class.c (get_access_flags_from_decl): Can't have transient
6369 method.
6370 (add_method_1): Can't have a transient method.
6371
6372 2003-07-28 Andreas Jaeger <aj@suse.de>
6373
6374 * jvspec.c: Convert to ISO C90 prototypes.
6375
6376 2003-07-25 Nathan Sidwell <nathan@codesourcery.com>
6377
6378 * decl.c (force_poplevels): Fix warning call.
6379
6380 2003-07-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
6381
6382 * expr.c (expand_java_field_op): Don't use xxx_with_decl
6383 (expand_java_field_op): Likewise.
6384 * class.c (layout_class_method): Likewise
6385 (emit_register_classes): Likewise.
6386 * decl.c (pushdecl): Likewise.
6387 (poplevel): Likewise.
6388 (force_poplevels): Likewise.
6389 (give_name_to_locals): Likewise.
6390 * check-init.c (check_for_initialization): Likewise.
6391
6392 2003-07-24 Jason Merrill <jason@redhat.com>
6393
6394 * java-tree.h: Move boolean_type_node et al to the back end.
6395
6396 2003-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6397
6398 * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary
6399 casts.
6400
6401 2003-07-19 Neil Booth <neil@daikokuya.co.uk>
6402
6403 * lang.opt: Don't show -MD_ and -MDD_.
6404
6405 2003-07-18 Neil Booth <neil@daikokuya.co.uk>
6406
6407 * lang-options.h: Remove.
6408 * lang.opt: Add help text.
6409
6410 2003-07-15 Kazu Hirata <kazu@cs.umass.edu>
6411
6412 * expr.c: Remove the last argument to expand_assignment().
6413
6414 2003-07-09 Jan Hubicka <jh@suse.cz>
6415
6416 * java-tree.h (DECL_NUM_STMTS): Rename to...
6417 (DECL_ESTIMATED_INSNS): ... this.
6418 * lang.c (java_estimate_num_insns, java_estimate_num_insns_1):
6419 New static functions.
6420 (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Define.
6421 * parser.y (add_stmt_to_compound): Do not account statements.
6422
6423 2003-07-08 Mark Wielaard <mark@klomp.org>
6424
6425 * gcj.texi: CNI now expands to Compiled Native Interface.
6426
6427 2003-07-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6428
6429 * Make-lang.in (java/gcj.dvi): Use PWD_COMMAND.
6430
6431 2003-07-07 Nathan Sidwell <nathan@codesourcery.com>
6432
6433 * expr.c (expand_byte_code): Adjist emit_line_note call.
6434
6435 2003-07-06 Neil Booth <neil@daikokuya.co.uk>
6436
6437 * lang.c (java_handle_option): Don't handle filenames.
6438
6439 2003-07-02 Zack Weinberg <zack@codesourcery.com>
6440
6441 * jcf-path.c: Don't default-define PATH_SEPARATOR nor
6442 DIR_SEPARATOR.
6443 Use FILENAME_CMP.
6444 * jcf-write.c: Don't default-define DIR_SEPARATOR.
6445 * jcf.h: Delete COMPARE_FILENAMES definition.
6446
6447 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
6448
6449 * lang.c (java_init_options): Update prototype.
6450
6451 2003-07-01 Nathan Sidwell <nathan@codesourcery.com>
6452
6453 * decl.c (poplevel): Adjust define_label call.
6454
6455 2003-06-27 Zack Weinberg <zack@codesourcery.com>
6456
6457 * gjavah.c (flag_jni): Make non-static.
6458 * parse-scan.y (ctxp): Make non-static.
6459
6460 * class.c (build_method_symbols_entry)
6461 * expr.c (get_offset_table_index)
6462 * jcf-parse.c (jcf_parse):
6463 Mark the definition static, matching the forward declaration.
6464
6465 2003-06-26 Neil Booth <neil@daikokuya.co.uk>
6466
6467 * lang.c (java_handle_option): Don't check for missing arguments.
6468
6469 2003-06-20 Nathan Sidwell <nathan@codesourcery.com>
6470
6471 * class.c (push_class): Use a location_t to save place.
6472 (emit_register_classes): Set input_location. Adjust
6473 expand_function_end call.
6474 * resource.c (write_resource_constructor): Likewise.
6475 * decl.c (end_java_method): Adjust expand_function_end call.
6476 * parse.y (source_end_java_method): Likewise.
6477
6478 2003-06-17 Robert Abeles <rabeles@archaelogic.com>
6479
6480 * lang.c (java_handle_option): Likewise.
6481
6482 2003-06-16 Neil Booth <neil@daikokuya.co.uk>
6483
6484 * lang.c (java_handle_option): Special-casing of optional
6485 joined arguments no longer needed.
6486 * lang.opt: Update switches that take optional argument.
6487
6488 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
6489
6490 * lang.opt: Declare Java.
6491 * lang.c (java_init_options): Update.
6492
6493 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
6494
6495 * lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
6496
6497 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
6498
6499 * lang-specs.h: Rewrite -MD and -MMD to append an underscore.
6500 * lang.c (java_handle_option): -MD and -MMD have an underscore.
6501 * lang.opt: -MD and -MMD have an underscore.
6502
6503 2003-06-14 Nathan Sidwell <nathan@codesourcery.com>
6504
6505 * class.c (emit_register_classes): Adjust init_function_start
6506 call.
6507 * decl.c (complete_start_java_method): Likewise.
6508 * resource.c (write_resource_constructor): Likewise.
6509
6510 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
6511
6512 * Make-lang.in: Update to use options.c and options.h.
6513 * lang.c: Include options.h not j-options.h.
6514 (java_handle_option): Abort on unrecognized option.
6515 (java_init_options): Request Java switches.
6516
6517 2003-06-11 Neil Booth <neil@daikokuya.co.uk>
6518
6519 * Make-lang.in: Handle mostlyclean.
6520
6521 2003-06-11 Tom Tromey <tromey@redhat.com>
6522
6523 * lang.c (java_handle_option): Update dependency_tracking for
6524 OPT_MF case.
6525
6526 * lang.c (java_handle_option): OPT_fbootclasspath_ can take an
6527 empty argument.
6528
6529 2003-06-10 Andrew Haley <aph@redhat.com>
6530
6531 * resource.c (write_resource_constructor): Use expand_expr to
6532 generate the address of the label attached to a resource.
6533 * Make-lang.in (java/resource.o): Add expr.h
6534
6535 2003-06-10 Andrew Haley <aph@redhat.com>
6536
6537 * lang.c (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New.
6538 (java_decl_ok_for_sibcall): New.
6539
6540 2003-06-09 Neil Booth <neil@daikokuya.co.uk>
6541
6542 * Make-lang.in (JAVA_OBJS, java/lang.o): Update.
6543 (java/j-options.c, java/j-options.h): New.
6544 * java-tree.h (resource_name, compile_resource_file,
6545 compile_resource_data): Constify.
6546 * jcf-write.c (jcf_write_base_directory): Similarly.
6547 * jcf.h (jcf_write_base_directory): Similarly.
6548 * lang.c: Include j-options.h.
6549 (cl_options_count, cl_options, string_option, java_decode_option,
6550 lang_f_options, lang_W_options, LANG_HOOKS_DECODE_OPTION,
6551 process_option_with_no): Remove.
6552 (resource_name): Constify.
6553 (LANG_HOOKS_HANDLE_OPTION): Override.
6554 (java_handle_option): New.
6555 (java_init): Don't call jcf_path_init.
6556 (java_init_options): Call jcf_path_init.
6557 * lang.opt: New.
6558 * resource.c (compile_resource_data, compile_resource_file): Constify.
6559
6560 2003-06-09 Nathan Sidwell <nathan@codesourcery.com>
6561
6562 * java-tree.h (DECL_FUNCTION_LAST_LINE): New.
6563 (struct lang_decl_func): Add last_line field.
6564 * parse.h (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
6565 DECL_SOURCE_LINE_LAST): Remove.
6566 * parse.y (missing_return_error, finish_method_declaration,
6567 lookup_cl, start_artificial_method_body, source_end_java_method,
6568 start_complete_expand_method): Adjust.
6569
6570 2003-06-08 Tom Tromey <tromey@redhat.com>
6571
6572 * jvspec.c (jvgenmain_spec): Added `*' after fassume-compiled and
6573 fno-assume-compiled.
6574
6575 2003-06-08 Roger Sayle <roger@eyesopen.com>
6576
6577 * builtins.c (define_builtin_type, builtin_types): Delete.
6578 (define_builtin): Rewritten to take just the built-in code,
6579 the function's name, type and fallback library function name.
6580 All built-ins used by Java are implicit and BUILT_IN_NORMAL.
6581 (initialize_builtins): Overhaul to define the GCC builtins
6582 used by gcj manually, providing the Java run-time's
6583 implementations as the fallback library function.
6584
6585 2003-06-08 Anthony Green <green@redhat.com>
6586
6587 * parse.y (patch_cast): Fix conversions from floating-point to
6588 integral types.
6589
6590 2003-06-08 Neil Booth <neil@daikokuya.co.uk>
6591
6592 * Make-lang.in: Update.
6593 * lang.c: Include opts.h. Define cl_options_count and cl_options.
6594
6595 2003-06-07 Neil Booth <neil@daikokuya.co.uk>
6596
6597 * lang.c (java_init_options): Update.
6598
6599 2003-06-05 Jan Hubicka <jh@suse.cz>
6600
6601 * Make-lang.in: Add support for stageprofile and stagefeedback
6602
6603 2003-05-31 Roger Sayle <roger@eyesopen.com>
6604
6605 * lang.c (java_init_options): Prescribe wrap-around two's
6606 complement arithmetic overflow by setting flag_wrapv.
6607
6608 2003-05-29 Roger Sayle <roger@eyesopen.com>
6609
6610 * builtins.c (cos_builtin, sin_builtin, sqrt_builtin): Delete.
6611 (builtin_record): Add an additional builtin_code field to
6612 record which GCC built-in corresponds to the Java function.
6613 (java_builtins): Add new entries for atan, atan2, exp, log,
6614 pow and tan.
6615 (max_builtin, min_builtin, abs_builtin): Perform constant
6616 folding on the resulting tree.
6617 (java_build_function_call_expr): Likewise, perform constant
6618 folding on the resulting tree.
6619 (initialize_builtins): The NULL creators are now allowed in
6620 the java_builtins table, which is now terminated by an entry
6621 with builtin_code == END_BUILTINS.
6622 (check_for_builtin): Likewise. If the matching creator is
6623 NULL, construct the call using java_build_function_call_expr
6624 directly with the decl for the corresponding builtin_code.
6625
6626 2003-05-23 Nathanael Nerode <neroden@gcc.gnu.org>
6627
6628 * win32-host.c: Normalize copyright boilerplate.
6629
6630 2003-05-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6631
6632 * parse.y (print_int_node): Use string concatentation on
6633 HOST_WIDE_INT_PRINT_* format specifier to collapse multiple
6634 function calls into one.
6635
6636 2003-05-13 Zack Weinberg <zack@codesourcery.com>
6637
6638 * jcf-parse.c, jcf-write.c, lex.c: Replace all calls to
6639 fatal_io_error with calls to fatal_error; add ": %m" to the end of
6640 all the affected error messages.
6641
6642 2003-05-13 Richard Henderson <rth@redhat.com>
6643
6644 * class.c (layout_class_method): Set DECL_EXTERNAL.
6645 * decl.c (java_mark_decl_local, java_mark_class_local): New.
6646 * java-tree.h (java_mark_class_local): Declare.
6647 * jcf-parse.c (parse_class_file): Use it.
6648 * parse.y (java_expand_classes): Likewise.
6649
6650 2003-05-04 Nathan Sidwell <nathan@codesourcery.com>
6651
6652 * Make-lang.in (java/parse.o, java/parse-scan.o): Depend on input.h.
6653 * lex.h: #include input.h.
6654 * jv-scan.c (input_filename): Remove.
6655
6656 2003-05-02 Tom Tromey <tromey@redhat.com>
6657
6658 PR java/10491:
6659 * gjavah.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
6660 (handle_inner_classes): New function.
6661
6662 2003-05-01 Tom Tromey <tromey@redhat.com>
6663
6664 PR java/10459:
6665 * parse.y (finish_for_loop): Do nothing if update expression is a
6666 EXPR_WFL_NODE wrapping nothing.
6667 (java_complete_lhs) <COMPOUND_EXPR>: Likewise.
6668
6669 2003-05-02 Nathan Sidwell <nathan@codesourcery.com>
6670
6671 * lex.h (input_lineno): Remove declaration.
6672 * parse-scan.y: #include input.h.
6673 (input_filename): Remove declaration.
6674 (input_location): Add definition.
6675 (input_line): Remove definition.
6676
6677 2003-05-01 Nathan Sidwell <nathan@codesourcery.com>
6678
6679 * lex.h (lineno): Rename to ...
6680 (input_line): ... here
6681 * parse-scan.y (lineno): Rename to ...
6682 (input_line): ... here.
6683 (reset_report): Rename lineno to input_line.
6684 * check-init.c (check_init): Likewise.
6685 * class.c (push_class): Likewise.
6686 * decl.c (complete_start_java_method, end_java_method): Likewise.
6687 * expr.c (expand_byte_code): Likewise.
6688 * jcf-parse.c (give_name_to_class, parse_class_file): Likewise.
6689 * jcf-write.c (generate_bytecode_insns): Likewise.
6690 * lex.c (java_init_lex, java_allocate_new_line,
6691 do_java_lex): Likewise.
6692 * parse.h (YYNOT_TWICE): Likewise.
6693 * parse.y (empty_statement, expression_statement,
6694 java_pop_parser_context, java_parser_context_save_global,
6695 yyerror, register_fields, method_header, safe_layout_class,
6696 find_in_imports_on_demand, create_artificial_method,
6697 source_end_java_method, start_complete_expand_method,
6698 build_thisn_assign, java_complete_lhs,
6699 maybe_absorb_scoping_block): Likewise.
6700
6701 2003-04-20 Mohan Embar <gnustuff@thisiscool.com>
6702
6703 * jcf-io.c (find_class): use DIR_SEPARATOR instead of
6704 '/' when computing java source filename
6705
6706 2003-04-13 Tom Tromey <tromey@redhat.com>
6707
6708 * gjavah.c (print_c_decl): Indentation fix.
6709
6710 2003-04-12 Zack Weinberg <zack@codesourcery.com>
6711
6712 * class.c (make_field_value, make_method_value, get_dispatch_table)
6713 (make_class_data, emit_offset_symbol_table)
6714 * constants.c (build_constants_constructor)
6715 * java-tree.h (START_RECORD_CONSTRUCTOR)
6716 * parse.y (maybe_build_array_element_wfl):
6717 Use build_constructor.
6718
6719 2003-04-10 Eric Blake <ebb9@email.byu.edu>
6720
6721 PR java/10253:
6722 * parse.y (string_convert_int_cst): Always use at least one digit
6723 in string conversion. Remove ASCII dependence.
6724 (merge_string_cste): Fix merging of 3-byte UTF-8 characters.
6725
6726 2003-03-16 Mohan Embar <gnustuff@thisiscool.com>
6727
6728 * Make-lang.in: added win32-host.c
6729 * jcf.h: defined macro JCF_OPEN_EXACT_CASE which
6730 resolves to open() on non-Win32 platforms and
6731 Win32-specific jcf_open_exact_case() on Win32
6732 * jcf-io.c (find_class): use JCF_OPEN_EXACT_CASE
6733 when trying .java and .class files
6734 * win32-host.c: added to repository. Defines
6735 Win32-specific jcf_open_exact_case()
6736
6737 2003-04-10 Andrew Haley <aph@redhat.com>
6738
6739 * jcf-write.c (struct jcf_partial): num_jsrs: new field.
6740 (maybe_free_localvar): Renamed from localvar_free.
6741 Add new arg, really.
6742 (generate_bytecode_insns): Set new variable, jsrs.
6743 Only free local vars if no jsr insns have been emittted.
6744 Call maybe_free_localvar, not localvar_free.
6745
6746 2003-03-30 Joseph S. Myers <jsm@polyomino.org.uk>
6747
6748 * gcj.texi: Remove @ at start of file.
6749
6750 2003-03-25 Tom Tromey <tromey@redhat.com>
6751
6752 * parse.y (create_interface): Call CHECK_DEPRECATED.
6753
6754 2003-03-23 Zack Weinberg <zack@codesourcery.com>
6755
6756 * Make-lang.in: Link jcf-dump against $(LDEXP_LIB).
6757
6758 2003-03-21 Zack Weinberg <zack@codesourcery.com>
6759
6760 * javaop.h (jfloat, jdouble): Make them structures mirroring
6761 the bit fields of IEEE float and double respectively.
6762 (JFLOAT_FINITE, JFLOAT_QNAN_MASK, JFLOAT_EXP_BIAS,
6763 JDOUBLE_FINITE, JDOUBLE_QNAN_MASK, JDOUBLE_EXP_BIAS): New.
6764 (union Word, union DWord): Delete.
6765 (WORD_TO_FLOAT, WORDS_TO_DOUBLE): Update to match.
6766
6767 * gjavah.c (java_float_finite, java_double_finite, F_NAN_MASK,
6768 D_NAN_MASK): Delete.
6769 (jni_print_float, jni_print_double): New. Generate
6770 hexadecimal floating constants.
6771 (print_field_info): Use jni_print_float/double.
6772
6773 * jcf-dump.c: Include math.h. Use ldexp/frexp to assemble
6774 finite floating point numbers for output; special case
6775 non-finite floats.
6776
6777 2003-03-19 Nathanael Nerode <neroden@gcc.gnu.org>
6778
6779 * lang.c (java_dump_tree): Change return type from 'int' to 'bool'.
6780 Replace 0 and 1 with true and false in return statements.
6781
6782 2003-03-19 Tom Tromey <tromey@redhat.com>
6783
6784 * lex.c (do_java_lex): Renamed from java_lex.
6785 (java_lex): New function.
6786 Include timevar.h.
6787
6788 2003-03-13 Tom Tromey <tromey@redhat.com>
6789
6790 * parse.y (resolve_inner_class): Error if qualifier is a primitive
6791 type.
6792
6793 2003-03-04 Andrew Haley <aph@redhat.com>
6794
6795 * gjavah.c (is_first_data_member): New global variable.
6796 (print_c_decl): If it's the first data member, align it as the
6797 superclass.
6798 (process_file): Set is_first_data_member.
6799
6800 2003-03-11 Tom Tromey <tromey@redhat.com>
6801
6802 * parse.y (resolve_field_access): Initialize class if field is
6803 found in another static field.
6804 * expr.c (build_class_init): Don't optimize out initialization of
6805 implemented interface.
6806
6807 2003-03-11 Andrew Haley <aph@redhat.com>
6808
6809 * jcf-io.c (caching_stat): Initialize origsep to remove compiler
6810 warning.
6811
6812 2003-03-10 Ranjit Mathew <rmathew@hotmail.com>
6813
6814 * jcf-io.c (caching_stat): Account for both DIR_SEPARATOR
6815 and DIR_SEPARATOR_2 for a target.
6816 Correct minor typos.
6817
6818 * jcf-write.c (make_class_file_name): Take both DIR_SEPARATOR
6819 and DIR_SEPARATOR_2 for a target into account.
6820
6821 2003-03-08 Neil Booth <neil@daikokuya.co.uk>
6822
6823 * lang.c (java_init): Update prototype, move code to java_post_options.
6824 (java_post_options): Similarly.
6825
6826 2003-03-05 Ranjit Mathew <rmathew@hotmail.com>
6827
6828 * jcf.h (COMPARE_FILENAMES): New macro similar to "strcmp" to
6829 compare file name components depending on the case-sensitivity
6830 or otherwise of the host file system.
6831
6832 * jcf-path.c (add_entry): Use COMPARE_FILENAMES instead of
6833 "strcmp" to compare file name components.
6834 Use IS_DIR_SEPARATOR instead of comparing directly against
6835 DIR_SEPARATOR.
6836 (jcf_path_extdirs_arg): Use IS_DIR_SEPARATOR instead of
6837 comparing directly against DIR_SEPARATOR.
6838
6839 2003-03-04 Tom Tromey <tromey@redhat.com>
6840
6841 * Make-lang.in (java.tags): New target.
6842
6843 2003-03-01 Roger Sayle <roger@eyesopen.com>
6844
6845 * java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
6846 (initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.
6847
6848 2003-03-01 Tom Tromey <tromey@redhat.com>
6849
6850 * parse.y (jdep_resolve_class): Only check deprecation if we found
6851 a decl.
6852
6853 2003-02-28 Tom Tromey <tromey@redhat.com>
6854
6855 PR java/9695:
6856 * class.c (maybe_layout_super_class): Always pass a WFL to
6857 do_resolve_class.
6858 * parse.y (do_resolve_class): Updated comment to explain
6859 parameters.
6860
6861 2003-02-26 Tom Tromey <tromey@redhat.com>
6862
6863 * jcf-write.c (generate_classfile): Check whether class is
6864 deprecated before writing attribute count.
6865
6866 2003-02-25 Roger Sayle <roger@eyesopen.com>
6867
6868 * java/decl.c (java_init_decl_processing): Get soft_fmod_node from
6869 built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.
6870
6871 2003-02-23 Tom Tromey <tromey@redhat.com>
6872
6873 * lang-options.h: Added -Wdeprecated.
6874 * gcj.texi (Warnings): Document -Wdeprecated.
6875 * java-tree.h (flag_deprecated): Declare.
6876 * lang.c (lang_W_options): Added deprecated.
6877 (flag_deprecated): New global.
6878 * chartables.h: Rebuilt.
6879 * gen-table.pl (process_one): Look at whitespace.
6880 (print_tables): Define LETTER_SPACE, LETTER_MASK.
6881 * parse.h (CLEAR_DEPRECATED): New macro.
6882 (CHECK_DEPRECATED_NO_RESET): New macro.
6883 * jcf-parse.c (handle_deprecated): New function.
6884 (HANDLE_DEPRECATED_ATTRIBUTE): New define.
6885 * jcf-reader.c (get_attribute): Handle Deprecated attribute.
6886 * parse.y (resolve_type_during_patch): Check deprecation.
6887 (jdep_resolve_class): Likewise.
6888 (process_imports): Likewise.
6889 (resolve_expression_name): Likewise.
6890 (check_deprecation): Strip arrays from decl. Check
6891 flag_deprecated.
6892 (patch_method_invocation): Also check the particular constructor
6893 for deprecation.
6894 (register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
6895 * jcf-write.c (append_deprecated_attribute): New function.
6896 (generate_classfile): Generate deprecated attribute when
6897 appropriate.
6898 * lex.c (java_parse_doc_section): Return type now void. Rewrote.
6899 (java_lex) [case '*']: Simplify logic.
6900 (java_start_char_p): Use LETTER_MASK.
6901 (java_part_char_p): Likewise.
6902 (java_space_char_p): New function.
6903
6904 2003-02-20 Nathan Sidwell <nathan@codesourcery.com>
6905
6906 Change base class access representation.
6907 * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
6908 (add_interface_do): Likewise.
6909
6910 2003-02-12 Ranjit Mathew <rmathew@hotmail.com>
6911
6912 * decl.c (java_init_decl_processing): Change
6913 soft_lookupjnimethod_node to reflect the change in
6914 signature of _Jv_LookupJNIMethod in libjava/jni.cc
6915 * expr.c (build_jni_stub): Calculate and pass the size
6916 on the stack of the arguments to a JNI function. Use
6917 new target macro MODIFY_JNI_METHOD_CALL to allow a
6918 target to modify the call to a JNI method.
6919
6920 2003-02-08 Roger Sayle <roger@eyesopen.com>
6921
6922 * jcf-io.c (java_or_class_file): Use libiberty's lbasename
6923 instead of basename to avoid compiler warnings on Tru64.
6924
6925 2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
6926
6927 * gcj.texi: Update to GFDL 1.2.
6928
6929 2003-01-31 Andrew Haley <aph@redhat.com>
6930
6931 * parse.y (java_expand_classes): Scan the whole class list looking
6932 for access methods that haven't yet been expanded.
6933
6934 2003-01-31 Adrian Bunk <bunk@fs.tum.de>
6935
6936 Fix for java/4269:
6937
6938 * jv-scan.c: Use HAVE_LANGINFO_CODESET instead of HAVE_NL_LANGINFO
6939 to fix bootstrap on sparc-unknown-netbsdelf1.5.
6940 * jcf-parse.c: Likewise.
6941
6942 2003-01-31 Mark Wielaard <mark@klomp.org>
6943
6944 * gjavah.c (throwable_p): Allocate 1 more byte for string.
6945
6946 2003-01-31 Nathan Sidwell <nathan@codesourcery.com>
6947
6948 * class.c (make_class): Use BINFO_ELTS.
6949 (set_super_info): Likewse.
6950 (add_interface_do): Likewise.
6951
6952 2003-01-30 Tom Tromey <tromey@redhat.com>
6953
6954 * jcf-parse.c (read_class): Update identifier's class value if it
6955 changed during parsing.
6956
6957 2003-01-30 Loren James Rittle <ljrittle@acm.org>
6958
6959 * Make-lang.in (po-generated): Find the targets in $(parsedir).
6960 Propagate change to all other rules as required.
6961 (java/parse-scan.o): Add explicit dependency on
6962 $(parsedir)/java/parse-scan.c .
6963
6964 2003-01-29 Tom Tromey <tromey@redhat.com>
6965
6966 * parse.y (patch_assignment): Only transform the rhs of an
6967 assignment when compiling to native.
6968
6969 2003-01-28 Tom Tromey <tromey@redhat.com>
6970
6971 * jcf-write.c (generate_bytecode_conditional): Typo fixes.
6972
6973 2003-01-28 Tom Tromey <tromey@redhat.com>
6974
6975 * lex.c (java_lex): Don't include UEOF as part of token.
6976 (java_read_unicode): Error if \u sequence prematurely terminated.
6977
6978 2003-01-27 Tom Tromey <tromey@redhat.com>
6979
6980 * parse.y (java_check_regular_methods): Check for construct after
6981 checking types in throws clause.
6982
6983 2003-01-24 Tom Tromey <tromey@redhat.com>
6984
6985 * class.c (build_static_field_ref): Only a String or numeric field
6986 can fold to a constant.
6987
6988 2003-01-23 Tom Tromey <tromey@redhat.com>
6989
6990 * jcf-parse.c (parse_zip_file_entries): Overwrite trailing \0 of
6991 file name in resource buffer.
6992
6993 2003-01-23 Tom Tromey <tromey@redhat.com>
6994
6995 * expr.c (build_known_method_ref): Use method's context to find
6996 method table index.
6997
6998 2003-01-23 Tom Tromey <tromey@redhat.com>
6999
7000 * constants.c (set_constant_entry): Allocated cleared memory.
7001
7002 2003-01-22 Tom Tromey <tromey@redhat.com>
7003
7004 * java-tree.h: Don't use PARAMS.
7005 * resource.c: Add prototypes for all functions.
7006 (write_resource_constructor): Use `const char *' to avoid
7007 warning.
7008
7009 2003-01-22 Nathanael Nerode <neroden@gcc.gnu.org>
7010
7011 * jcf-parse.c (process_zip_dir): Remove unused variable.
7012
7013 2003-01-22 Tom Tromey <tromey@redhat.com>
7014
7015 * expr.c (build_invokeinterface): Abort if method's context is not
7016 an interface.
7017
7018 2003-01-22 Tom Tromey <tromey@redhat.com>
7019
7020 * gcj.texi (Input and output files): Mention non-class entries.
7021 * decl.c (java_init_decl_processing): Call
7022 init_resource_processing.
7023 * java-tree.h (compile_resource_data, write_resource_constructor,
7024 compile_resource_file, init_resource_processing): Declare.
7025 * config-lang.in (gtfiles): Added resource.c.
7026 * Make-lang.in (gt-java-resource.h): New target.
7027 (JAVA_OBJS): Added resource.o.
7028 (java/resource.o): New target.
7029 * resource.c: New file.
7030 * class.c (compile_resource_file): Moved to resource.c.
7031 (registerResource_libfunc): Likewise.
7032 (utf8_decl_list): Mark with GTY; now static.
7033 * jcf-parse.c (classify_zip_file): New function.
7034 (parse_zip_file_entries): Use it; compile .properties files.
7035 (process_zip_dir): Use classify_zip_file and compute_class_name.
7036 Don't write class name into zip directory.
7037 (java_parse_file): Call write_resource_constructor.
7038 (compute_class_name): New function.
7039 * jcf-io.c (read_zip_member): Reindented.
7040
7041 2003-01-21 Tom Tromey <tromey@redhat.com>
7042
7043 * class.c (supers_all_compiled): New function.
7044 (make_class_data): Use it.
7045
7046 2003-01-21 Tom Tromey <tromey@redhat.com>
7047
7048 * parse.y (method_header): Native method can't be strictfp.
7049 No method can be transient or volatile.
7050
7051 2003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7052
7053 Make-lang.in (jvspec.o-warn): Add -Wno-error.
7054
7055 2003-01-18 Kazu Hirata <kazu@cs.umass.edu>
7056
7057 * check-init.c: Fix comment typos.
7058 * class.c: Likewise.
7059 * constants.c: Likewise.
7060 * decl.c: Likewise.
7061 * except.c: Likewise.
7062 * expr.c: Likewise.
7063 * java-except.h: Likewise.
7064 * java-tree.h: Likewise.
7065 * javaop.h: Likewise.
7066 * jcf-dump.c: Likewise.
7067 * jcf-io.c: Likewise.
7068 * jcf-parse.c: Likewise.
7069 * jcf-write.c: Likewise.
7070 * lang.c: Likewise.
7071 * mangle.c: Likewise.
7072 * typeck.c: Likewise.
7073 * verify.c: Likewise.
7074
7075 2003-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7076
7077 * Make-lang.in (java/jcf-write.o): Depend on $(TM_P_H).
7078 * jcf-write.c: Include "tm_p.h".
7079
7080 2003-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7081
7082 * jcf-io.c (caching_stat): Cast the 3rd arg of scandir to void*.
7083
7084 2003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7085
7086 * builtins.c (java_build_function_call_expr): Renamed from
7087 build_function_call_expr. All callers changed.
7088
7089 * Make-lang.in (java/jcf-parse.o): Depend on $(TM_P_H).
7090 * jcf-parse.c: Include tm_p.h.
7091
7092 * jcf-write.c (generate_bytecode_insns): Avoid signed/unsigned
7093 warning.
7094
7095 2003-01-14 Tom Tromey <tromey@redhat.com>
7096
7097 * class.c (make_class_data): Check that super is compiled before
7098 building class reference to it.
7099
7100 2003-01-14 Andrew Haley <aph@redhat.com>
7101
7102 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7103 varargs function -- correct.
7104
7105 2003-01-14 Andrew Haley <aph@redhat.com>
7106
7107 * decl.c (java_init_decl_processing): Temporarily back out previous patch.
7108
7109 2003-01-14 Andrew Haley <aph@redhat.com>
7110
7111 * decl.c (java_init_decl_processing): _Jv_NewMultiArray is a
7112 varargs function -- correct.
7113
7114 * parse.y (patch_assignment): Copy the rhs of an assignment into a
7115 temporary if the RHS is a reference.
7116
7117 2003-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7118
7119 * Make-lang.in (keyword.h): Pass "-L ANSI-C" to gperf.
7120 * keyword.h: Regenerated.
7121
7122 * All Files: Convert to ISO C style function definitions.
7123
7124 2003-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
7125
7126 * parse.y (check_pkg_class_access): ANSIfy definition.
7127
7128 2003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7129
7130 * decl.c, parse-scan.y, parse.y: Don't cast return value of
7131 xmalloc et al.
7132
7133 * class.c, gjavah.c, parse.y, verify.c: Don't use PTR.
7134
7135 2003-01-09 Geoffrey Keating <geoffk@apple.com>
7136
7137 Merge from pch-branch:
7138
7139 2002-12-02 Geoffrey Keating <geoffk@apple.com>
7140
7141 * Make-lang.in (java/gjavah.o): Update dependencies.
7142 * gjavah.c: Include ggc.h.
7143
7144 2002-08-16 Geoffrey Keating <geoffk@redhat.com>
7145
7146 * Make-lang.in (GCJH_OBJS): Add ggc-none.o.
7147 (JCFDUMP_OBJS): Add ggc-none.o.
7148 (java/jcf-dump.o): Depend on GGC_H.
7149 * jcf-reader.c (jcf_parse_constant_pool): Use ggc_alloc to allocate
7150 CPool substructures.
7151 * jcf-parse.c (process_zip_dir): Use ggc_alloc to allocate JCFs.
7152 * jcf-dump.c: Include ggc.h.
7153
7154 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
7155
7156 * jcf.h (union cpool_entry): New.
7157 (struct CPool): Use gengtype to mark. Change field 'data' to be
7158 an array of unions.
7159 (struct JCF): Use gengtype to mark.
7160 (CPOOL_UINT): Update for new cpool_entry type.
7161 (CPOOL_USHORT1): Likewise.
7162 (CPOOL_USHORT2): Likewise.
7163 (CPOOL_FINISH): Use GC to free cpool subfields.
7164 * parse.h (struct parser_ctxt): Mark field current_jcf.
7165 * lex.c (java_init_lex): Use GC to allocate struct JCF.
7166 * jcf-parse.c (HANDLE_CONSTANT_Utf8): Update for new cpool_entry type.
7167 (main_jcf): Use gengtype to mark.
7168 (ggc_mark_jcf): Delete.
7169 (get_constant): Update for new cpool_entry type.
7170 (give_name_to_class): Likewise.
7171 (get_class_constant): Likewise.
7172 (init_outgoing_cpool): Use GGC to allocate struct CPool.
7173 (java_parse_file): Use GGC to allocate struct JCF.
7174 (init_jcf_parse): Don't call ggc_add_root.
7175 * jcf-reader.c (jcf_parse_constant_pool): Update for new
7176 cpool_entry type.
7177 * java-tree.h (current_jcf): Use gengtype to mark.
7178 (CPOOL_UTF): Update for new cpool_entry type.
7179 (outgoing_cpool): Use gengtype to mark.
7180 (struct lang_type): GC struct JCF and struct CPool.
7181 * config-lang.in (gtfiles): Add jcf.h.
7182 * constants.c (find_tree_constant): New.
7183 (set_constant_entry): Allocate cpool subfields using GGC. Update
7184 for new cpool_entry type.
7185 (find_constant1): Update for new cpool_entry type.
7186 (find_constant2): Likewise.
7187 (find_utf8_constant): Use find_tree_constant.
7188 (find_class_or_string_constant): Remove unnecessary cast to jword.
7189 Update for new cpool_entry type.
7190 (count_constant_pool_bytes): Update for new cpool_entry type.
7191 (write_constant_pool): Likewise.
7192 (alloc_name_constant): Use find_tree_constant.
7193 (build_constants_constructor): Update for new cpool_entry type.
7194
7195 2002-08-08 Geoffrey Keating <geoffk@redhat.com>
7196
7197 * parse.y (mark_parser_ctxt): Delete.
7198 (goal): Don't use ggc_add_root.
7199 (create_new_parser_context): Use GC to allocate struct parser_ctxt.
7200 (java_pop_parser_context): Let GC free parser_ctxt.
7201 (java_parser_context_resume): Likewise.
7202 * parse.h (struct parser_ctxt): Use gengtype to mark.
7203 (ctxp): Likewise.
7204 (ctxp_for_generation): Likewise.
7205 * lex.h (struct java_lc_s): Mark for gengtype.
7206 (java_lexer): Rearrange for gengtype.
7207 * config-lang.in (gtfiles): Add lex.h, parse.h.
7208
7209 2003-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7210
7211 * All Files: Remove PARAMS macro.
7212
7213 * expr.c, gjavah.c, javaop.h, jcf-dump.c, jcf-io.c, jcf-reader.c,
7214 jcf-write.c, jcf.h, jv-scan.c: Don't rely on the `DEFUN', `AND' or
7215 `__STDC__' macros.
7216
7217 * jv-scan.c, parse.y: Remove VPARAMS, VA_OPEN, VA_FIXEDARG and
7218 VA_CLOSE.
7219
7220 2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
7221
7222 * Make-lang.in (java.install-common, java.uninstall,
7223 java.install-info, java.install-man): Prepend $(DESTDIR)
7224 to destination paths in all (un)installation commands.
7225 (java.install-common): Rewrite $(LN) command to support
7226 DESTDIR with "ln" as well as with "ln -s".
7227
7228 2003-01-08 Nathanael Nerode <neroden@gcc.gnu.org>
7229
7230 * java-tree.h: Protect against multiple inclusion.
7231
7232 2003-01-07 Tom Tromey <tromey@redhat.com>
7233
7234 * class.c (add_assume_compiled): Don't adjust parent if we're
7235 already at the root of tree.
7236
7237 2003-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7238
7239 * lang.c (dump_compound_expr): Prototype.
7240
7241 2003-01-03 Tom Tromey <tromey@redhat.com>
7242
7243 Fix for PR java/8712:
7244 * expr.c (build_instanceof): Build an NE_EXPR, not a COND_EXPR,
7245 when simply checking against `null'.
7246
7247 2003-01-03 Tom Tromey <tromey@redhat.com>
7248
7249 * gcj.texi (Standard Properties): Document http.proxyHost and
7250 http.proxyPort.
7251
7252 * gcj.texi (GNU Classpath Properties): Document new properties.
7253
7254 2003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
7255
7256 * java/jcf-reader.c, java/jvgenmain.c, java/keyword.gperf,
7257 java/lang-options.h, java/mangle.c, java/mangle_name.c,
7258 java/xref.c, java/zextract.c,java/zipfile.h: Fix copyright years.
7259
7260 2003-01-01 Steven Bosscher <s.bosscher@student.tudelft.nl>
7261
7262 * Make-lang.in, boehm.c, buffer.c,
7263 buffer.h, builtins.c, class.c,
7264 config-lang.in, constants.c,
7265 convert.h, decl.c, except.c,
7266 expr.c, java-except.h,
7267 java-tree.h, javaop.def,
7268 jcf-parse.c, jcf-write.c,
7269 jv-scan.c, jvgenmain.c,
7270 jvspec.c, keyword.gperf,
7271 keyword.h, lang-options.h,
7272 lang-specs.h, lang.c, lex.c,
7273 lex.h, mangle.c, mangle_name.c,
7274 parse-scan.y, parse.h, parse.y,
7275 typeck.c, verify.c, xref.c,
7276 xref.h: Replace "GNU CC" with
7277 "GCC" in the copyright header.
7278
7279 * check-init.c, gjavah.c, javaop.h,
7280 jcf-depend.c, jcf-dump.c, jcf-io.c,
7281 jcf-path.c, jcf-reader.c, jcf.h,
7282 zextract.c, zipfile.h: These files are
7283 "part of GCC". Also say "GCC" not "GNU CC".
7284
7285 2002-12-30 DJ Delorie <dj@redhat.com>
7286
7287 * Make-lang.in: Protect against texi2pod/pod2man failing.
7288
7289 2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
7290
7291 * gcj.texi: Use @copying.
7292
7293 2002-12-27 Mark Mitchell <mark@codesourcery.com>
7294
7295 * gjavah.c (print_name_for_stub_or_jni): Adjust call to
7296 print_cxx_classname.
7297 (print_cxx_classname): Add add_scope parameter.
7298 (print_class_decls): Do not emit a semicolon after the extern
7299 "Java" block.
7300 (process_file): Adjust calls to print_cxx_classname.
7301
7302 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
7303
7304 * gcj.texi: Include Cover Texts in man page.
7305
7306 2002-12-23 Jeff Sturm <jsturm@one-point.com>
7307
7308 * class.c (build_static_field_ref): Check FIELD_FINAL.
7309
7310 * constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
7311 instead of current_constant_pool_data_ref.
7312 * java-tree.h (current_constant_pool_data_ref): Undefine.
7313 (JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
7314 * jcf-parse.c (init_outgoing_cpool): Don't initialize
7315 current_constant_pool_data_ref.
7316
7317 * except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
7318 not build_internal_class_name.
7319
7320 * parse.y (patch_incomplete_class_ref): Always emit `class$' method.
7321 Use it when class ref isn't certain to be compiled.
7322
7323 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
7324
7325 * gcj.texi: Include gcc-common.texi.
7326 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
7327 $(srcdir)/doc/include/gcc-common.texi.
7328
7329 2002-12-22 Anthony Green <green@redhat.com>
7330
7331 * gcj.texi (Limitations): Add note about org.xml.sax and
7332 org.w3c.dom.
7333
7334 2002-12-20 Tom Tromey <tromey@redhat.com>
7335
7336 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Handle case
7337 where minimum case value is Integer.MIN_VALUE.
7338 Fixes PR java/8955.
7339
7340 2002-12-18 Andrew Haley <aph@redhat.com>
7341
7342 * parse.y (patch_invoke): Force evaluation order when `check' is
7343 set. For PR libgcj/8945.
7344
7345 2002-12-16 Mark Mitchell <mark@codesourcery.com>
7346
7347 * gcj.texi: Change version number to 3.4.
7348
7349 2002-12-05 Ranjit Mathew <rmathew@hotmail.com>
7350 Andrew Haley <aph@redhat.com>
7351
7352 * parse.y (source_end_java_method): Remove custom encoding of line
7353 numbers for a function decl before passing it to the back end.
7354
7355 2002-12-03 Andrew Haley <aph@redhat.com>
7356
7357 * class.c (make_class_data): New field, "chain".
7358 * decl.c (java_init_decl_processing): Likewise.
7359
7360 2002-12-02 Tom Tromey <tromey@redhat.com>
7361
7362 For PR java/8740:
7363 * parse.y (do_resolve_class): Handle qualified name via
7364 recursion.
7365
7366 2002-11-30 Zack Weinberg <zack@codesourcery.com>
7367
7368 * boehm.c, buffer.c, builtins.c, check-init.c, class.c,
7369 constants.c, decl.c, except.c, expr.c, gjavah.c, jcf-depend.c,
7370 jcf-dump.c, jcf-io.c, jcf-parse.c, jcf-path.c, jcf-write.c,
7371 jv-scan.c, jvgenmain.c, jvspec.c, lang.c, mangle.c, mangle_name.c,
7372 parse-scan.y, parse.y, typeck.c, verify.c, xref.c, zextract.c:
7373 Include coretypes.h and tm.h.
7374 * Make-lang.in: Update dependencies.
7375
7376 2002-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7377
7378 * decl.c (java_init_decl_processing): Use `LL' on 64-bit constant.
7379
7380 2002-11-25 Diego Novillo <dnovillo@redhat.com>
7381
7382 * jcf-reader.c: Don't expand JCF_readu4 inside the
7383 expansion of JCF_SKIP.
7384
7385 2002-11-25 Diego Novillo <dnovillo@redhat.com>
7386
7387 * jcf-reader.c: Don't expand JCF_readu4 inside the
7388 expansion of JCF_SKIP.
7389
7390 2002-11-22 Tom Tromey <tromey@redhat.com>
7391
7392 * parse.y (patch_binop): Cast right hand side of shift expression
7393 to `int'. Fixes PR java/8676.
7394
7395 2002-11-22 Ranjit Mathew <rmathew@hotmail.com>
7396 Andrew Haley <aph@redhat.com>
7397
7398 * gcc/java/jcf-write.c (write_classfile): Remove target
7399 class file, if it exists, before renaming the temporary
7400 class file to it.
7401
7402 2002-11-19 Jason Thorpe <thorpej@wasabisystems.com>
7403
7404 * jvspec.c (lang_specific_spec_functions): New.
7405
7406 2002-11-18 Tom Tromey <tromey@redhat.com>
7407
7408 Fix for PR java/7912:
7409 * expr.c (can_widen_reference_to): Allow cast of array to
7410 Cloneable or Serializable.
7411 * java-tree.h (java_lang_cloneable_identifier_node): Declare.
7412 (java_io_serializable_identifier_node): Likewise.
7413 * parse.y (java_lang_cloneable, java_io_serializable): Removed.
7414 (valid_ref_assignconv_cast_p): Use new identifier nodes.
7415 * lex.c (java_init_lex): Don't initialize java_lang_cloneable and
7416 java_io_serializable.
7417 * decl.c (java_init_decl_processing): Initialize
7418 java_lang_cloneable_identifier_node and
7419 java_io_serializable_identifier_node.
7420 (java_lang_cloneable_identifier_node): New global.
7421 (java_io_serializable_identifier_node): Likewise.
7422
7423 2002-11-14 Jens-Michael Hoffmann <jensmh@gmx.de>
7424
7425 * buffer.c: Remove unnecessary casts.
7426 * check-init.c: Likewise.
7427 * class.c: Likewise.
7428 * constants.c: Likewise.
7429 * decl.c: Likewise.
7430 * except.c: Likewise.
7431 * gjavah.c: Likewise.
7432 * jcf-io.c: Likewise.
7433 * jcf-parse.c: Likewise.
7434 * jcf-path.c: Likewise.
7435 * jvspec.c: Likewise.
7436 * lang.c: Likewise.
7437 * lex.c: Likewise.
7438 * verify.c: Likewise.
7439
7440 2002-11-06 Tom Tromey <tromey@redhat.com>
7441
7442 * gjavah.c (print_stub_or_jni): Include JNIEXPORT and JNICALL in
7443 a JNI header.
7444
7445 2002-11-05 Tom Tromey <tromey@redhat.com>
7446
7447 Fix for PR java/6388.
7448 * lex.h (JAVA_INTEGRAL_RANGE_ERROR): Wrap in do...while.
7449 * java-tree.h (enum java_tree_index): New values
7450 JTI_DECIMAL_INT_MAX_NODE, JTI_DECIMAL_LONG_MAX_NODE.
7451 (decimal_int_max, decimal_long_max): New defines.
7452 * lex.c (yylex): Rewrote range checking. Sign extend literals.
7453 (error_if_numeric_overflow): Rewrote range checking.
7454 * decl.c (java_init_decl_processing): Initialize decimal_int_max,
7455 decimal_long_max.
7456
7457 2002-11-02 Tom Tromey <tromey@redhat.com>
7458
7459 * java-tree.h: Move JV_STATE_ERROR before JV_STATE_DONE.
7460
7461 * class.c (make_method_value): Put class name, not signature, into
7462 `throws' field. For PR java/8415.
7463
7464 2002-10-24 Tom Tromey <tromey@redhat.com>
7465
7466 * gcj.texi (Invoking gij): Document --showversion.
7467 (Standard Properties): java.library.path now set.
7468
7469 2002-10-23 Tom Tromey <tromey@redhat.com>
7470
7471 * gjavah.c (decode_signature_piece): In JNI mode, print
7472 `jobjectArray' when array depth is nonzero.
7473 Fixes PR java/8296.
7474
7475 2002-10-15 Andrew Haley <aph@redhat.com>
7476
7477 * parse.y (patch_invoke): Call force_evaluation_order on a static
7478 arg list.
7479 (resolve_qualified_expression_name): Call force_evaluation_order
7480 on a arg list that is part of a Qualified Expression Name.
7481
7482 * lang.c (dump_compound_expr): New.
7483 (java_dump_tree): New.
7484
7485 2002-10-20 Ranjit Mathew <rmathew@hotmail.com>
7486
7487 * gcj.texi: Added item describing the GCJ runtime property
7488 "gnu.gcj.progname".
7489
7490 2002-10-15 Richard Henderson <rth@redhat.com>
7491
7492 * jcf-parse.c (get_constant): Fix type warning.
7493
7494 2002-10-15 Andrew Haley <aph@redhat.com>
7495
7496 * java-tree.h (java_inlining_merge_static_initializers): Declare.
7497 (java_inlining_map_static_initializers): Declare.
7498
7499 2002-10-14 Andrew Haley <aph@redhat.com>
7500
7501 * tree-inline.c (remap_block): All local class initialization
7502 flags go in the outermost scope.
7503 (expand_call_inline): Call java_inlining_map_static_initializers.
7504 (expand_call_inline): Call java_inlining_merge_static_initializers.
7505 * java/lang.c (merge_init_test_initialization): New.
7506 (java_inlining_merge_static_initializers): New.
7507 (inline_init_test_initialization): New.
7508 (java_inlining_map_static_initializers): New.
7509
7510 2002-10-11 Mark Wielaard <mark@klomp.org>
7511
7512 * gcj.texi (Compatibility): Add Limitations and Extensions section.
7513
7514 2002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7515
7516 * class.c (JAVA_TREEHASHHASH_H): Use htab_hash_pointer.
7517
7518 2002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7519
7520 * parse.y (merge_string_cste): Add parentheses around & within |.
7521
7522 2002-10-08 Tom Tromey <tromey@redhat.com>
7523
7524 * parse.y (variable_declarator_id): Simplify error path for
7525 array declarator error. For PR java/8003.
7526
7527 2002-10-08 Zack Weinberg <zack@codesourcery.com>
7528
7529 * gjavah.c, jcf-dump.c, jv-scan.c: Globally replace GCCBUGURL with
7530 bug_report_url.
7531
7532 2002-10-08 Andrew Haley <aph@redhat.com>
7533
7534 * parse.y (attach_init_test_initialization_flags): Check for
7535 error_mark_node.
7536
7537 2002-10-07 Anthony Green <green@redhat.com>
7538
7539 * parse.y (merge_string_cste): Fix bug in string concatenation.
7540
7541 2002-10-03 Michael Koch <konqueror@gmx.de>
7542
7543 * gcj.texi (Standard properties):
7544 Change default of java.awt.toolkit to gnu.awt.gtk.GtkToolkit.
7545
7546 2002-10-02 Roger Sayle <roger@eyesopen.com>
7547
7548 PR optimization/6627
7549 * lang.c (java_init): If storing the vbit in function
7550 pointers, ensure that force_align_functions_log is atleast
7551 one to aid compatability with g++ vtables.
7552
7553 2002-10-01 Nathan Sidwell <nathan@codesourcery.com>
7554
7555 * jcf-dump.c (print_constant, case CONSTANT_float): Don't fall
7556 foul of type-based aliasing.
7557
7558 2002-09-30 Anthony Green <green@redhat.com>
7559
7560 * gcj.texi (Invoking jv-scan): Fix texinfo.
7561
7562 2002-09-28 Anthony Green <green@redhat.com>
7563
7564 * gcj.texi (Invoking jv-scan): Add --no-assert documentation.
7565 (Code Generation): Add -fno-assert documentation.
7566 * jv-scan.c (flag_assert): New global.
7567 (options): Add assert option.
7568 (help): Add --no-assert documentation.
7569 * parse-scan.y (flag_assert): New global.
7570 * lang.c (lang_f_options): Add -fassert/-fno-assert support.
7571 (flag_assert): New global.
7572 * java-tree.h (flag_assert): New global.
7573 * lex.c (java_lex): Obey flag_assert.
7574 * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when
7575 calling cc1.
7576
7577 2002-09-26 Andrew Haley <aph@redhat.com>
7578
7579 * expr.c (build_java_array_length_access): Check for null pointer.
7580 * expr.c (expand_java_arrayload): Likewise.
7581
7582 2002-09-21 Richard Henderson <rth@redhat.com>
7583
7584 * jcf-parse.c (get_constant): Decode from IEEE no matter
7585 what the target format.
7586
7587 2002-09-20 Kazu Hirata <kazu@cs.umass.edu>
7588
7589 * ChangeLog: Follow spelling conventions.
7590 * class.c: Likewise.
7591 * decl.c: Likewise.
7592 * expr.c: Likewise.
7593 * gjavah.c: Likewise.
7594 * java-tree.h: Likewise.
7595 * jcf-dump.c: Likewise.
7596 * jcf-parse.c: Likewise.
7597 * jvspec.c: Likewise.
7598 * lang.c: Likewise.
7599 * mangle.c: Likewise.
7600 * parse.y: Likewise.
7601
7602 2002-09-17 Tom Tromey <tromey@redhat.com>
7603
7604 * lex.c (java_read_unicode_collapsing_terminators): Handle case
7605 where \r appears at EOF. Fixes PR java/7950.
7606
7607 2002-09-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7608
7609 * jvspec.c (lang_specific_driver): Remove unused variable.
7610
7611 2002-09-16 Geoffrey Keating <geoffk@apple.com>
7612
7613 * java-tree.h (union lang_tree_node): Add chain_next option.
7614
7615 2002-09-16 Richard Henderson <rth@redhat.com>
7616
7617 * jcf-parse.c (get_constant): Runtime check for IEEE format;
7618 use new real.h interface.
7619 * jcf-write.c (find_constant_index): Use new real.h interface.
7620 * lex.c (IS_ZERO): Use REAL_VALUES_EQUAL.
7621
7622 2002-09-15 Kazu Hirata <kazu@cs.umass.edu>
7623
7624 * lang.c: Follow spelling conventions.
7625
7626 2002-09-11 Per Bothner <per@bothner.com>
7627
7628 * parse.y (fold_constant_for_init): If a VAR_DECL, convert numerical
7629 constant to the type of the field.
7630 (java_complete_tree): Remove now-redundant code.
7631
7632 * parse.y (fold_constant_for_init): 'null' is not a constant expr.
7633
7634 2002-09-03 Jesse Rosenstock <jmr@ugcs.caltech.edu>
7635
7636 For PR java/5794:
7637 * verify.c (verify_jvm_instructions) [OPCODE_jsr]: Only push the
7638 return label if a ret instruction for the jsr has been reached.
7639
7640 2002-09-09 Ranjit Mathew <rmathew@hotmail.com>
7641
7642 * parse.y (DIR_SEPARATOR): Don't define.
7643 (check_class_interface_creation): Use IS_DIR_SEPARATOR.
7644
7645 2002-08-28 Andrew Haley <aph@redhat.com>
7646
7647 * verify.c (verify_jvm_instructions): Allow exception handler
7648 inside code that is being protected, but generate a warning.
7649 * except.c (link_handler): Initialize `expanded' in new eh_range.
7650 (binding_depth, is_class_level, current_pc): Declare extern.
7651
7652 2002-09-01 Mark Wielaard <mark@klomp.org>
7653
7654 * gcj.texi: Add chapter about system properties.
7655 Fixed some typos.
7656
7657 2002-08-26 Tom Tromey <tromey@redhat.com>
7658
7659 * parse.y (try_builtin_assignconv): Allow narrowing primitive
7660 conversion if RHS_TYPE is byte, short, or char.
7661
7662 2002-08-22 Tom Tromey <tromey@redhat.com>
7663
7664 * gcj.texi (Invoking gij): Document -cp and -classpath.
7665
7666 2002-08-21 Tom Tromey <tromey@redhat.com>
7667
7668 * Make-lang.in (java/jcf-path.o): Use $(datadir), not
7669 $(prefix)/share. For PR libgcj/7633.
7670
7671 For PR java/6005 and PR java/7611:
7672 * lang.c (LANG_HOOKS_CAN_USE_BITFIELDS_P): New define.
7673 (java_can_use_bit_fields_p): New function.
7674
7675 2002-08-16 Tom Tromey <tromey@redhat.com>
7676
7677 * gcj.texi (Class Initialization): Mention class initialization of
7678 arrays.
7679
7680 2002-07-30 Andrew Haley <aph@cambridge.redhat.com>
7681
7682 * Make-lang.in (java-tree-inline.o): New.
7683 (JAVA_OBJS): Add java-tree-inline.o.
7684 * parse.y (source_end_java_method): Call java_optimize_inline.
7685 (java_expand_method_bodies): Save method's tree in
7686 DECL_SAVED_TREE.
7687 (add_stmt_to_compound): Keep track of the number of statments.
7688 * lang.c (java_init): Enable flag_inline_trees.
7689 (java_post_options): If flag_inline_functions is on, enable
7690 flag_inline_trees instread.
7691 (decl_constant_value): New.
7692 (java_tree_inlining_walk_subtrees): New.
7693 * java-tree.h (DECL_NUM_STMTS): New macro.
7694 (java_optimize_inline): Declare.
7695 * expr.c (java_expand_expr): Allow a BLOCK to return a value.
7696 Handle a LABEL_EXPR.
7697 * decl.c (build_result_decl): If we already have a DECL_RESULT
7698 don't make another.
7699 (dump_function): New.
7700 (java_optimize_inline): New.
7701 (dump_function): New.
7702
7703 2002-08-13 Jesse Rosenstock <jmr@fulcrummicro.com>
7704
7705 For PR java/7483:
7706 * parse.y (build_assertion): Invert return from
7707 desiredAssertionStatus.
7708
7709 2002-08-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
7710
7711 * jcf-write.c (get_access_flags): Return correct access flags for
7712 private and protected inner classes.
7713
7714 2002-08-08 Nathan Sidwell <nathan@codesourcery.com>
7715
7716 * java/Make-lang.in (java.mostlyclean): Remove coverage files.
7717
7718 2002-08-05 Geoffrey Keating <geoffk@redhat.com>
7719
7720 * mangle_name.c: Don't include obstack.h twice.
7721 * xref.c: Don't include obstack.h.
7722
7723 2002-08-04 Geoffrey Keating <geoffk@redhat.com>
7724
7725 * class.c: (permanent_obstack): Delete declaration.
7726 * constants.c: (permanent_obstack): Delete declaration.
7727 * except.c: (permanent_obstack): Delete declaration.
7728 * expr.c: (permanent_obstack): Delete declaration.
7729 * jcf-parse.c: (permanent_obstack): Delete declaration.
7730 (saveable_obstack): Delete declaration.
7731 * parse.h: (permanent_obstack): Delete declaration.
7732 * typeck.c: (permanent_obstack): Delete declaration.
7733
7734 2002-08-04 Joseph S. Myers <jsm@polyomino.org.uk>
7735
7736 * gcj.texi (version-gcc): Increase to 3.3.
7737
7738 2002-07-22 Tom Tromey <tromey@redhat.com>
7739
7740 * lex.c (java_lex): Check for `e' or `E' after 0.
7741
7742 2002-07-21 Richard Henderson <rth@redhat.com>
7743
7744 * lang.c (java_unsafe_for_reeval): New.
7745 (LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
7746
7747 2002-07-21 Neil Booth <neil@daikokuya.co.uk>
7748
7749 * jcf-path.c (GET_ENV_PATH_LIST): Remove.
7750 (jcf_path_init): Use GET_ENVIRONMENT.
7751
7752 2002-07-10 Roger Sayle <roger@eyesopen.com>
7753 Zack Weinberg <zack@codesourcery.com>
7754
7755 * builtins.c (initialize_builtins): Remove defines that
7756 handled C/C++ specific junk hereby removed from builtins.def.
7757
7758 2002-07-07 Neil Booth <neil@daikokuya.co.uk>
7759
7760 * lang.c (java_post_options): Update prototype.
7761
7762 2002-07-05 Roger Sayle <roger@eyesopen.com>
7763
7764 * builtins.c (initialize_builtins): Ignore the additional
7765 parameter to DEF_BUILTIN. Handle more C/C++ specific junk in
7766 the builtins.def file.
7767
7768 2002-07-01 Tom Tromey <tromey@redhat.com>
7769
7770 For PR libgcj/7073:
7771 * parse.y (patch_incomplete_class_ref): Handle VOID_TYPE
7772 specially.
7773
7774 2002-07-01 Roger Sayle <roger@eyesopen.com>
7775
7776 * java/decl.c (builtin_function): Accept additional parameter.
7777 (java_init_decl_processing): Pass an additional NULL_TREE
7778 argument to builtin_function.
7779
7780 2002-06-29 T.J. Mather <tjmather@maxmind.com>
7781
7782 * gcj.texi: Fixed gcj invocation example so that it compiles.
7783
7784 2002-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7785
7786 * lex.c (java_init_lex): Avoid incorrect hardcoded constant 11.
7787 * parse.y (mark_parser_ctxt): Likewise.
7788 (check_modifiers, declare_local_variables): Avoid incorrect
7789 hardcoded constant 10.
7790
7791 * lex.c (java_read_char): Avoid "comparison is always true"
7792 warning.
7793
7794 2002-06-25 Andreas Schwab <schwab@suse.de>
7795
7796 * expr.c (JSR): Avoid undefined operation on PC.
7797
7798 2002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7799
7800 * decl.c (clear_binding_level): Const-ify.
7801
7802 2002-06-13 Akim Demaille <akim@epita.fr>
7803
7804 * parse.y (class_declaration, interface_declaration): Make sure
7805 all their rules have an action, in order to avoid meaningless `$$
7806 = $1' and their type clashes.
7807
7808 2002-06-11 Tom Tromey <tromey@redhat.com>
7809
7810 * jcf-write.c (generate_classfile): Use FIELD_SYNTHETIC.
7811 * parse-scan.y (statement_without_trailing_substatement): Added
7812 assert_statement.
7813 (assert_statement): New rule.
7814 * java-tree.h (struct lang_type) [assertions]: New field.
7815 (TYPE_USES_ASSERTIONS): New macro.
7816 (CLASS_USES_ASSERTIONS): Likewise.
7817 (FIELD_SYNTHETIC): New define.
7818 * lex.c (java_lval;): Added ASSERT_TK.
7819 * parse.y (ASSERT_TK): Added.
7820 (statement_without_trailing_substatement): Added assert_statement.
7821 (assert_statement): New rule.
7822 (build_assertion): New function.
7823 (maybe_generate_pre_expand_clinit): Create and initialize
7824 $assertionsDisabled.
7825 (lookup_package_type): Removed decl.
7826 * keyword.h: Rebuilt.
7827 * keyword.gperf (assert): New token.
7828
7829 2002-06-10 Akim Demaille <akim@epita.fr>
7830
7831 * parse.y (interface_type_list, class_member_declaration)
7832 (unary_expression_not_plus_minus): Remove duplicate %type.
7833 Whitespace changes.
7834
7835 2002-06-09 Tom Tromey <tromey@redhat.com>
7836
7837 * Make-lang.in (java/lang.o): Use LANGHOOKS_DEF_H.
7838
7839 * parse.y (method_header): Give error message in all cases.
7840 Fixes PR java/6865.
7841
7842 2002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
7843
7844 Don't use RTL inlining. Fix for PR java/6820.
7845 * lang.c (LANG_HOOKS_POST_OPTIONS): Define.
7846 (flag_really_inline): New.
7847 (java_decode_option): Set flag_really_inline if -finline-functions
7848 is seen.
7849 (java_post_options): New function. Turn off inlining unless
7850 flag_really_inline is set.
7851
7852 2002-06-10 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
7853
7854 * gjavah.c (throwable_p): Accept argument as either a classname or
7855 signature fragment. Create null-terminated classname string for super
7856 when calling itself recursively.
7857 (decode_signature_piece): Skip first character from class name
7858 signature when calling throwable_p.
7859
7860 2002-06-08 H.J. Lu (hjl@gnu.org)
7861
7862 * jcf-path.c (jcf_path_init): Allocate 1 more byte for string.
7863
7864 2002-06-04 Tom Tromey <tromey@redhat.com>
7865
7866 * jcf-write.c (perform_relocations): Optmize a goto to a goto.
7867
7868 2002-06-04 Michael Koch <konqueror@gmx.de>
7869
7870 * gcj.texi (Input Options): Fixed typo.
7871
7872 2002-06-04 Zack Weinberg <zack@codesourcery.com>
7873
7874 * java-tree.h, class.c, expr.c, jcf-parse.c, parse.y,
7875 typeck.c, verify.c: Remove all #if JAVA_USE_HANDLES blocks,
7876 all mention of CLASS_TO_HANDLE_TYPE or HANDLE_TO_CLASS_TYPE,
7877 and all now-pointless local variables. Rename other local
7878 variables to reflect their not being handles.
7879
7880 * java-tree.h, jcf-dump.c, jcf-io.c: Remove all
7881 #if JCF_USE_STDIO blocks.
7882
7883 * parse.y: Add missing semicolon at end of rule.
7884
7885 2002-06-03 Geoffrey Keating <geoffk@redhat.com>
7886
7887 * check-init.c (attach_initialized_static_class): Delete, unused.
7888 * parse.y: Use htab_t instead of struct hashtable, update
7889 all uses.
7890 * java-tree.h: Include hashtab.h instead of hash.h.
7891 (struct lang_decl_func): Use htab_t, set up for gengtype.
7892 (struct init_test_hash_entry): Delete.
7893 (struct treetreehash_entry): New.
7894 (java_treetreehash_find): New
7895 (java_treetreehash_new): New prototype.
7896 (java_treetreehash_create): New prototype.
7897 (java_mark_tree): Delete prototype.
7898 (java_hash_hash_tree_node): Delete prototype.
7899 (java_hash_compare_tree_node): Delete prototype.
7900 (attach_initialized_static_class): Delete prototype.
7901 * expr.c (build_class_init): Update to use java_treetreehash
7902 functions.
7903 (java_expand_expr): Update to use htab_t.
7904 (emit_init_test_initialization): Likewise.
7905 * decl.c (java_mark_tree): Delete.
7906 * class.c (init_test_hash_newfunc): Delete.
7907 (java_hash_hash_tree_node): Delete.
7908 (java_hash_compare_tree_node): Delete.
7909 (add_method_1): Update to use java_treetreehash functions.
7910 (JAVA_TREEHASHHASH_H): New macro.
7911 (java_treetreehash_hash): New function.
7912 (java_treetreehash_compare): New function.
7913 (java_treetreehash_find): New function.
7914 (java_treetreehash_new): New function.
7915 (java_treetreehash_create): New function.
7916 * Make-lang.in (JAVA_TREE_H): Replace hash.h by HASHTAB_H.
7917
7918 * Make-lang.in (java/parse.o): Depend on debug.h.
7919 * java-tree.h (struct lang_identifier): Use gengtype.
7920 (union lang_tree_node): New.
7921 (struct lang_decl_func): Use gengtype.
7922 (struct lang_decl_var): Likewise.
7923 (struct lang_decl): Likewise.
7924 * parse.y: Include debug.h.
7925 * lang.c (LANG_HOOKS_MARK_TREE): Delete.
7926
7927 * lang.c (struct language_function): New dummy structure.
7928
7929 * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Set
7930 descriminator for DECL_LANG_SPECIFIC.
7931 (struct lang_decl_func): Rename from struct lang_decl.
7932 (enum lang_decl_desc): New.
7933 (struct lang_decl): Make it a union. Update all the accessor macros.
7934 (struct lang_type): Use gengtype.
7935 * class.c (add_method_1): Set descriminator for DECL_LANG_SPECIFIC.
7936 * decl.c (java_dup_lang_specific_decl): All lang_decl structures
7937 are now the same size.
7938 (lang_mark_tree): Use gengtype to mark TYPE_LANG_SPECIFIC;
7939 use discriminator to mark DECL_LANG_SPECIFIC.
7940
7941 * Make-lang.in (gt-java-builtins.h): New rule.
7942 (java/builtins.o): Add dependency on gt-<filename>.h.
7943 * builtins.c: Use gengtype for roots.
7944 (union string_or_tree): Use gengtype.
7945 (struct builtin_record): Use gengtype.
7946 * config-lang.in (gtfiles): Add builtins.c.
7947
7948 * Make-lang.in (gt-java-class.h, gt-java-constants.h,
7949 gt-java-decl.h, gt-java-expr.h, gt-java-jcf-parse.h,
7950 gt-java-jcf-write.h, gt-java-lang.h, gt-java-mangle.h,
7951 gt-java-parse.h, gtype-java.h): Add rules to generate.
7952 (parse.o): Add dependency on gt-java-parse.h, gt-java.h.
7953 (class.o): Add dependency on gt-*.h.
7954 (constants.o): Likewise.
7955 (decl.o): Likewise.
7956 (expr.o): Likewise.
7957 (jcf-parse.o): Likewise.
7958 (jcf-write.o): Likewise.
7959 (lang.o): Likewise.
7960 * config-lang.in (gtfiles): New.
7961 * class.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
7962 * constants.c: Replace uses of ggc_add_* with GTY markers.
7963 Include gt-*.h.
7964 * decl.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
7965 * expr.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
7966 * java-tree.h: Replace uses of ggc_add_* with GTY markers.
7967 * jcf-parse.c: Replace uses of ggc_add_* with GTY markers.
7968 Include gt-*.h.
7969 * jcf-write.c: Replace uses of ggc_add_* with GTY markers.
7970 Include gt-*.h.
7971 * lang.c: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
7972 * mangle.c: Replace uses of ggc_add_* with GTY markers. Include
7973 gt-*.h.
7974 * parse.y: Replace uses of ggc_add_* with GTY markers. Include gt-*.h.
7975 Include gtype-java.h.
7976
7977 2002-06-02 Tom Tromey <tromey@redhat.com>
7978
7979 Fix for PR java/5913:
7980 * parse.y (patch_binop): Call patch_string on op1.
7981
7982 2002-06-02 Tom Tromey <tromey@redhat.com>
7983
7984 Fix for PR java/1343, PR java/6336:
7985 * parse.y (make_nested_class_name): Remove extraneous `else'; fix
7986 formatting. Changed return type.
7987 (anonymous_class_counter): Moved to top of file.
7988 (maybe_make_nested_class_name): Append number to class name for
7989 function-local classes.
7990
7991 2002-05-28 Zack Weinberg <zack@codesourcery.com>
7992
7993 * decl.c, jcf-parse.c, parse.y, typeck.c: Include real.h.
7994 * Make-lang.in: Update dependency lists.
7995
7996 2002-05-18 Mark Mitchell <mark@codesourcery.com>
7997
7998 * gjavah.c (throwable_p): Do not free the name of the class after
7999 passing it to find_class.
8000 * java-tree.h (CLASS_BEING_LAIDOUT): Remove duplicate definition.
8001 * jcf-io.c (dirent.h): Include it.
8002 (fnmatch.h): Likewise.
8003 (compare_path): New function.
8004 (java_or_class_file): Likewise.
8005 (memoized_dirlist_entry): New type.
8006 (memoized_dirlist_lookup_eq): New function.
8007 (memoized_dirlists): New variable.
8008 (caching_stat): New function.
8009 (memoized_class_lookup_eq): New function.
8010 (memoized_class_lookups): Likewise.
8011 (find_class): Use memoized_class_lookups and caching_stat.
8012 * jcf.h (JCF_USE_SCANDIR): Define.
8013 * parse.y (java_expand_classes): Write the class files in reverse
8014 order.
8015
8016 2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8017
8018 * Make-lang.in: Allow for PWDCMD to override hardcoded pwd.
8019
8020 2002-05-13 Mark Mitchell <mark@codesourcery.com>
8021
8022 * jcf-write.c (write_classfile): Unlink the temporary file if it
8023 cannot be renamed. Use concat to build up the name of the
8024 temporary file.
8025
8026 2002-05-08 Mark Mitchell <mark@codesourcery.com>
8027
8028 * jcf-write.c (write_classfile): Write the file to a
8029 temporary file and then rename it.
8030
8031 2002-05-07 Tom Tromey <tromey@redhat.com>
8032
8033 * gjavah.c (throwable_p): Use xstrdup, not strdup.
8034
8035 Fix for PR java/1200:
8036 * gjavah.c (throwable_p): New function.
8037 (decode_signature_piece): Use it. A `WeakReference' isn't the
8038 same as a `jweak'.
8039 Include hashtab.h.
8040 (gcjh_streq): New function.
8041
8042 2002-05-07 Andreas Jaeger <aj@suse.de>
8043
8044 * parse.y (finish_for_loop): Fix if statement.
8045
8046 2002-05-06 Tom Tromey <tromey@redhat.com>
8047
8048 Fix for PR java/5941:
8049 * parse.y (finish_for_loop): Set SUPPRESS_UNREACHABLE_ERROR for
8050 loop update expression.
8051 (java_complete_lhs): Use SUPPRESS_UNREACHABLE_ERROR.
8052 * java-tree.h (SUPPRESS_UNREACHABLE_ERROR): New macro.
8053
8054 2002-05-04 Mark Wielaard <mark@klomp.org>
8055
8056 For PR java/6519:
8057 * parse.y (build_string_concatenation): Return just op1 only when op2
8058 is null and op1 is a STRING_CST, otherwise always construct a
8059 StringBuffer.
8060
8061 2002-04-27 Tom Tromey <tromey@redhat.com>
8062
8063 For PR java/6382:
8064 * parse.y (string_convert_int_cst): New function.
8065 (merge_string_cste): Use it.
8066
8067 2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
8068
8069 * java-tree.h (java_parse_file): Update.
8070 (java_set_yydebug): Remove.
8071 * jcf-parse.c (yydebug): Remove.
8072 (java_set_yydebug): Die.
8073 (java_parse_file): Update.
8074 * lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
8075
8076 2002-04-24 Tom Tromey <tromey@redhat.com>
8077
8078 For PR java/6425:
8079 * parse.y (qualify_ambiguous_name) [case CALL_EXPR]: Always choose
8080 EXPR_WFL_QUALIFICATION of qual_wfl.
8081
8082 2002-04-23 Per Bothner <per@bothner.com>
8083
8084 * expr.c (PRE_JSR): Call NOTE_LABEL for return address.
8085 * java-tree.h (BCODE_RETURN_TARGET): Removed - never set.
8086 (BCODE_TARGET): Remove BCODE_RETURN_TARGET.
8087
8088 2002-04-23 Tom Tromey <tromey@redhat.com>
8089
8090 For PR java/6314:
8091 * jvspec.c (lang_specific_driver): Use --resource, not -R. Also
8092 recognize `-fcompile-resource='.
8093 * gcj.texi (Invoking gcj): Use --resource, not -R. Expanded text
8094 a bit.
8095
8096 2002-04-22 Alexandre Petit-Bianco <apbianco@redhat.com>
8097
8098 * jcf-parse.c: (yyparse): Don't prepend "./" to relative
8099 paths. Fixes PR java/2791.
8100
8101 2002-04-19 Andrew Haley <aph@redhat.com>
8102
8103 * jcf-write.c (push_long_const): lo, hi: New variables.
8104 Use rshift_double to extract the high part of a 64-bit long.
8105 Use WORD_TO_INT to extract the low part.
8106
8107 * jcf-parse.c (get_constant): CONSTANT_Integer: Use an unsigned
8108 HOST_WIDE_INT for num. Use JPOOL_UINT to get it.
8109 CONSTANT_Double: Use JPOOL_UINT to get both halve of a double.
8110
8111 2002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
8112
8113 * typeck.c (incomplete_type_error): Remove.
8114
8115 2002-04-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8116
8117 * class.c (make_class_data): Set DECL_ALIGN on static class data,
8118 for hash synchronization.
8119 * expr.c (java_expand_expr): Set DECL_ALIGN on static array objects.
8120 * decl.c (java_init_decl_processing): Don't set TYPE_ALIGN for
8121 class_type_node.
8122
8123 2002-04-16 Mark Wielaard <mark@klomp.org>
8124
8125 * jcf-write.c (generate_bytecode_insns): Only write const_0 if not
8126 negative zero.
8127
8128 2002-04-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8129
8130 Fix for PR java/6294:
8131 * parse.h (INNER_INTERFACE_MODIFIERS): Allow ACC_PRIVATE for inner
8132 interfaces.
8133
8134 2002-04-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8135
8136 Fix for PR java/6085:
8137 * parse.y (patch_method_invocation): Always use build_access_to_thisn
8138 to get enclosing "this" argument for inner-class constructor
8139 invocation. Pass correct arguments to build_access_to_thisn.
8140
8141 2002-04-10 Andreas Jaeger <aj@suse.de>
8142
8143 * gcj.texi (Input Options): Fix extdirs patch.
8144
8145 2002-04-10 Anthony Green <green@redhat.com>
8146
8147 * jcf-path.c (jcf_path_init) : Clean up local extdirs declaration.
8148
8149 2002-04-09 Anthony Green <green@redhat.com>
8150
8151 * gcj.texi (Input Options): Add --extdirs documentation.
8152 * jcf-dump.c (OPT_extdirs): New macro.
8153 (options): Add extdirs option.
8154 (help): Describe --extdirs.
8155 (main): Handle OPT_extdirs.
8156 * gjavah.c (OPT_extdirs): New macro.
8157 (options): Add extdirs option.
8158 (help): Describe --extdirs.
8159 (main): Handle OPT_extdirs.
8160 * jcf-path.c (jcf_path_init): Add extdirs support.
8161 (jcf_path_extdirs_arg): New function.
8162 (extensions): New variable to hold extensions path entries.
8163 * jvspec.c: Remove -fextdirs= when compiling main().
8164 * lang.c (java_decode_option): Handle -fextdirs=.
8165 * jcf.h (jcf_path_extdirs_arg): Declare new function.
8166 * Make-lang.in: Compile jcf-path with version info for use in
8167 identifying the appropriate libgcj.jar.
8168
8169 2002-04-08 Tom Tromey <tromey@redhat.com>
8170
8171 For PR libgcj/5303:
8172 * .cvsignore: Added rmic.1 and rmiregistry.1.
8173 * gcj.texi (Top): Link to new nodes.
8174 (Invoking rmic): New node.
8175 (Invoking rmiregistry): Likewise.
8176 * Make-lang.in (java.generated-manpages): Added rmic.1 and
8177 rmiregistry.1.
8178 (java.maintainer-clean): Likewise.
8179 ($(srcdir)/java/rmic.1): New target.
8180 ($(srcdir)/java/rmiregistry.1): Likewise.
8181 (java.install-man): Handle rmic.1 and rmiregistry.1.
8182
8183 2002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8184
8185 * gcj.texi (Invocation): Update JvAttachCurrentThread documentation.
8186 Add note about handling uncaught exceptions. Add an exception handler
8187 to example.
8188
8189 2002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8190
8191 * parse.y (resolve_qualified_expression_name): Clear "from_super" flag
8192 after using it to patch CALL_EXPR.
8193
8194 2002-04-08 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8195
8196 * gcj.texi (Invocation): Document CNI invocation API.
8197
8198 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
8199
8200 * expr.c (truthvalue_conversion): Rename. Update.
8201 (expand_compare): Update.
8202 * java-tree.h (java_truthvalue_conversion): New.
8203 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
8204
8205 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
8206
8207 * java-tree.h (java_mark_addressable): New.
8208 * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
8209 * typeck.c (mark_addressable): Rename, update.
8210
8211 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
8212
8213 * expr.c (build_java_binop): Update.
8214 * java-tree.h (java_signed_type, java_unsigned_type,
8215 java_signed_or_unsigned_type): Update.
8216 * lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
8217 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
8218 * parse.y (patch_binop): Update.
8219 * typeck.c (signed_or_unsigned_type, unsigned_type,
8220 signed_type): Update.
8221
8222 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
8223
8224 * lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
8225 (java_dummy_print): Remove.
8226 (lang_print_error): Rename. Exit early if inhibiting output.
8227 (inhibit_error_printing_function): New.
8228 (java_init): Don't set hook.
8229 (lang_init_source): Use new boolean.
8230
8231 2002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
8232
8233 * parse.y (do_resolve_class): Fix infinite recursion.
8234
8235 2002-03-29 Tom Tromey <tromey@redhat.com>
8236
8237 * parse.y (check_inner_circular_reference): Ignore incomplete
8238 types.
8239
8240 2002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
8241
8242 * Make-lang.in (builtins.o): Update.
8243 * boehm.c (get_boehm_type_descriptor): Update.
8244 * builtins.c: Include langhooks.h.
8245 * decl.c (java_init_decl_processing): Update.
8246 * java-tree.h (java_type_for_mode, java_type_for_size): New.
8247 * lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
8248 Redefine.
8249 * typeck.c (type_for_mode, type_for_size): Update.
8250
8251 2002-03-29 Martin Kahlert <martin.kahlert@infineon.com>
8252
8253 * lex.c (java_new_lexer): Alias "646" to DEFAULT_ENCODING.
8254
8255 2002-03-28 Tom Tromey <tromey@redhat.com>
8256
8257 * except.c (expand_end_java_handler): If the handler type is NULL,
8258 use java.lang.Throwable. Fixes PR java/5986.
8259
8260 2002-03-28 Alexandre Petit-Bianco <apbianco@redhat.com>
8261
8262 Fix for PR java/4715:
8263 * jcf-parse.c (parse_source_file_3): New function.
8264 (read_class): Call it.
8265 (java_parse_file): Likewise.
8266
8267 2002-03-28 Jan Hubicka <jh@suse.cz>
8268
8269 * java/lang.c (java_init_options): Set flag_trapping_math to 0.
8270
8271 2002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8272
8273 * parse.y (resolve_package): Initialize "decl".
8274 (lookup_package_type): Remove unused function.
8275
8276 2002-03-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8277
8278 Fix for PR java/5993:
8279 * parse.y (resolve_package): Return the decl if resolution was
8280 successful. Don't special case "java.lang" and "java.lang.reflect"
8281 packages. Set type_name to the merged identifier.
8282 (resolved_qualified_expression_name): Print error using "name" if
8283 resolve_package returns NULL_TREE.
8284
8285 2002-03-27 Tom Tromey <tromey@redhat.com>
8286
8287 * expr.c (expand_invoke): Don't generate null pointer check if
8288 we're calling <init>.
8289
8290 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
8291
8292 * expr.c (java_lang_expand_expr): Rename java_expand_expr,
8293 fix prototype.
8294 * java-tree.h (java_lang_expand_expr): Similarly.
8295 * lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
8296 (java_init): Don't set hook.
8297
8298 2002-03-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8299
8300 Fix for PR java/5850:
8301 * parse.y (lookup_field_wrapper): Call itself recursively for enclosing
8302 context if field was not found in the current scope.
8303 * expr.c (lookup_field): Don't look in enclosing contexts.
8304
8305 2002-03-26 Tom Tromey <tromey@redhat.com>
8306
8307 Fix for PR java/5942:
8308 * parse.y (init_src_parse): Added sanity check.
8309 * parse.h (struct parser_ctxt) [modifier_ctx]: Array has 12
8310 elements, not 11.
8311
8312 2002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
8313
8314 * decl.c (lang_mark_tree): Rename java_mark_tree.
8315 * java-tree.h (java_mark_tree): New.
8316 * java-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
8317
8318 2002-03-25 Zack Weinberg <zack@codesourcery.com>
8319
8320 * lex.c: Change java_perform_atof to take normal parameters
8321 instead of a pointer to a parameter block. Call it directly
8322 from java_lex.
8323
8324 2002-03-22 Mark Wielaard <mark@klomp.org>
8325
8326 Fix for PR java/5368:
8327 * parse.y (resolve_qualified_expression_name): Use decl not field_decl
8328 when printing error message.
8329
8330 2002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
8331
8332 * decl.c (maybe_build_cleanup): Remove.
8333
8334 2002-03-22 Tom Tromey <tromey@redhat.com>
8335
8336 Andrew Haley <aph@cambridge.redhat.com>
8337
8338 * expr.c (build_field_ref): Don't build a check if the field is a
8339 member of `this'.
8340
8341 2002-03-21 Eric Blake <ebb9@email.byu.edu>
8342
8343 Fix for PR java/6026:
8344 * lex.c (java_lex): Fix parsing of consecutive floats.
8345
8346 2002-03-21 Tom Tromey <tromey@redhat.com>
8347
8348 * parse.y (build_access_to_thisn): Stop when FROM is not an inner
8349 class.
8350
8351 2002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
8352
8353 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
8354 insert_block, getdecls, kept_level_p, global_bindings_p): New.
8355
8356 2002-03-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
8357
8358 * gcj.texi: @code{gcj} becomes @command{gcj}.
8359 @code{gcc} becomes @command{gcc}.
8360 GcjRaw changed to gnu.gcc.RawData.
8361
8362 2002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
8363
8364 * decl.c (start_java_method): Use new hook.
8365 * lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
8366 (java_init): Remove old hook.
8367
8368 2002-03-18 Alexandre Petit-Bianco <apbianco@redhat.com>
8369
8370 * builtins.c (define_builtin): Do nothing if `type' is null.
8371 Fixes PR java/5876.
8372
8373 2002-03-18 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8374
8375 * parse.y (parser_check_super_interface): Fix error message
8376 grammar/order.
8377
8378 2002-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8379
8380 * jcf-parse.c (get_constant): Delete unused variables.
8381
8382 2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
8383
8384 * java-tree.h (java_parse_file): New.
8385 * jcf-parse.c (yyparse): Rename java_parse_file.
8386 * lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
8387
8388 2002-03-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8389
8390 * parse.y (craft_constructor): Return the constructor decl.
8391 (java_expand_classes): Update comments.
8392 (lookup_method_invoke): Call fix_constructors immediately for
8393 anonymous class. Fixes PR java/5935.
8394
8395 2002-03-15 Anthony Green <green@redhat.com>
8396
8397 * jcf-parse.c (yyparse): Don't emit class registration
8398 constructor when compiling resource files.
8399
8400 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8401
8402 * lang.c (java_tree_code_type, java_tree_code_length,
8403 tree_code_name): Delete.
8404 (tree_code_type, tree_code_length, tree_code_name): Define.
8405 (java_init): Don't try to copy into the various tree_code
8406 arrays.
8407
8408 2002-03-12 Tom Tromey <tromey@redhat.com>
8409
8410 * jcf-parse.c (get_constant) [CONSTANT_String]: String values are
8411 UTF-8, not UCS-2. Fixes PR java/5923.
8412
8413 * parse.y (qualify_ambiguous_name): Handle case where QUAL_WFL is
8414 a call_expr wrapped in a convert. Fixes PR java/5848.
8415
8416 2002-03-12 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8417
8418 * jcf-write.c (write_classfile): Improve error strings.
8419
8420 2002-03-11 Eric Blake <ebb9@email.byu.edu>
8421
8422 * lex.c: Adjust comments to GNU standards.
8423
8424 2002-03-11 Eric Blake <ebb9@email.byu.edu>
8425
8426 Fix for PR java/5902:
8427 * lex.c (java_lex): Fix parsing of literals.
8428
8429 2002-03-11 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8430
8431 * parse.y (patch_assignment): Wrap the right-hand-side with a save_expr
8432 to prevent it getting evaluated twice in the store checking case.
8433 * expr.c (build_java_arraystore_check): Unwrap SAVE_EXPR's when
8434 examining OBJECT.
8435
8436 2002-03-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8437
8438 * decl.c (java_init_decl_processing): Make sure class_type_node
8439 alignment is not less than 64 bits if hash synchronization is enabled.
8440
8441 2002-03-08 Per Bothner <per@bothner.com>
8442
8443 * parse.y (java_complete_lhs): Check if patch_assignment
8444 returned an error-mark.
8445
8446 * parse.y (try_builtin_assignconv): Don't special-case zero.
8447
8448 2002-03-08 Per Bothner <per@bothner.com>
8449
8450 Fix for PR java/5812.
8451 * expr.c (build_java_jsr): Take pc arguments, and do lookup_label
8452 here instead of in JSR macro. Likewise with load_type_state call.
8453 Do the latter on if the return_pc has been verified (the jsr returns).
8454 (JSR): Now just call build_java_jsr.
8455
8456 2002-03-07 Jeff Sturm <jsturm@one-point.com>
8457
8458 * java/Make-lang.in (JAVA_TARGET_INSTALL_NAME): Define.
8459 (java.install-common): Link native driver to
8460 JAVA_TARGET_INSTALL_NAME.
8461
8462 2002-03-05 David Billinghurst <David.Billinghurst@riotinto.com>
8463
8464 * builtins.c(cos_builtin): method_return_type ATTRIBUTE_UNUSED
8465 * builtins.c(sin_builtin): Likewise
8466 * builtins.c(sqrt_builtin): Likewise
8467
8468 2002-03-03 Zack Weinberg <zack@codesourcery.com>
8469
8470 * java/expr.c, java/jcf-parse.c, java/lex.c:
8471 Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
8472 REAL_ARITHMETIC blocks unconditional. Delete some further
8473 #ifdef blocks predicated on REAL_ARITHMETIC.
8474
8475 2002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8476
8477 * class.c (init_class_processing): Use ARRAY_SIZE in lieu of
8478 explicit sizeof/sizeof.
8479 * decl.c (java_init_decl_processing): Likewise.
8480 * jcf-parse.c (init_jcf_parse): Likewise.
8481 * parse.y (init_src_parse): Likewise.
8482
8483 2002-03-02 Per Bothner <per@bothner.com>
8484
8485 Make --CLASSPATH by a synonym for --classpath and -classpath.
8486 Implement --bootclasspath.
8487 * jcf-path.c (classpath_u): Rename static variable to classpath_user.
8488 (classpath_l): Remove.
8489 (jcf_path_CLASSPATH_arg): Remove.
8490 (jcf_path_bootclasspath_arg): New function.
8491 (jcf_path_seal): Simplify accordingly.
8492
8493 * jcf.h (jcf_path_bootclasspath_arg): New declarations.
8494 (jcf_path_CLASSPATH): Remove declaration.
8495 * jvspec.c (jvgenmain_spec): Also accept -fbootclasspath*.
8496 (lang_specific_driver): Translate -bootclasspath.
8497 * lang-options.h: Add --bootclasspath. Update --CLASSPATH.
8498 * lang.c (decode_lang_options): Do jcf_path_init first.
8499 Handle -fCLASSPATH same as -fclasspath. Also process -fbootclasspath.
8500 * gjavah.c: Also handle --bootclasspath.
8501 Handle --CLASSPATH as a synonum for --classpath.
8502 * jcf-dump.c: Likewise.
8503
8504 "." is not part of system path, but is the default for --classpath.
8505 * jcf-path.c (jcf_path_init): Don't add "." to sys_dirs.
8506 (jcf_path_seal): Add "." if no CLASSPATH specified.
8507
8508 * gcj.texi: Document changes.
8509
8510 2002-03-01 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8511
8512 * expr.c (build_java_arraystore_check): Fix formatting.
8513
8514 2002-02-28 Alexandre Petit-Bianco <apbianco@redhat.com>
8515
8516 Fix for PR java/5758, java/5632:
8517 * jcf-parse.c (load_class): Renamed local variable, consider `.' an
8518 inner-class separator too.
8519 * parse.y (do_resolve_class): New local `decl_result.'
8520 Progressively build a name for what can have been loaded.
8521
8522 2002-02-28 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8523
8524 * expr.c (java_array_data_offset): Removed function.
8525 (JAVA_ARRAY_LENGTH_OFFSET): Removed macro.
8526 (build_java_array_length_access): Obtain "length" value using a
8527 COMPONENT_REF, instead of INDIRECT_REF and arithmetic.
8528 (build_java_arrayaccess): Correct comment. Access "data" using a
8529 COMPONENT_REF, and return an ARRAY_REF instead of an INDIRECT_REF.
8530 (build_java_arraystore_check): New function.
8531 (expand_java_arraystore): Use build_java_arraystore_check.
8532 * parse.y (patch_assignment): Simplify code to insert a store check
8533 when lvalue is an ARRAY_REF. Use build_java_arraystore_check.
8534 * check-init.c (check_init): Update to reflect that an array length
8535 access is now a COMPONENT_REF.
8536 * gcj.texi (Code Generation): Improve documentation of
8537 -fno-bounds-check. Add documentation for -fno-store-check.
8538 * java-tree.h (flag_store_check): Declare.
8539 (build_java_arraystore_check): Declare.
8540 * lang.c (flag_store_check): Initialize to 1.
8541 (lang_f_options): Add store-check option.
8542 * jvspec.c: Don't pass store-check option to jvgenmain.
8543 * lang-options.h: Add help string for -fno-store-check.
8544
8545 2002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
8546
8547 * decl.c (copy_lang_decl): Rename java_dup_lang_specific_decl.
8548 * java-tree.h (java_dup_lang_specific_decl): New.
8549 * lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
8550
8551 2002-02-27 Zack Weinberg <zack@codesourcery.com>
8552
8553 * builtins.c, decl.c: Delete traditional-mode-related code
8554 copied from the C front end but not used, or used only to
8555 permit the compiler to link.
8556
8557 2002-02-22 Tom Tromey <tromey@redhat.com>
8558
8559 Fix for PR java/2369:
8560 * jvspec.c (verify_class_name): New function.
8561 (lang_specific_driver): Call it.
8562 (JAVA_START_CHAR_P): New macro.
8563 (JAVA_PART_CHAR_P): Likewise.
8564
8565 2002-02-22 Per Bothner <per@bothner.com>
8566
8567 * class.c: Change vtable to be more compatible with g++ v3 abi.
8568 (get_dispatch_table): Prepend offset-to-top (always 0) and
8569 type_info pointer (currently unimplemented hence NULL) to vtable.
8570 Specifically, prepend offset-to-top and typeinfo ptr (currently null).
8571 (make_class_data): Variable dtable_start_offset is sizeof 2 pointers.
8572 Adjust vtable pointers by dtable_start_offse - i.e. skip new words.
8573 (build_dtable_decl): Add declarations for new fields.
8574
8575 2002-02-20 Per Bothner <per@bothner.com>
8576
8577 * parse.y (patch_method_invocation): Set CAN_COMPLETE_NORMALLY on call
8578 to finit$ (otherwise generate_bytecode_insns drops it). However, we
8579 don't need to set it on the COMPOUND_EXPR - the caller does that.
8580
8581 2002-02-20 Nic Ferrier <nferrier@tapsellferrier.co.uk>
8582
8583 * gcj.texi: Option `--classpath' becomes `--CLASSPATH.'Option
8584 `--CLASSPATH' becomes `--classpath.'
8585 * gjavah.c: Likewise.
8586 * jcf-dump.c: Likewise.
8587 * lang-options.h: Likewise.
8588 * lang.c: Likewise.
8589 * jcf-path.c: Updated comment.
8590 (jcf_path_classpath_arg): Renamed `jcf_path_CLASSPATH_arg.'
8591 (jcf_path_CLASSPATH_arg): Renamed `jcf_path_classpath_arg.'
8592 * jcf.h (jcf_path_CLASSPATH_arg): Ditto.
8593 (jcf_path_CLASSPATH_arg): Ditto.
8594 (classpath_u): Updated leading comment.
8595
8596 2002-02-20 Per Bothner <per@bothner.com>
8597
8598 * builtins.c (check_for_builtin): New function.
8599 (build_call_or_builtin): Remove.
8600 * java-tree.h: Update accordingly.
8601 * expr.c (expand_invoke): Use build + check_for_builtin instead
8602 of build_call_or_builtin.
8603 * parse.y (patch_invoke): Likewise. This avoids needlessly creating
8604 a new CALL_EXPR node, which means we don't lose the CALL_USING_SUPER
8605 flag (which had caused jcf-write to incorrectly emit invokevirtual).
8606
8607 2002-02-17 Tom Tromey <tromey@redhat.com>
8608
8609 * java-tree.h (TYPE_STRICTFP): New macro.
8610 (struct lang_type) [strictfp]: New field.
8611 (CLASS_STRICTFP): New macro.
8612 (METHOD_STRICTFP): New macro.
8613 (struct lang_decl) [strictfp]: New field.
8614 * parse.y (method_header): Disallow strictfp constructor or
8615 abstract method.
8616 (STRICT_TK): Move before MODIFIER_TK.
8617 * parse.h (CLASS_MODIFIERS): Added ACC_STRICT.
8618 (METHOD_MODIFIERS): Likewise.
8619 (INTERFACE_MODIFIERS): Likewise.
8620 * jcf-write.c (get_access_flags): Likewise.
8621 * class.c (set_class_decl_access_flags): Recognize ACC_STRICT.
8622 (add_method_1): Likewise.
8623 (get_access_flags_from_decl): Likewise.
8624 * jcf-dump.c (print_access_flags): Print in standard order. Also,
8625 recognize strictfp flag.
8626 * jcf.h (ACC_STRICT): New define.
8627
8628 2002-02-12 David Billinghurst <Davod.Billinghurst@riotinto.com>
8629
8630 * class.c(build_utf8_ref): Move declaration of decl_size
8631
8632 2002-02-07 Tom Tromey <tromey@redhat.com>
8633
8634 * gcj.texi (Input Options): --CLASSPATH does not suppress system
8635 path.
8636
8637 2002-02-04 Anthony Green <green@redhat.com>
8638
8639 * class.c (build_utf8_ref): Put UTF-8 constants into merged
8640 sections if available.
8641
8642 2002-02-04 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8643
8644 * parse.y (java_expand_classes): Fix typo in static field loop.
8645
8646 2002-02-02 Richard Henderson <rth@redhat.com>
8647
8648 * class.c (add_field): Mark static fields external.
8649 (build_class_ref): Remove redundant set.
8650 * parse.y (java_expand_classes): Mark static fields of classes
8651 to be compiled as local.
8652 * jcf-parse.c (parse_class_file): Likewise.
8653
8654 2002-02-02 Nic Ferrier <nferrier@tapsellferrier.co.uk>
8655
8656 * gcj.texi (About CNI): New node.
8657
8658 2002-02-01 Craig Rodrigues <rodrigc@gcc.gnu.org>
8659
8660 PR java/5080
8661 * jcf-parse.c : Check for HAVE_LOCALE_H before using
8662 setlocale() with LC_CTYPE as a parameter.
8663 * jv-scan.c: Same.
8664
8665 2002-01-31 Joseph S. Myers <jsm28@cam.ac.uk>
8666
8667 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
8668 Follow GNU Coding Standards for --version.
8669
8670 2002-01-28 Tom Tromey <tromey@redhat.com>
8671
8672 * expr.c (build_jni_stub): Ensure storage for `meth' is
8673 generated.
8674 * parse.y (java_complete_expand_methods): Set
8675 current_function_decl before building JNI stub.
8676
8677 2002-01-26 Andreas Tobler <a.tobler@schweiz.ch>
8678
8679 * gcc/java/builtins.c (sqrt_builtin): Use BUILT_IN_SQRT, not
8680 BUILT_IN_SQRTF.
8681
8682 2002-01-22 Tom Tromey <tromey@redhat.com>
8683
8684 * decl.c (java_init_decl_processing): Use add_predefined_file.
8685 Predefine RawData.java.
8686 (predef_filenames): Removed.
8687 (java_init_decl_processing): Don't register predef_filenames.
8688 * jcf-parse.c (add_predefined_file): New function.
8689 (predefined_filename_p): Rewrote.
8690 (predefined_filename_p): No longer static.
8691 * decl.c (java_init_decl_processing): Call initialize_builtins.
8692 * Make-lang.in (JAVA_OBJS): Added builtins.o.
8693 (java/builtins.o): New target.
8694 * builtins.c: New file.
8695 * parse.y (patch_invoke): Use build_call_or_builtin.
8696 * java-tree.h (build_call_or_builtin): Declare.
8697 (initialize_builtins): Declare.
8698 (java_set_exception_lang_code): Removed unused declaration.
8699 (PREDEF_FILENAMES_SIZE): Removed.
8700 (java_tree_index): Added JTI_PREDEF_FILENAMES.
8701 (predef_filenames): New define.
8702 (add_predefined_file): Declare.
8703 (predefined_filename_p): Declare.
8704 * expr.c (expand_invoke): Use build_call_or_builtin.
8705
8706 2002-01-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8707
8708 * parse.y (patch_switch_statement): Fix format specifier.
8709
8710 2002-01-16 Tom Tromey <tromey@redhat.com>
8711
8712 More for PR java/5365:
8713 * gjavah.c (print_stub_or_jni): Cause exception to be thrown by
8714 default.
8715 (process_file): Generate include for
8716 java.lang.UnsupportedOperationExceptions.
8717
8718 2002-01-15 Andreas Jaeger <aj@suse.de>
8719
8720 * .cvsignore: Add man pages.
8721
8722 2002-01-15 Tom Tromey <tromey@redhat.com>
8723
8724 Fix for PR java/5365:
8725 * gjavah.c (process_file): Turn class name into a file name.
8726
8727 2002-01-14 Matthias Klose <doko@debian.org>
8728
8729 * gcj.texi: Fix whitespace and formatting errors in the
8730 synopsis of the man pages. Update copyright.
8731
8732 2002-01-14 Tom Tromey <tromey@redhat.com>
8733
8734 For PR libgcj/5303:
8735 * Make-lang.in (java.install-man): Handle jv-convert man page.
8736 (java.generated-manpages): Added jv-convert.1.
8737 (java.uninstall): Remove jv-convert.1.
8738 (java.maintainer-clean): Likewise.
8739 ($(srcdir)/java/jv-convert.1): New target.
8740 * gcj.texi (Top): Link to jv-convert node.
8741 (Individual utilities): Likewise.
8742 (Invoking jv-convert): New node.
8743
8744 2001-01-10 Jeff Sturm <jsturm@one-point.com>
8745 Martin Kahlert <martin.kahlert@infineon.com>
8746
8747 * jcf-parse.c (get_constant): Don't swap lo/hi for big
8748 endian targets when HOST_BITS_PER_WIDE_INT >= 64.
8749
8750 2002-01-03 Graham Stott <grahams@redhat.com>
8751
8752 * class.c (compile_resource_file): Update copyright date.
8753 Constify filename parameter.
8754 (java-tree.h): Update copyright date.
8755 (compile_resource_file): Constify filename parameter.
8756
8757 2002-01-03 Graham Stott <grahams@redhat.com>
8758
8759 * gcc/jcf-parse.c: Update copyright date.
8760 (yyparse): Constify resource_filename.
8761
8762 2002-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8763
8764 * parse.y (src_parse_roots): Don't needlessly zero init.
8765
8766 2001-12-31 Tom Tromey <tromey@redhat.com>
8767
8768 * parse.y (dump_java_tree): New function.
8769 (source_end_java_method): Call it.
8770 (end_class_declaration): Likewise.
8771 * lang.c (java_decode_option): Call dump_switch_p.
8772
8773 2001-12-28 Tom Tromey <tromey@redhat.com>
8774
8775 * gen-table.pl: Don't process characters after \uffff. Added
8776 comment pointing to input file.
8777
8778 2001-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8779
8780 * gen-table.pl: Const-ify output. Document the location of a
8781 suitable unicode input file.
8782
8783 * chartables.h: Regenerate.
8784
8785 2001-12-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8786
8787 * chartables.h: Const-ify.
8788 * gjavah.c (options): Likewise.
8789 * jcf-dump.c (options): Likewise.
8790 * jv-scan.c (options): Likewise.
8791 * lex.c (java_start_char_p, java_part_char_p): Likewise.
8792 * parse.y (binop_lookup): Likewise.
8793
8794 2001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8795
8796 * Make-lang.in (keyword.h): Pass -C to gperf to const-ify
8797 the static arrays that are output.
8798 * jvspec.c (jvgenmain_spec): Make static.
8799 * keyword.gperf (struct java_keyword, java_keyword): Const-ify.
8800 * keyword.h: Regenerate.
8801 * lang.c (string_option, process_option_with_no, lang_f_options,
8802 lang_W_options): Const-ify.
8803 * lex.c (java_lex): Likewise.
8804
8805 2001-12-21 Richard Henderson <rth@redhat.com>
8806
8807 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Merge into ..
8808 (get_boehm_type_descriptor): ... here. Arrange for the
8809 TREE_TYPE to get set properly.
8810
8811 2001-12-21 Richard Henderson <rth@redhat.com>
8812
8813 * class.c (compile_resource_file): Set TREE_PUBLIC on the constructor
8814 only if the target requires collect2.
8815
8816 * class.c (build_class_ref): Mark _Jv_fooClass DECL_EXTERNAL.
8817
8818 2001-12-20 Tom Tromey <tromey@redhat.com>
8819
8820 For PR java/4509:
8821 * parse.y (java_complete_lhs) [COMPOUND_EXPR]: Correctly compute
8822 CAN_COMPLETE_NORMALLY for the node.
8823 * jcf-write.c (generate_bytecode_insns) [COMPOUND_EXPR]: Don't
8824 generate code for second branch if first branch can't complete
8825 normally.
8826 (generate_bytecode_insns) [LOOP_EXPR]: Don't generate `goto' to
8827 the loop head if the loop body can't complete normally.
8828
8829 2001-12-20 Tom Tromey <tromey@redhat.com>
8830
8831 For PR java/4766:
8832 * jcf-write.c (generate_bytecode_insns) [TRY_FINALLY_EXPR]: Handle
8833 case where `finally' clause can't complete normally.
8834
8835 2001-12-20 Tom Tromey <tromey@redhat.com>
8836
8837 Fixes PR java/5057:
8838 * parse.y (analyze_clinit_body): Added this_class parameter.
8839 Check for more cases where we must keep <clinit>.
8840 (maybe_yank_clinit): Cleaned up flow control.
8841
8842 2001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8843
8844 * decl.c (java_init_decl_processing): Don't initialize
8845 finit_leg_identifier_node.
8846 * java-tree.h (java_tree_index): Remove JTI_FINIT_LEG_IDENTIFIER_NODE.
8847 (finit_leg_identifier_node): Remove.
8848 (ID_FINIT_P): Don't check for JTI_FINIT_LEG_IDENTIFIER_NODE.
8849
8850 2001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8851
8852 * mangle.c (mangle_member_name): Don't special-case for
8853 NO_DOLLAR_IN_LABEL.
8854 * mangle_name.c (unicode_mangling_length): Likewise.
8855 (append_unicode_mangled_name): Likewise.
8856 * parse.y (make_nested_class_name): Remove dead NO_DOLLAR_IN_LABEL
8857 code.
8858
8859 2001-12-20 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8860
8861 * expr.c (build_java_array_length_access): Don't force null pointer
8862 check unless flag_check_references is set.
8863
8864 2001-12-20 Tom Tromey <tromey@redhat.com>
8865
8866 Fix for PR java/3417:
8867 * parse.y (patch_assignment): Added special processing for
8868 `return'.
8869 (patch_return): Don't convert booleans to integers, and don't
8870 special-case `null'.
8871
8872 2001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
8873
8874 * config-lang.in (diff_excludes): Remove.
8875
8876 2001-12-17 Joseph S. Myers <jsm28@cam.ac.uk>
8877
8878 * gcj.texi: Update link to GCC manual.
8879
8880 2001-12-17 Tom Tromey <tromey@redhat.com>
8881
8882 * parse.y (link_nested_class_to_enclosing): Removed useless
8883 statement.
8884
8885 2001-12-16 Tom Tromey <tromey@redhat.com>
8886
8887 * mangle.c (mangle_method_decl): Never emit `C2' constructor.
8888 Fixes PR java/5088.
8889
8890 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
8891
8892 * ChangeLog, Make-lang.in, class.c, expr.c, gcj.texi, java-tree.h,
8893 jcf-parse.c, jcf-write.c, lex.c, parse.h, parse.y, verify.c: Fix
8894 spelling errors.
8895
8896 2001-12-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8897
8898 * lex.c (java_read_unicode, java_lex): Use hex_p/hex_value.
8899
8900 2001-12-16 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8901
8902 * decl.c (java_init_decl_processing): Build otable_type correctly.
8903 otable_decl is an otable_type.
8904
8905 2001-12-15 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8906
8907 * java-tree.h (otable_methods, otable_decl, otable_syms_decl,
8908 otable_type, otable_ptr_type, method_symbol_type,
8909 method_symbols_array_type, method_symbols_array_ptr_type): New
8910 field/global tree definitions.
8911 (flag_indirect_dispatch): New flag.
8912 * decl.c (java_init_decl_processing): Initialize new otable and
8913 otable_syms type nodes and decls. Add new field "index" to
8914 method_type_node.
8915 * class.c (build_method_symbols_entry): New function.
8916 (make_method_value): Set "index" to to method's vtable index for
8917 virtual methods when indirect-dispatch is not used.
8918 (make_class_data): For indirect-dispatch, don't emit the dtable_decl,
8919 and set vtable_method_count to -1. Set otable and otable_syms field
8920 if indirect-dispatch is used and there was something to put in them.
8921 (build_method_symbols_entry): New function.
8922 (emit_offset_symbol_table): New function.
8923 * expr.c (get_offset_table_index): New function.
8924 (build_invokevirtual): Build array reference to otable at the index
8925 returned by get_offset_table_index, and use the result as the vtable
8926 offset.
8927 (build_invokeinterface): Similar.
8928 * jcf-parse.c (yyparse): If indirect-dispatch, call
8929 emit_offset_symbol_table at the end of compilation, after all classes
8930 have been generated.
8931 * jvspec.c: Don't pass findirect-dispatch to jvgenmain.
8932 * lang.c (flag_indirect_dispatch): Define.
8933 (lang_f_options): Add indirect-dispatch flag.
8934
8935 2001-12-14 Matthias Klose <doko@debian.org>
8936
8937 * gcj.texi: Markup for man page generation. Document missing
8938 options printed by <tool> --help.
8939 Terminate description of gij's -ms option with a dot.
8940 * Make-lang.in ($(srcdir)/java/*.1): New targets.
8941 (java.generated-manpages java.install-man, java.uninstall,
8942 java-maintainer-clean) Updated.
8943
8944 2001-12-14 Hans Boehm <Hans_Boehm@hp.com>
8945
8946 * class.c (get_dispatch_table): Fix java vtable layout
8947 for TARGET_VTABLE_USES_DESCRIPTORS.
8948 * decl.c (java_init_decl_processing): Initialize
8949 alloc_no_finalizer_node, finalize_identifier_node.
8950 * expr.c (class_has_finalize_method): New function.
8951 (expand_java_NEW): Generate calls for finalizer-free allocation.
8952 (build_invokevirtual): Fix java vtable layout for
8953 TARGET_VTABLE_USES_DESCRIPTORS.
8954 * java-tree.h (enum java_tree_index): New entries:
8955 JTI_ALLOC_NO_FINALIZER_NODE, JTI_FINALIZE_IDENTIFIER_NODE.
8956 (alloc_no_finalizer_node, finalize_deintifier_node): New macros.
8957 (class_has_finalize_method): declare.
8958 (HAS_FINALIZER_P): New macro.
8959 * parse.y (patch_invoke): Generate calls for finalizer-free
8960 allocation.
8961
8962 2001-12-12 Matthias Klose <doko@debian.org>
8963
8964 * Make-lang.in: JAVA_INSTALL_NAME, JAVA_CROSS_NAME: Remove
8965 whitespace at end of line.
8966
8967 2001-12-11 Tom Tromey <tromey@redhat.com>
8968
8969 * lex.c (java_init_lex): Define wfl_to_string as
8970 gnu.gcj.runtime.StringBuffer unless generating bytecode.
8971
8972 2001-12-11 Jeff Sturm <jsturm@one-point.com>
8973
8974 * class.c (make_method_value): Use null_pointer_node to
8975 represent empty exception table.
8976
8977 2001-12-10 Tom Tromey <tromey@redhat.com>
8978
8979 * check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
8980
8981 2001-12-10 Douglas B. Rupp <rupp@gnat.com>
8982
8983 * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
8984
8985 2001-12-09 Per Bothner <per@bothner.com>
8986
8987 * check-init.c (current_switch_has_default): New static field.
8988 (check_init): Case DEFAULT_EXPR: Set current_switch_has_default.
8989 Case SWITCH_EXPR: Save/restore current_switch_has_default. If no
8990 DEFAULT_EXPR seen, simulate a default alternative that copies state.
8991
8992 2001-12-09 Tom Tromey <tromey@redhat.com>
8993
8994 * check-init.c (check_init): Don't allow pre- or post- increment
8995 or decrement of final variable.
8996 (final_assign_error): Minor error message rewording.
8997
8998 2001-12-08 Tom Tromey <tromey@redhat.com>
8999
9000 * java-tree.h: Fixed typo.
9001
9002 * gjavah.c (decompile_method): Don't decompile to `return this'
9003 for static methods.
9004
9005 * gjavah.c (cxx_keywords): Re-sorted.
9006 * lex.c (cxx_keywords): Re-sorted.
9007
9008 * gjavah.c (HANDLE_METHOD): Set `decompiled' before doing anything
9009 else.
9010
9011 * gjavah.c (print_namelet): Clear subnamelets.
9012 (HANDLE_METHOD): Set `method_printed' earlier.
9013
9014 2001-12-07 Tom Tromey <tromey@redhat.com>
9015
9016 * lang.c (lang_f_options): Added
9017 optimize-static-class-initialization.
9018 (java_decode_option): Removed special case.
9019
9020 2001-12-07 Per Bothner <per@bothner.com>
9021
9022 * check-init.c (check_init): Fix typo freeing memory twice.
9023
9024 2001-12-05 Per Bothner <per@bothner.com>
9025
9026 Restore support for static class initialization optimization.
9027 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Re-enable.
9028 * check-init.c (check_int): At end of BLOCK handle initialization
9029 blocks, which used to be done in java_complete_expand_method but did
9030 not handle the case where check_for_initialization might allocate
9031 more than a word of bits.
9032 * decl.c (lang_make_tree): The smic field is now a tree.
9033 * expr.c (build_class_init): Set DECL_FUNCTION_INIT_TEST_CLASS field.
9034 * java-tree.h (DECL_FUNCTION_INIT_TEST_TABLE): New macro.
9035
9036 * parse.y (emit_test_initialization): Combine hash_lookup calls.
9037
9038 * java-tree.h (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND):
9039 Change from a hash table to a list.
9040 (struct_lang_decl): Change field 'smic' to match.
9041 * class.c (add_method_1): Initialize
9042 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND to null list.
9043 * parse.y (adjust_init_test_initialization): Removed - inlined into -
9044 (java_expand_method_bodies): -here, since 'smic' is now a list.
9045 (patch_invoke): Add to 'smic' list, instead of hash_lookup.
9046
9047 * check-init.c (WORD_SIZE): Use BITS_PER_UNIT.
9048
9049 * class.c (java_hash_compare_tree_node): Fix casts.
9050
9051 2001-12-04 Per Bothner <per@bothner.com>
9052
9053 * check-init.c: Handle definite unassignment to finals in addition
9054 to definite assignment.
9055 (loop_current_locals): New field.
9056 (num_current_locals, int start_current_locals, num_current_words):
9057 Make static.
9058 (SET_P, CLEAR_P, SET_BIT): Add needed but missing parentheses.
9059 (ASSIGNED_P, UNASSIGNED_P, SET_ASSIGNED, SET_UNASSIGNED,
9060 CLEAR_ASSIGNED, CLEAR_UNASSIGNED): New macros.
9061 (get_variable_decl, check_final_reassigned): New functions.
9062 (check_init, check_bool_init): Modify as needed for checking finals.
9063 (check_for_initialization): Take extra parameter and return void.
9064 Do extra start-up logic to check final fields for assignment.
9065 * parse.y (check_static_final_variable_assignment_flag,
9066 reset_static_final_variable_assignment_flag, check_final_assignment,
9067 check_final_variable_local_assignment_flag,
9068 reset_final_variable_indirect_assignment_flag,
9069 reset_final_variable_global_assignment_flag): Remove functions.
9070 (java_complete_expand_methods, outer_field_access_fix,
9071 patch_assignment): Remove no-longer used logic.
9072 * java-tree.h (DECL_FIELD_FINAL_IUD): Change usage and comments.
9073 * parse.y (register_fields, java_complete_tree): Update accordingly.
9074
9075 * check-init.c (ALLOC_WORDS/FREE_WORDS): Use xmalloc/free, not alloca.
9076 (DECLARE_BUFFERS, RELEASE_BUFFERS, ALLOC_BUFFER, FREE_BUFFER): New.
9077 (check_cond_init, check_bool2_init): Use DECLARE_BUFFERS.
9078
9079 * java-tree.h (STATIC_CLASS_INIT_OPT_P): Temporarily turn off.
9080
9081 * java-tree.h (DECL FINAL): New bit-field.
9082 (METHOD_FINAL, FIELD_FINAL, CLASS_FINAL): Define as DECL_FINAL.
9083 (LOCAL_FINAL_P): Use DECL_FINAL rather than old LOCAL_FINAL.
9084 (DECL_INIT_CALLS_THIS): New macro.
9085 (struct lang_decl): New bit-field init_calls_this.
9086 (DECL_FUNCTION_ALL_FINAL_INITIALIZED, DECL_FIELD_FINAL_LIIC,
9087 DECL_FIELD_FINAL_IERR, LOCAL_FINAL, TYPE_HAS_FINAL_VARIABLE
9088 (DECL_BIT_INDEX): Change to use pointer_alias_set since we now
9089 use it for both local variables and final fields.
9090 (struct lang_decl_var): Remove bit-fields final_liic, final_ierr,
9091 and local_final.
9092 (struct lang_type): Remove hfv bit-field.
9093 (check_for_initialization): Change to return void.
9094
9095 * java-tree.h (IS_ARRAY_LENGTH_ACCESS): New macros.
9096 * expr.c (build_java_array_length_access): Set IS_ARRAY_LENGTH_ACCESS.
9097 * check-init.c (final_assign_error): New helper function.
9098 (check_final_reassigned, check_init): Use it.
9099 (check_init): Also check IS_ARRAY_LENGTH_ACCESS for ARRAY.length.
9100
9101 * java-tree.h (struct lang_decl, struct lang_decl_var): Change all
9102 bit-fields to unsigned.
9103
9104 2001-12-03 Per Bothner <per@bothner.com>
9105
9106 * parse.y (patch_binop): Minor constant folding.
9107
9108 * parse.y (build_current_thisn): Shorter 'buffer'.
9109
9110 2001-12-03 Per Bothner <per@bothner.com>
9111
9112 * decl.c (complete_start_java_method): Now generate TRY_FINALLY_EXPR
9113 instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
9114 * jcf-write.c (generate_bytecode_insns): Remove support for
9115 CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
9116 * check-init.c (check_init): Likewise.
9117
9118 2001-12-03 Per Bothner <per@bothner.com>
9119
9120 * verify.c (subroutine_nesting): New function.
9121 (verify_jvm_instructions): Use it to fix logic for checking that
9122 we're done with the current subroutine.
9123
9124 * verify.c (verify_jvm_instruction): For OPCODE_checkcast and
9125 OPCODE_instanceof use POP_TYPE macro for better diagnostics.
9126
9127 2001-12-03 Per Bothner <per@bothner.com>
9128
9129 * jcf.h: Fix obvious typo in comment.
9130 * typeck.c (build_null_signature): Add comment.
9131
9132 2001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
9133
9134 * expr.c: Remove leading capital from diagnostic messages, as
9135 per GNU coding standards.
9136 * jcf-io.c: Similarly.
9137 * jcf-parse.c: Similarly.
9138 * jv-scan.c: Similarly.
9139 * jvspec.c: Similarly.
9140 * mangle.c: Similarly.
9141
9142 2001-12-02 Tang Ching-Hui <nicholas@cs.nthu.edu.tw>
9143 Alexandre Petit-Bianco <apbianco@redhat.com>
9144
9145 * expr.c (build_java_arrayaccess): Call save_expr on array for
9146 correct evaluation order, modified comment, fixed indentation.
9147 * parse.y: (patch_assignment): Correctly extract the array base
9148 from the tree generate by build_java_arrayaccess, added comments.
9149 (patch_array_ref): Remove SAVE_EXPR on ARRAY_REF.
9150 Fixes PR java/3096, PR java/3803, PR java/3965.
9151
9152 2001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
9153
9154 * expr.c (expand_byte_code): Remove trailing periods from messages.
9155 * jcf-parse.c (load_class, jcf_parse): Similarly.
9156 * jcf-write.c (generate_classfile): Similarly.
9157 * lex.c (java_lex): Similarly.
9158
9159 2001-11-30 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9160
9161 * class.c (add_interface_do): Set BINFO_VPTR_FIELD.
9162
9163 2001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
9164
9165 * Make-lang.in (java.generated-manpages): New dummy target.
9166
9167 2001-11-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9168
9169 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
9170 ASM_FINAL_SPEC.
9171 (lang_specific_pre_link): Use set_input to set input_filename.
9172 Append `main' here.
9173 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
9174 (main): Fix definition.
9175 Strip `main' from classname.
9176 Fixes PR java/227.
9177
9178 2001-11-18 Roger Sayle <roger@eyesopen.com>
9179
9180 * parse.h (java_expand_switch): Remove old prototype.
9181
9182 2001-11-18 Tom Tromey <tromey@redhat.com>
9183
9184 Fix for PR java/1401:
9185 * jcf-write.c (generate_bytecode_insns) [binop]: Handle case where
9186 arg0 is null.
9187 (generate_bytecode_insns) [MODIFY_EXPR]: Handle `OP=' case
9188 correctly.
9189
9190 2001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
9191
9192 * lang.c (finish_parse): Rename to java_finish.
9193 (LANG_HOOKS_FINISH, java_finish): New.
9194
9195 2001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
9196
9197 * decl.c (init_decl_processing): Rename java_init_decl_processing.
9198 * java-tree.h: New prototype.
9199 * lang.c (java_init): Update prototype. Combine with old init_parse.
9200
9201 2001-11-13 Tom Tromey <tromey@redhat.com>
9202
9203 * gjavah.c (method_signature): New global.
9204 (HANDLE_METHOD): Set it.
9205 (decompile_return_statement): New function.
9206 (decompile_method): Use it.
9207 (print_method_info): Removed `synth' argument.
9208
9209 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
9210
9211 * java-tree.h (java_set_yydebug): New.
9212 * jcf-parse.c (set_yydebug): Rename java_set_yydebug.
9213 * lang.c (LANG_HOOKS_SET_YYDEBUG): Override.
9214 (print_lang_decl, print_lang_type, print_lang_identifier,
9215 print_lang_statistics, lang_print_xnode): Remove.
9216
9217 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
9218
9219 * jcf-parse.c (init_lex): Remove.
9220 * lang.c (language_string, lang_identify): Remove.
9221 (struct lang_hooks): Constify.
9222 (LANG_HOOKS_NAME): Override.
9223 (init_parse): Update.
9224
9225 2001-11-08 Andreas Franck <afranck@gmx.de>
9226
9227 * Make-lang.in (JAVA_INSTALL_NAME, JAVA_CROSS_NAME): Handle
9228 program_transform_name the way suggested by autoconf.
9229 (java.install-common): Also transform auxiliary program names with
9230 program_transform_name.
9231
9232 2001-11-08 Tom Tromey <tromey@cygnus.com>
9233
9234 * parse.y (trap_overflow_corner_case): New rule.
9235 (unary_expression): Use it.
9236 * lex.c (java_init_lex): Don't set minus_seen.
9237 (yylex): Don't use minus_seen. Communicate overflow to parser for
9238 it to handle.
9239 (error_if_numeric_overflow): New function.
9240 * parse.h (minus_seen): Removed field.
9241 (JAVA_RADIX10_FLAG): New define.
9242
9243 2001-11-07 Tom Tromey <tromey@redhat.com>
9244
9245 Patch for PR java/1414:
9246 * parse.y (case_label_list): New global.
9247 (goal): Register case_label_list with GC.
9248 (java_complete_lhs): Save new case on case_label_list.
9249 (patch_switch_statement): Check for duplicate case labels.
9250
9251 2001-11-07 Alexandre Petit-Bianco <apbianco@redhat.com>
9252
9253 * parse.y (patch_assignment): Removed unused third argument.
9254 (java_complete_lhs): Removed unused third argument to patch_assignment.
9255
9256 2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
9257
9258 * lang.c: Include langhooks-def.h.
9259 * Make-lang.in: Update.
9260
9261 2001-10-31 Zack Weinberg <zack@codesourcery.com>
9262
9263 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
9264
9265 2001-10-29 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9266
9267 * mangle.c (find_compression_record_match): Don't match compression
9268 records for package name elements unless they occur at the start of
9269 the name. Fix for PR java/4717.
9270
9271 2001-10-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9272
9273 * expr.c (expand_java_field_op): Don't special-case references to
9274 java.lang.PRIMTYPE.TYPE.
9275 (build_primtype_type_ref): Removed.
9276 * java-tree.h (build_primtype_type_ref): Remove prototype.
9277 * parse.y (maybe_build_primttype_type_ref): Removed.
9278 (complete_function_arguments): Don't special-case references to
9279 java.lang.PRIMTYPE.TYPE.
9280 (patch_assignment): Likewise.
9281 (array_constructor_check_entry): Likewise.
9282
9283 2001-10-24 Alexandre Petit-Bianco <apbianco@redhat.com>
9284
9285 * mangle.c (static tree compression_table): Fixed leading comment.
9286 * parse.h (struct parser_ctxt): Fixed field comment.
9287 * parse.y (check_pkg_class_access): New prototype, fixed leading
9288 comment, new parameter used to emit error only if passed as true.
9289 (parse_check_super): Pass extra argument to check_pkg_class_access.
9290 (do_resolve_class): Likewise.
9291 (process_imports): Likewise.
9292 (read_import_dir): Fixed indentation.
9293 (find_in_imports_on_demand): New local class_type_name. Local
9294 node_to_use deleted. while loop changed into for loop. Report
9295 multiple definition only for accessible classes. Improved error
9296 message.
9297 (start_complete_expand_method): Local `ptr' removed. DECL_ARGUMENTS
9298 assigned to parameter list, fixed indentation. while loop changed
9299 into for loop, restore TREE_CHAIN on local `tem' before the next
9300 iteration.
9301
9302 2001-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9303
9304 * lang.c (lang_get_alias_set): Deleted.
9305
9306 2001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9307
9308 * gjavah.c (jni_print_char): Fix thinko in last change.
9309
9310 * gjavah.c (jni_print_char, decode_signature_piece): Use
9311 safe-ctype macros and/or fold extra calls into fewer ones.
9312 * lex.c (java_read_unicode, java_lex): Likewise.
9313 * lex.h (JAVA_START_CHAR_P, JAVA_PART_CHAR_P, JAVA_ASCII_DIGIT,
9314 JAVA_ASCII_HEXDIGIT, JAVA_ASCII_LETTER): Likewise.
9315 * mangle_name.c (append_unicode_mangled_name,
9316 unicode_mangling_length): Likewise.
9317
9318 2001-10-17 Richard Henderson <rth@redhat.com>
9319
9320 * Make-lang.in (java/lang.o): Depend on langhooks.h.
9321
9322 2001-10-15 Alexandre Petit-Bianco <apbianco@redhat.com>
9323
9324 * lang.c (langhooks.h): Included.
9325 (LANG_HOOKS_INIT): Redefined.
9326 (LANG_HOOKS_INIT_OPTIONS): Likewise.
9327 (LANG_HOOKS_DECODE_OPTION): Likewise.
9328 (struct lang_hooks lang_hooks): New initialization.
9329
9330 2001-10-11 Per Bothner <per@bothner.com>
9331
9332 * parse.y (patch_synchronized_statement): Use a TRY_FINALLY_EXPR
9333 rather than a CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR pair.
9334 The former is simpler, and jcf-write.c handles it better.
9335 (java_complete_lhs): No longer need to handle CLEANUP_POINT_EXPR
9336 or WITH_CLEANUP_EXPR.
9337 * jcf-write.c: Revert Alex's change from 2000-10-18. It is no
9338 longer needed, as we already handle empty TRY_FINALLY_EXPR bodies fine.
9339
9340 * parse.y (patch_if_else_statement): If the condition is constant,
9341 optimize away the test.
9342
9343 2001-10-09 Alexandre Petit-Bianco <apbianco@redhat.com>
9344
9345 * parse.y (patch_cast): Call patch_string on the first operand of
9346 the incoming node, update it if necessary. Fixes PR java/4510.
9347
9348 2001-10-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
9349
9350 * parse.y (find_as_inner_class): Don't disregard the enclosing scope
9351 when name qualifier matches a package name.
9352
9353 2001-10-08 Tom Tromey <tromey@redhat.com>
9354
9355 Fix for PR java/4489:
9356 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Always
9357 force a new label when computing `body_block'.
9358
9359 2001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9360
9361 * jcf-io.c (format_uint): Const-ify.
9362 * lang.c (java_tree_code_type, java_tree_code_length): Likewise.
9363 * lex.c (java_get_line_col): Likewise.
9364 * parse.y (build_incdec): Likewise.
9365
9366 2001-10-05 Alexandre Petit-Bianco <apbianco@redhat.com>
9367
9368 * parse.y (register_incomplete_type): Set JDEP_SUPER to be given
9369 a NULL enclosing context if appropriate. Fixes PR java/4466.
9370
9371 2001-10-03 Alexandre Petit-Bianco <apbianco@redhat.com>
9372
9373 * parse.y (patch_assignment): Use lvalue's original TYPE when
9374 building the final COMPOUND_EXPR.
9375 (try_reference_assignconv): Fixed leading comment.
9376
9377 2001-09-26 Alexandre Petit-Bianco <apbianco@redhat.com>
9378
9379 * parse.y (check_final_variable_indirect_assignment): For
9380 COMPOUND_EXPR, return only if finals were found initialized
9381 properly, if not, keep on checking.
9382 (check_final_variable_global_assignment_flag): New local
9383 error_found, set when appropriate and used to decide whether to
9384 report uninitialized finals. Fixed typo in comment.
9385
9386 2001-09-22 Alexandre Petit-Bianco <apbianco@redhat.com>
9387
9388 * decl.c (init_decl_processing): Fixed typo in predef_filenames
9389 last three initializations. Fixes PR java/4360.
9390
9391 2001-09-21 Richard Henderson <rth@redhat.com>
9392
9393 * class.c (get_dispatch_table): Handle function descriptors.
9394 (build_dtable_decl): Likewise.
9395 * expr.c (build_invokevirtual): Likewise.
9396
9397 2001-09-20 Alexandre Petit-Bianco <apbianco@redhat.com>
9398
9399 * parse.y (patch_method_invocation): Build class initialization
9400 when static finals are used to qualify method invocation.
9401 Fixes PR java/4366.
9402
9403 2001-09-19 Alexandre Petit-Bianco <apbianco@redhat.com>
9404
9405 * parse.h: (WFL_STRIP_BRACKET): Re-written using
9406 build_type_name_from_array_name.
9407 (STRING_STRIP_BRACKETS): New macro.
9408 * parse.y (build_type_name_from_array_name): New function.
9409 (array_creation_expression:): Accumulate []s instead of [s.
9410 (cast_expression:): Accumulate []s instead of [s after cast type
9411 name.
9412 (build_array_from_name): Local string deleted, use
9413 build_type_name_from_array_name.
9414 (build_unresolved_array_type): Accumulate []s instead of [s after
9415 type name.
9416 (register_fields): Fixed comment.
9417 (resolve_class): Local name, base deleted, new locals tname and
9418 array_dims. Use build_type_name_from_array_name. Use array_dims to
9419 build array type.
9420 (purify_type_name): Use STRING_STRIP_BRACKETS.
9421
9422 2001-09-18 Andreas Jaeger <aj@suse.de>
9423
9424 * parse.y: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
9425 * jv-scan.c: Likewise.
9426
9427 2001-09-17 Alexandre Petit-Bianco <apbianco@redhat.com>
9428
9429 * parse.y (patch_method_invocation): Inner class creation context
9430 check not enforced within constructors. Fixes PR java/1873.
9431
9432 2001-09-16 Tom Tromey <tromey@redhat.com>
9433
9434 * jcf-write.c (generate_bytecode_insns) [SWITCH_EXPR]: Call
9435 NOTE_PUSH for single-case push. Fixes PR java/4189.
9436
9437 2001-09-13 Alexandre Petit-Bianco <apbianco@redhat.com>
9438
9439 * java-tree.h (TYPE_IMPORT_LIST): New macro.
9440 (TYPE_IMPORT_DEMAND_LIST): Likewise.
9441 (struct lang_type): New fields import_list and import_demand_list.
9442 * parse.y (java_complete_class): Initialize TYPE_IMPORT_LIST and
9443 TYPE_IMPORT_DEMAND_LIST with ctxp counterparts.
9444 (do_resolve_class): New local saved_enclosing_type, initialized,
9445 passed as parameter to find_in_imports and find_in_imports_on_demand.
9446 (find_in_imports): Added paramater enclosing_type, use its
9447 TYPE_IMPORT_LIST when applicable.
9448 (find_in_imports_on_demand): Added parameter enclosing_type, use
9449 its TYPE_IMPORT_DEMAND_LIST when applicable. Reorganized locals
9450 declaration and initialization.
9451 (fold_constant_for_init): Switch/restore current_class to the
9452 appropriate context.
9453
9454 2001-09-13 Mark Mitchell <mark@codesourcery.com>
9455
9456 * verify.c (verify_jvm_instructions): Fix typo.
9457
9458 2001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9459
9460 * expr.c (expand_invoke): Const-ification.
9461 * parse.y (patch_method_invocation): Likewise.
9462
9463 2001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9464
9465 * gjavah.c (cxx_keywords): Const-ification.
9466 * keyword.gperf (java_keyword): Likewise.
9467 * lang.c (java_tree_code_name): Likewise.
9468 * lex.c (cxx_keywords): Likewise.
9469 * parse.y (java_parser_context_suspend, merge_string_cste): Likewise.
9470
9471 2001-09-11 Richard Henderson <rth@redhat.com>
9472
9473 * parse.h (ctxp_for_generation): Mark extern.
9474
9475 2001-09-10 Richard Henderson <rth@redhat.com>
9476
9477 * class.c (build_class_ref): Set DECL_EXTERNAL before make_decl_rtl.
9478
9479 2001-09-07 Matt Kraai <kraai@alumni.carnegiemellon.edu>
9480
9481 * typeck.c (java_array_type_length, build_prim_array_type):
9482 Represent empty arrays by NULL index.
9483
9484 2001-09-06 Alexandre Petit-Bianco <apbianco@redhat.com>
9485
9486 * java-tree.h (compile_resource_file): Grouped with other prototypes.
9487 * jvspec.c (lang_specific_driver): Removed unused local `ptr.'
9488
9489 2001-09-06 Anthony Green <green@redhat.com>
9490
9491 * class.c (O_BINARY): Define if necessary.
9492 (registerResource_libfunc): Declare.
9493 (init_class_processing): Initilize registerResource_libfunc.
9494 (compile_resource_file): New function.
9495 * java-tree.h (resource_name): Declare.
9496 (compile_resource_file): Declare.
9497 * jcf-parse.c (yyparse): Handle compiling java resource files.
9498 * lang.c (java_decode_option): Handle -fcompile-resource option.
9499 * jvspec.c (lang_specific_driver): Handle -R flag for compiling
9500 resource files.
9501 * gcj.texi (Code Generation): Add documentation for -R flag.
9502
9503 2001-09-05 Alexandre Petit-Bianco <apbianco@redhat.com>
9504
9505 * jcf-write.c (generate_classfile): Issue an error in case of
9506 field/initial value mismatch.
9507 * parse.y (analyze_clinit_body): Keep <clinit> if an array is
9508 being initialized and we're generating bytecode.
9509 (java_complete_lhs): In MODIFY_EXPR section: added comments,
9510 set DECL_INITIAL properly when appropriate.
9511 Fixes PR java/4230
9512 Fixes PR java/4204
9513
9514 2001-09-01 Per Bothner <per@bothner.com>
9515
9516 * parse.y (maybe_yank_clinit): A field without an initializer is not
9517 relevant. All initializers except static final and constant require
9518 <clinit>, regardless of flag_emit_class_files.
9519
9520 2001-08-31 Per Bothner <per@bothner.com>
9521
9522 * class.c (set_constant_value): When not emitting class files, then a
9523 String ConstantValue is a utf8const_ptr_type.
9524
9525 2001-08-30 Per Bothner <per@bothner.com>
9526
9527 * jcf-write.c (generate_classfile): Check that field is primitive
9528 or string before emitting ConstantValue attribute.
9529
9530 2001-08-30 Per Bothner <per@bothner.com>
9531
9532 * parse.y (resolve_qualified_expression_name): If creating a
9533 COMPOUND_EXPR, set it's type correctly.
9534
9535 2001-08-30 Per Bothner <per@bothner.com>
9536
9537 * jcf-io.c (open_class): Set filename field.
9538
9539 * jcf-parse,c (parse_class_file): Set current_function_decl
9540 for better error message when Code attribute is missing.
9541
9542 * lang.c (put_decl_node, lang_print_error): Re-arrange for
9543 better diagnostics, especially for constructors.
9544
9545 2001-08-30 Per Bothner <per@bothner.com>
9546
9547 * jcf-write.c (generate_classfile): Don't write ConstantValue
9548 attribute if field is not final, for compatibility with jdk.
9549
9550 * jcf-write.c (generate_classfile): Convert ConstantValue values
9551 to correct type. Work-around for front-end bug.
9552 * class.c (set_constant_value): Error if constant has wrong type.
9553
9554 2001-08-30 Per Bothner <per@bothner.com>
9555
9556 * jcf-dump.c (print_constant): Fix fencepost error so "Float" and
9557 "Double" are printed at verbosity 1.
9558
9559 * jcf-dump.c (main): Disable flag_print_attributes if --javap.
9560
9561 * jcf-dump.c (SPECIAL_IINC): Remove unneeded casts to long.
9562
9563 2001-08-30 Alexandre Petit-Bianco <apbianco@redhat.com>
9564
9565 * parse.y (patch_assignment): Don't verify final re-assignment here.
9566 (java_complete_lhs): Verify assignments to finals calling
9567 patch_assignment. Verify re-assignments to finals before calling
9568 patch_assignment.
9569
9570 2001-08-29 Alexandre Petit-Bianco <apbianco@redhat.com>
9571
9572 * parse.y (java_complete_lhs): Allow final locals in CASE_EXPRs.
9573 Fixes PR java/1413
9574
9575 2001-08-28 Alexandre Petit-Bianco <apbianco@redhat.com>
9576
9577 * lex.c (java_lex): new local found_hex_digits. Set and then used
9578 in test to reject invalid hexadecimal numbers.
9579 * parse.y (java_complete_tree): Prevent unwanted cast with
9580 initialized floating point finals.
9581 (patch_binop): Emit a warning when detecting a division by zero,
9582 mark result not constant, don't simplify non integer division.
9583
9584 2001-08-28 Per Bothner <per@bothner.com>
9585
9586 * jcf-write.c (generate_bytecode_insns): For increments and
9587 decrements just recurse to push constant. Improvement on Mark's patch.
9588
9589 2001-08-28 Mark Mitchell <mark@codesourcery.com>
9590
9591 * jcf-write.c (generate_bytecode_insns): Generate an integer to
9592 real conversion for increments and decrements of reals.
9593
9594 2001-08-27 Alexandre Petit-Bianco <apbianco@redhat.com>
9595
9596 * parse.y (resolve_qualified_expression_name): Handle unresolved
9597 qualified expressions, prevent numerical qualifiers, fixed typo.
9598 Fixes PR java/4141
9599
9600 2001-08-24 Alexandre Petit-Bianco <apbianco@redhat.com>
9601
9602 * parse.y (check_deprecation): Handle TYPE_DECL in a special case,
9603 don't report anything but deprecated class when marked so. Handle
9604 VAR_DECL.
9605 (patch_method_invocation): Check deprecation on methods and types.
9606 (patch_binop): code becomes an enum tree_code, added default: to
9607 switch to handle that. Detect division by zero, try to fold and
9608 return before using a subroutine.
9609
9610 2001-08-23 Alexandre Petit-Bianco <apbianco@redhat.com>
9611
9612 * jcf-parse.c (yyparse): Set magic to 0, don't issue error for a
9613 file smaller than 4 bytes.
9614 * parse.y (check_inner_circular_reference): New function.
9615 (check_circular_reference): Likewise.
9616 (array_initializer:): Accept {,}.
9617 (java_check_circular_reference): Rewritten using
9618 check_circular_reference and check_inner_circular_reference.
9619 (java_complete_expand_method): Unconditionally save and restore
9620 the unpurged exception list.
9621 (build_dot_class_method_invocation): Unmangle signature parameter.
9622
9623 2001-08-21 Tom Tromey <tromey@redhat.com>
9624
9625 * decl.c (init_decl_processing): Add `throws' field to method
9626 descriptor.
9627 * class.c (make_method_value): Compute `throws' field for method.
9628
9629 2001-08-22 Alexandre Petit-Bianco <apbianco@redhat.com>
9630
9631 * parse.y (resolve_inner_class): Keep local_enclosing to NULL if
9632 circularity is detected.
9633 (ctors_unchecked_throws_clause_p): Fixed leading comment.
9634
9635 2001-08-17 Richard Henderson <rth@redhat.com>
9636
9637 * class.c (emit_register_classes): Add align parameter to
9638 call to assemble_integer.
9639
9640 2001-08-16 Alexandre Petit-Bianco <apbianco@redhat.com>
9641
9642 * jcf-parse.c (load_class): New locals saved and class_loaded. If
9643 loading a class_or_name fails, try considering an innerclass name
9644 and load the enclosing context.
9645 * parse.y (resolve_inner_class): New function.
9646 (find_as_inner_class): Added leading comment.
9647 (register_incomplete_type): Keep the current context as enclosing
9648 context for JDEP_FIELD dependencies.
9649 (do_resolve_class): Locals new_class_decl and super initialized to
9650 NULL. Call resolve_inner_class, explore the enclosing context
9651 superclass if necessary.
9652 Fixes PR java/4007
9653
9654 2001-08-16 Tom Tromey <tromey@redhat.com>
9655
9656 * jcf-dump.c (main): Updated for change to jcf_path_seal.
9657 * gjavah.c (main): Updated for change to jcf_path_seal.
9658 * lang.c (version_flag): New global.
9659 (java_decode_option): Recognize `-version'.
9660 (java_init): Update for change to jcf_path_seal.
9661 * jcf.h (jcf_path_seal): Added `print' argument.
9662 * jcf-path.c (jcf_path_seal): Added `print' argument.
9663
9664 2001-08-13 Zack Weinberg <zackw@panix.com>
9665
9666 * Make-lang.in (java/decl.o): Update dependencies.
9667 * decl.c: Include libfuncs.h, don't include toplev.h.
9668
9669 2001-08-12 Alexandre Petit-Bianco <apbianco@redhat.com>
9670
9671 * decl.c (init_decl_processing): exception_type_node,
9672 class_not_found_type_node, and no_class_def_found_type_node
9673 initialized. predef_filenames augmented accordingly.
9674 instinit_identifier_node initialized.
9675 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): Entry removed.
9676 * java-tree.h (enum java_tree_index): New entries
9677 JTI_EXCEPTION_TYPE_NODE, JTI_CLASS_NOT_FOUND_TYPE_NODE,
9678 JTI_NO_CLASS_DEF_FOUND_TYPE_NODE, JTI_INSTINIT_IDENTIFIER_NODE.
9679 (exception_type_node): New macro.
9680 (class_not_found_type_node): Likewise.
9681 (no_class_def_found_type_node): Likewise.
9682 (instinit_identifier_node): Likewise.
9683 (PREDEF_FILENAMES_SIZE): Adjusted.
9684 (TYPE_HAS_FINAL_VARIABLE): Fixed typo.
9685 (struct lang_type): Fixed typo in bitfield name.
9686 (DECL_INSTINIT_P): New macro.
9687 (ID_INSTINIT_P): Likewise.
9688 * jcf-write.c (generate_classfile): instinit$ bears the Synthetic
9689 attribute.
9690 * parse.y (encapsulate_with_try_catch): New function.
9691 (generate_instinit): Likewise.
9692 (build_instinit_invocation): Likewise.
9693 (ctors_unchecked_throws_clause_p): Likewise.
9694 (add_instance_initializer): Deleted.
9695 (build_instance_initializer): Likewise.
9696 (in_instance_initializer): Likewise.
9697 (check_method_redefinition): instinit$ not to be verified.
9698 (java_complete_expand_methods): Generate instinit$, simplified code.
9699 (build_dot_class_method): Eliminated unnecessary locals. Use
9700 encapsulate_with_try_catch, removed unnecessary code.
9701 (fix_constructors): New local iii. Use build_instinit_invocation.
9702 (patch_method_invocation): Added comment.
9703 (maybe_use_access_method): Don't consider instinit$.
9704 (find_applicable_accessible_methods_list): Shorten the search for
9705 instinit$ too.
9706 (java_complete_lhs): case INSTANCE_INITIALIZERS_EXPR removed.
9707 (patch_return): Use DECL_INSTINIT_P instead of in_instance_initializer.
9708 (patch_throw_statement): Likewise. Fixed typo.
9709
9710 2001-08-12 David Edelsohn <edelsohn@gnu.org>
9711
9712 Revert:
9713 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9714 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
9715 ASM_FINAL_SPEC.
9716 (lang_specific_pre_link): Use set_input to set input_filename.
9717 Append `main' here.
9718 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
9719 (main): Fix definition.
9720 Strip `main' from classname.
9721 Fixes PR java/227.
9722
9723 2001-08-11 Zack Weinberg <zackw@panix.com>
9724
9725 * lex.h: Don't include setjmp.h. Don't define
9726 SET_FLOAT_HANDLER or prototype set_float_handler.
9727
9728 2001-08-09 Alexandre Petit-Bianco <apbianco@redhat.com>
9729
9730 * expr.c (java_lang_expand_expr): Call `expand_end_bindings' and
9731 `poplevel' in the right order.
9732
9733 2001-08-09 Richard Henderson <rth@redhat.com>
9734
9735 * Make-lang.in (class.o): Depend on TARGET_H.
9736 * class.c (emit_register_classes): Use target hooks instead of
9737 assemble_constructor and assemble_destructor.
9738
9739 2001-08-08 Alexandre Petit-Bianco <apbianco@redhat.com>
9740
9741 * check-init.c (flags.h): Include
9742 (check_init): Don't report uninitialized static class
9743 initialization flags, don't free bit index when doing static class
9744 initialization optimization.
9745 (check_for_initialization): Return type changed to `unsigned int.'
9746 (attach_initialized_static_class): New function.
9747 * class.c (add_method_1): Create the initialized static class
9748 table if necessary.
9749 (finish_class): Always emit deferred inline methods.
9750 * decl.c (emit_init_test_initialization): Moved to expr.c
9751 (complete_start_java_method): Don't traverse
9752 DECL_FUNCTION_INIT_TEST_TABLE.
9753 (lang_mark_tree): Mark hash tables in function decls.
9754 * expr.c (emit_init_test_initialization): Moved from decl.c.
9755 (build_class_init): Create LAG_DECL_SPECIFIC for the static class
9756 initialization flag, set DECL_CONTEXT and
9757 LOCAL_CLASS_INITIALIZATION_FLAG.
9758 (java_lang_expand_expr): Emit initialization code for static class
9759 initialized flags when entering block, if necessary.
9760 * gcj.texi (-fno-optimize-static-class-initialization): Documented.
9761 * java-tree.h (flag_optimize_sci): New global variable declaration.
9762 (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro.
9763 (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise.
9764 (LOCAL_FINAL_P): Fixed typo in comment.
9765 (FINAL_VARIABLE_P): Likewise.
9766 (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro.
9767 (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise.
9768 (struct lang_decl): New fields `ict', `smic' and `cif.'
9769 (check_for_initialization): New returned value for global.
9770 (attach_initialized_static_class): New global function.
9771 (STATIC_CLASS_INIT_OPT_P): New macro.
9772 * lang-options.h (-fno-optimize-static-class-initialization): New flag.
9773 * lang.c (java_decode_option): Handle
9774 `-fno-optimize-static-class-initialization'
9775 * parse.y (start_complete_expand_method): New function.
9776 (java_expand_method_bodies): Likewise.
9777 (attach_init_test_initialization_flags): Likewise.
9778 (adjust_init_test_initialization): Likewise.
9779 (emit_test_initialization): Likewise.
9780 (java_complete_expand_methods): Nullify abstract and native method
9781 bodies.
9782 (java_complete_expand_method): New locals `fbody', `block_body'
9783 and `exception_copy.' Reorganized: directly return on empty method
9784 bodies, call `start_complete_expand_method', remember definitely
9785 initialized static class in function, don't expand method bodies.
9786 (java_expand_classes): Call `java_expand_method_bodies' before
9787 `finish_class' when compiling to native.
9788 (resolve_expression_name): Use `orig' after building outer class
9789 field access.
9790 (patch_invoke): Remember static method invocations.
9791
9792 2001-08-06 Richard Henderson <rth@redhat.com>
9793
9794 * class.c (emit_register_classes): Pass a symbol_ref and priority
9795 to assemble_constructor.
9796
9797 2001-08-02 Alexandre Petit-Bianco <apbianco@redhat.com>
9798
9799 * java-tree.h (all_class_filename): New macro.
9800 (enum java_tree_index): New enum `JTI_ALL_CLASS_FILENAME.'
9801 (BUILD_FILENAME_IDENTIFIER_NODE): Fixed leading comment. Link
9802 newly created IDENTIFIER_NODE to `all_class_filename.'
9803
9804 2001-08-01 Jeff Sturm <jsturm@one-point.com>
9805
9806 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE):
9807 Use ggc_add_tree_root to register roots.
9808
9809 2001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
9810
9811 * check-init.c (check_init): WITH_CLEANUP_EXPR node to use its
9812 second operand calling check_init.
9813 * decl.c (complete_start_java_method): Swaped second and third
9814 arguments while creating WITH_CLEANUP_EXPR node.
9815 * jcf-write.c (generate_bytecode_insns): Use second operand
9816 instead of third when handling WITH_CLEANUP_EXPR.
9817 * parse.y (java_complete_lhs): Expand second operand of
9818 WITH_CLEANUP_EXPR nodes.
9819 (patch_synchronized_statement): Swaped second and third arguments
9820 while creating WITH_CLEANUP_EXPR node.
9821
9822 2001-07-18 Alexandre Petit-Bianco <apbianco@redhat.com>
9823
9824 * parse.y (create_interface): Avoid cyclic inheritance report when
9825 syntax error encountered during class definition.
9826 Fixes PR java/2956
9827
9828 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9829
9830 * jvspec.c (jvgenmain_spec): Cannot use %umain, breaks
9831 ASM_FINAL_SPEC.
9832 (lang_specific_pre_link): Use set_input to set input_filename.
9833 Append `main' here.
9834 * jvgenmain.c (usage): Append literal `main' to CLASSNAME.
9835 (main): Fix definition.
9836 Strip `main' from classname.
9837 Fixes PR java/227.
9838
9839 2001-07-18 Tom Tromey <tromey@redhat.com>
9840
9841 For PR java/2812:
9842 * lex.h: Use HAVE_ICONV, not HAVE_ICONV_H.
9843 * lex.c (java_new_lexer): Use ICONV_CONST.
9844 (java_read_char): Likewise.
9845 * Make-lang.in (jc1$(exeext)): Link against LIBICONV.
9846 (jv-scan$(exeext)): Likewise.
9847
9848 2001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
9849
9850 * parse.h (INTERFACE_INNER_MODIFIERS): Disallow `private.'
9851 * parse.y (check_class_interface_creation): Allow `private' if the
9852 enclosing is not an interface.
9853 (create_interface): Interface tagged public if the enclosing
9854 context is an interface.
9855 (create_class): Class tagged public if the enclosing context
9856 is an interface.
9857 Fixes PR java/2959
9858
9859 2001-07-17 Alexandre Petit-Bianco <apbianco@redhat.com>
9860
9861 * class.c (push_class): Set DECL_SIZE to `integer_zero_node.'
9862 Fixes PR java/2665
9863
9864 2001-07-14 Tim Josling <tej@melbpc.org.au>
9865
9866 * check-init.c (check_init): Remove references to EXPON_EXPR.
9867
9868 2001-07-13 Alexandre Petit-Bianco <apbianco@redhat.com>
9869
9870 * parse.y (java_complete_lsh): Set CAN_COMPLETE_NORMALLY and unset
9871 TREE_CONSTANT_OVERFLOW of CASE_EXPR value.
9872 Fixes PR java/3602
9873
9874 2001-07-13 Tom Tromey <tromey@redhat.com>
9875
9876 * jvspec.c (jvgenmain_spec): Remove -ffilelist-file from cc1
9877 invocation.
9878
9879 2001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
9880
9881 * parse.y (patch_method_invocation): Don't override primary if one
9882 is already provided, but let this$<n> be built. Fixed comment.
9883
9884 2001-07-12 Alexandre Petit-Bianco <apbianco@redhat.com>
9885
9886 * parse.y (empty_statement:): Report empty statement error only
9887 when found at class declaration level.
9888 Fixes PR java/3635
9889
9890 2001-07-12 Tom Tromey <tromey@redhat.com>
9891
9892 * expr.c (expand_load_internal): New function.
9893 (LOAD_INTERNAL): Use it.
9894
9895 2001-07-11 Alexandre Petit-Bianco <apbianco@redhat.com>
9896
9897 * parse.y (verify_constructor_super): Compare anonymous class ctor
9898 args with `valid_method_invocation_conversion_p.'
9899 Fixes PR java/3285
9900
9901 2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
9902
9903 * lang-specs.h: Forbit the use if `-femit-class-file{s}' without
9904 `-fsyntax-only.' Fixes PR java/3248
9905
9906 2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
9907
9908 * jcf-io.c (find_class): Clarified error message. Fixes PR java/2603
9909
9910 2001-07-10 Alexandre Petit-Bianco <apbianco@redhat.com>
9911
9912 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): No `this' is fine if the
9913 current function is static. Fixes PR java/1970
9914
9915 2001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
9916
9917 * parse.y (patch_method_invocation): Add enclosing context to ctor
9918 calls if necessary. Fixes PR java/2953
9919
9920 2001-07-09 Alexandre Petit-Bianco <apbianco@redhat.com>
9921
9922 * parse.y (resolve_package): Abort if qualified expression member
9923 isn't right.
9924 (qualify_ambiguous_name): Don't qualify as type if `this' in use.
9925 Fixes PR java/1391
9926
9927 2001-07-07 Zack Weinberg <zackw@stanford.edu>
9928
9929 * verify.c: Don't use // comments.
9930
9931 2001-07-05 Tom Tromey <tromey@redhat.com>
9932
9933 * lang.c (flag_assume_compiled): Removed.
9934 * java-tree.h (flag_assume_compiled): Removed.
9935 * lang-options.h: Removed -ffile-list-file, -fuse-boehm-gc,
9936 -fhash-synchronization, -fuse-divide-subroutine,
9937 -fcheck-references, -femit-class-file, -femit-class-files,
9938 -fassume-compiled. Updated --encoding information. Changed
9939 -foutput-class-dir to `-d'.
9940
9941 2001-07-04 Daniel Berlin <dan@cgsoftware.com>
9942
9943 * jcf-parse.c (parse_class_file): Add lineno parameter to
9944 debug_start_source_file call.
9945
9946 2001-07-04 Joseph S. Myers <jsm28@cam.ac.uk>
9947
9948 * gcj.texi: Use gpl.texi.
9949 * Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Update
9950 dependencies and use doc/include in search path.
9951
9952 2001-07-03 Jeff Sturm <jsturm@one-point.com>
9953
9954 * parse.y (fix_constructors): Test if a CALL_EXPR invokes
9955 `this'. If so, don't build instance initializers.
9956
9957 2001-07-03 Alexandre Petit-Bianco <apbianco@redhat.com>
9958
9959 * parse.y (resolve_expression_name): Improved error message for
9960 inner class cases. Fixes PR java/1958
9961
9962 2001-06-28 Gabriel Dos Reis <gdr@codesourcery.com>
9963
9964 * lang.c: #include diagnostic.h
9965 (lang_print_error): Add a `diagnostic_context *' parameter.
9966 (java_dummy_print): Likewise.
9967 * Make-lang.in (JAVA_LEX_C): Depend on diagnostic.h
9968
9969 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
9970
9971 * jcf-parse.c (gcc_mark_jcf): Test for a finished JCF.
9972 * jcf.h (typedef struct JCF): New bitfield `finished.'
9973 (JCF_FINISH): Set `finished.'
9974 (JCF_ZERO): Reset `finished.'
9975 Fixes PR java/2633
9976
9977 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
9978
9979 * parse.y (class_body_declaration:): Don't install empty instance
9980 initializers.
9981 Fixes PR java/1314
9982
9983 2001-06-27 Alexandre Petit-Bianco <apbianco@redhat.com>
9984
9985 * class.c (set_super_info): Call `set_class_decl_access_flags.'
9986 (set_class_decl_access_flags): New function.
9987 * java-tree.h (set_class_decl_access_flags): New prototype.
9988 * jcf-parse.c (handle_innerclass_attribute): Read and set access flags.
9989 (parse_class_file): New local `decl_max_locals.' Take wide types
9990 into account to compute DECL_MAX_LOCALS.
9991 * parse.y (type_import_on_demand_declaration:): Ignore duplicate
9992 imports on demand.
9993
9994 2001-06-22 Jan van Male <jan.vanmale@fenk.wau.nl>
9995
9996 * zipfile.h: Use GCC_JCF_H instead of JCF_H.
9997
9998 2001-06-20 Alexandre Petit-Bianco <apbianco@redhat.com>
9999
10000 * class.c (java_hash_tree_node): Fixed indentation in leading comment.
10001 * parse.y (do_resolve_class): Moved comments out to leading comment
10002 section. Removed local `start', New local `_ht' and
10003 `circularity_hash.' Record `enclosing' in hash table and search
10004 it to detect circularity. Use `enclosing' as an argument to
10005 `lookup_cl.' Free the hash table when done.
10006
10007 2001-06-19 Tom Tromey <tromey@redhat.com>
10008
10009 * lex.c (java_read_char): Disallow invalid and overlong
10010 sequences. Fixes PR java/2319.
10011
10012 2001-06-05 Jeff Sturm <jsturm@one-point.com>
10013
10014 * decl.c (create_primitive_vtable): Don't call make_decl_rtl.
10015
10016 2001-06-04 Alexandre Petit-Bianco <apbianco@redhat.com>
10017
10018 * expr.c (force_evaluation_order): Match wrapped ctor calls, locate
10019 arguments accordingly.
10020
10021 2001-06-02 Joseph S. Myers <jsm28@cam.ac.uk>
10022
10023 * gcj.texi: Move contents to just after title page.
10024
10025 2001-06-01 Alexandre Petit-Bianco <apbianco@redhat.com>
10026
10027 * parse.y (type_literals:): Use `build_incomplete_class_ref' with
10028 builtin type.
10029 (patch_incomplete_class_ref): Build the class ref, build the class
10030 init if necessary, complete the tree.
10031 Fixes PR java/2605
10032
10033 2001-05-31 Alexandre Petit-Bianco <apbianco@redhat.com>
10034
10035 * parse.y (lookup_field_wrapper): Test `name' code.
10036 (resolve_qualified_expression_name): Test `qual_wfl' code.
10037 (qualify_ambiguous_name): Handle `CONVERT_EXPR', fixe indentation,
10038 handle `qual_wfl' by code.
10039 (maybe_build_primttype_type_ref): Test `wfl' code.
10040
10041 2001-05-23 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
10042
10043 * Make-lang.in ($(srcdir)/java/gcj.info): Added dependencies on
10044 fdl.texi.
10045 (java/gcj.dvi): Use TEXI2DVI instead of custom tex calls. Create
10046 the dvi file in the java directory.
10047
10048 2001-05-25 Sam TH <sam@uchicago.edu>
10049
10050 * gen-table.pl javaop.h jcf.h lex.h,
10051 parse.h: Fix header include guards.
10052
10053 2001-05-23 Joseph S. Myers <jsm28@cam.ac.uk>
10054
10055 * jv-scan.c (version): Update copyright year.
10056
10057 2001-05-21 Per Bothner <per@bothner.com>
10058
10059 * jcf-parse.c (read_class): If class is from .class or .zip file
10060 and it's already been read, don't push/pop parser context.
10061
10062 2001-05-18 Per Bothner <per@bothner.com>
10063
10064 * jvspec.c (lang_specific_pre_link): Re-arrange the linker
10065 command line so the jvgenmain-generated main program comes first.
10066
10067 2001-05-15 Tom Tromey <tromey@redhat.com>
10068
10069 * class.c (build_utf8_ref): Don't generate identifier based on
10070 utf8const contents.
10071
10072 2001-05-12 Richard Henderson <rth@redhat.com>
10073
10074 * java-tree.def (JAVA_EXC_OBJ_EXPR): New.
10075 * expr.c (java_lang_expand_expr): Expand it.
10076 (process_jvm_instruction): Build JAVA_EXC_OBJ_EXPR instead of
10077 calling build_exception_object_ref.
10078 * parse.y (catch_clause_parameter): Likewise.
10079 (build_dot_class_method): Likewise.
10080 (try_reference_assignconv): Likewise.
10081 * check-init.c (check_init): Check JAVA_EXC_OBJ_EXPR not EXC_PTR_EXPR.
10082 * jcf-write.c (generate_bytecode_insns): Likewise.
10083
10084 2001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
10085
10086 * parse.y (build_unresolved_array_type): Set
10087 EXPR_WFL_QUALIFICATION on the newly created wfl.
10088 Fixes PR java/2538. Fixes PR java/2535.
10089
10090 2001-05-07 Alexandre Petit-Bianco <apbianco@redhat.com>
10091
10092 * parse.y (fix_constructors): Removed unnecessary assignment to
10093 local. Moved assignment to `this$<n>', fixed comments and
10094 indentation.
10095 (build_wfl_wrap): Fixed indentation.
10096 Fixes PR java/2598, java/2579 and java/2658.
10097
10098 2001-05-03 Mo DeJong <mdejong@redhat.com>
10099
10100 * lex.c (java_new_lexer): Call iconv_close on temp handle used to
10101 check for byte swap.
10102
10103 2000-05-02 Jeff Sturm <jsturm@one-point.com>
10104
10105 * expr.c (build_class_init): Move MODIFY_EXPR
10106 outside of COND_EXPR. Remove variable `call'.
10107
10108 2001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10109
10110 * decl.c: NULL_PTR -> NULL.
10111 * jcf-write.c: Likewise.
10112
10113 2001-05-01 Tom Tromey <tromey@redhat.com>
10114
10115 * Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
10116 (java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
10117 * gcj.texi: Updated copyright text. Include fdl.texi.
10118 (Top): Link to new node.
10119
10120 2001-05-01 Per Bothner <per@bothner.com>
10121
10122 * parse.h (REGISTER_IMPORT): Use tree_cons instead of chainon.
10123
10124 2001-05-01 Per Bothner <per@bothner.com>
10125
10126 * parse.y (java_pop_parser_context): The TREE_VALUE of a link in the
10127 import_list contains the name, not the TREE_PURPOSE.
10128
10129 2001-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10130
10131 * jcf-io.c (read_zip_member): Cast to long in comparison with
10132 signed value.
10133
10134 * jvspec.c (lang_specific_driver): Initialize variables.
10135
10136 * mangle.c (find_compression_record_match): Likewise.
10137
10138 * typeck.c (build_null_signature): Provide static prototype. Mark
10139 parameter with ATTRIBUTE_UNUSED.
10140
10141 * verify.c (verify_jvm_instructions): Initialize variable.
10142
10143 2001-04-27 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10144
10145 * parse.y (do_resolve_class): Check for cyclic inheritance during
10146 inner class resolution.
10147
10148 2001-04-27 Per Bothner <per@bothner.com>
10149
10150 * parse.y (java_expand_classes): Don't change ctxp_for_generation
10151 while iterating, since that could cause gc to lose stuff.
10152
10153 2001-04-26 Per Bothner <per@bothner.com>
10154
10155 Fix method search wrt scope of inner classes to match JLS2.
10156 * typeck.c (build_null_signature): New static function.
10157 (has_method): New function. Uses build_null_signature and lookup_do.
10158 * java-tree.h (has_method): New declaration.
10159 * parse.y (find_applicable_accessible_methods_list): Do not search
10160 context of inner classes here.
10161 (patch_method_invocation): Search scope, ie. current and outer clases,
10162 for method matching simple name, to find class.
10163
10164 2001-04-26 Per Bothner <per@bothner.com>
10165
10166 * jcf-write.c (generate_bytecode_insns case SWITCH_EXPR):
10167 Fix thinko: If a single case, use if_icmpeq, not ifeq.
10168
10169 * constants.c (find_methodref_with_class_index): New function.
10170 (find_methodref_index): Use find_methodref_with_class_index.
10171 * java-tree.h (find_methodref_with_class_index): New declaration.
10172 * jcf-write.c (generate_bytecode_insns case CALL_EXPR): Don't change
10173 DECL_CONTEXT, instead use new find_methodref_with_class_index function.
10174 If context changed from interface to class, don't use invokeinterface.
10175
10176 2001-04-25 Per Bothner <per@bothner.com>
10177
10178 * verify.c (verify_jvm_instructions): For field instructions,
10179 check that field index is valid. For invoke instructions, check that
10180 method index is valid.
10181
10182 2001-04-25 Alexandre Oliva <aoliva@redhat.com>
10183
10184 * config-lang.in (target_libs): Copy from $libgcj_saved.
10185
10186 2001-04-25 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
10187
10188 * decl.c (init_decl_processing): Add new class "protectionDomain"
10189 field.
10190 * class.c (make_class_data): Set initial value for "protectionDomain".
10191
10192 2001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10193
10194 * jvspec.c (lang_specific_driver): Fix memory allocation
10195 deficit, by using concat in lieu of xmalloc/sprintf.
10196
10197 2001-04-20 Per Bothner <per@bothner.com>
10198
10199 Fixes to compile multiple .class files at once.
10200 * decl.c (init_decl_processing): Don't set CLASS_LOADED_P.
10201 * java-tree.h (CLASS_PARSED_P): New macro.
10202 (CLASS_LOADED_P): Re-define to use TYPE_SIZE and CLASS_PARSED_P.
10203 * jcf-parse.c (jcf_parse_source): Inline into read_class.
10204 (read_class): Avoid some code duplication.
10205 Don't call JCF_FINISH for a .class file - might be needed later.
10206 (jcf_parse): Don't call layout_class here. Check/set CLASS_PARSED_P
10207 rather than CLASS_LOADED_P, since latter implies class laid out.
10208 (yyparse): Do layout_class and JCF_FINISh here instead, in pass 2.
10209 * parse.y: Don't need to set CLASS_LOADED_P for array types.
10210
10211 2001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10212
10213 * Make-lang.in (java/boehm.o): Depend on toplev.h.
10214
10215 * boehm.c: Include toplev.h.
10216
10217 2001-04-06 Tom Tromey <tromey@redhat.com>
10218 Alexandre Petit-Bianco <apbianco@redhat.com>
10219
10220 Fix for PR gcj/1404 and PR gcj/2332:
10221 * parse.y (build_array_from_name): If we use the type_wfl then
10222 accumulate dimensions from the original type as well.
10223 (build_unresolved_array_type): Don't modify TYPE_OR_WFL in place.
10224
10225 2001-04-06 Tom Tromey <tromey@redhat.com>
10226
10227 * parse.y (analyze_clinit_body): Return true if the second operand
10228 of a METHOD_EXPR is nonzero.
10229
10230 2001-04-06 Tom Tromey <tromey@redhat.com>
10231
10232 * Make-lang.in ($(srcdir)/java/parse-scan.c): Run bison from build
10233 directory.
10234 ($(srcdir)/java/parse.c): Likewise.
10235
10236 2001-04-05 Alexandre Petit-Bianco <apbianco@redhat.com>
10237
10238 * gcj.texi: Use `which-gcj' instead of `which-g77.'
10239 (version-gcc): Initialized.
10240 (which-gcj): Likewise.
10241
10242 2001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
10243
10244 * java-tree.h (struct lang_decl): New macro
10245 `DECL_FIXED_CONSTRUCTOR_P.' New field `fixed_ctor.'
10246 * parse.y (build_instance_initializer): New function.
10247 (add_instance_initializer): Use it.
10248 (java_fix_constructors): Set `current_class' before fix pass.
10249 (fix_constructors): Just return if already fixed. Move `super()'
10250 invocation ahead. Use `build_instance_initializer.'
10251 Fixes PR java/1315.
10252
10253 2001-04-04 Alexandre Petit-Bianco <apbianco@redhat.com>
10254
10255 * parse.y (resolve_qualified_expression_name): Pass field's
10256 DECL_CONTEXT to `not_accessible_p.'
10257 (not_accessible_p): Changed parameters order in `inherits_from_p'
10258 invocation.
10259
10260 2001-03-27 Andrew Haley <aph@cambridge.redhat.com>
10261
10262 * lang-options.h: Add flag_check_references.
10263
10264 2001-04-04 Per Bothner <per@bothner.com>
10265
10266 * java-tree.h (CONSTANT_VALUE_P): New macro.
10267 * jcf-write.c (generate_classfile): Use CONSTANT_VALUE_P.
10268 * parse.y (maybe_build_class_init_for_field): New static function.
10269 (resolve_expression_name, resolve_field_access): Use
10270 maybe_build_class_init_for_field instead of build_class_init
10271 This does not do the init if the field is compile-time-constant.
10272 (resolve_field_access): Simplify.
10273
10274 * parse.y (fold_constant_for_init): Merge test into switch.
10275
10276 2001-04-03 Zack Weinberg <zackw@stanford.edu>
10277
10278 * Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
10279 on gansidecl.h.
10280 * buffer.c, jvgenmain.c: Don't include gansidecl.h.
10281
10282 2001-04-02 Zack Weinberg <zackw@stanford.edu>
10283
10284 * expr.c (pop_type_0): Save the result of the first
10285 lang_printable_name call in a scratch buffer, so it
10286 won't be clobbered by the second call.
10287
10288 2001-03-30 Alexandre Petit-Bianco <apbianco@redhat.com>
10289
10290 * parse-scan.y (array_type:): Rewritten.
10291 (type_declaration:): `empty_statement' replaces `SC_TK.'
10292 (class_member_declaration:): `empty statement' added.
10293 (method_body:): Simplified.
10294 (static_initializer:): Likewise.
10295 (primary_no_new_array:): Use `type_literals.'
10296 (type_literals:): New rule.
10297 (dims:): Set and update `bracket_count.'
10298 Fixes PR java/1074. Fixes PR java/2412.
10299
10300 2001-03-28 Hans Boehm <boehm@acm.org>
10301
10302 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): Set to use `build_int_2.'
10303 (get_boehm_type_descriptor): Set type on returned value to be a
10304 pointer length integer.
10305
10306 2001-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10307
10308 * expr.c (pop_type_0): Call `concat' rather than building the
10309 string manually.
10310 (pop_type): Add format specifier in call to `error'.
10311
10312 * parse.y (patch_method_invocation): Avoid casting away
10313 const-ness.
10314
10315 2001-03-28 Jeffrey Oldham <oldham@codesourcery.com>
10316
10317 * jvgenmain.c (do_mangle_classname): End string constant with '\0'.
10318
10319 2001-03-28 Richard Henderson <rth@redhat.com>
10320
10321 IA-64 ABI Exception Handling:
10322 * Make-lang.in (except.o): Don't depend on eh-common.h.
10323 * check-init.c (check_init): Handle EXC_PTR_EXPR.
10324 * decl.c (init_decl_processing) [throw_node]: No _Jv_Sjlj_Throw.
10325 [soft_exceptioninfo_call_node]: Remove.
10326 [eh_personality_libfunc, lang_eh_runtime_type]: New.
10327 (end_java_method): No emit_handlers.
10328 * except.c (java_set_exception_lang_code): Remove.
10329 (method_init_exceptions): Don't call it.
10330 (prepare_eh_table_type): No CATCH_ALL_TYPE.
10331 (build_exception_object_ref): New.
10332 (expand_end_java_handler): Update for except.h name changes.
10333 (emit_handlers, expand_resume_after_catch): Remove.
10334 * expr.c (java_lang_expand_expr): Update for except.h name changes.
10335 (process_jvm_instruction): Use build_exception_object_ref.
10336 * java-tree.h (JTI_SOFT_EXCEPTIONINFO_CALL_NODE): Remove.
10337 (soft_exceptioninfo_call_node): Remove.
10338 (build_exception_object_ref): Declare.
10339 * jcf-write.c (generate_bytecode_insns) [CALL_EXPR]: No
10340 soft_exceptioninfo_call_node. Move processing ...
10341 [EXC_PTR_EXPR]: ... here.
10342 * parse.h (BUILD_ASSIGN_EXCEPTION_INFO): Remove dead code.
10343 * parse.y (catch_clause_parameter): Use build_exception_object_ref.
10344 (source_end_java_method): No java_set_exception_lang_code or
10345 emit_handlers.
10346 (build_dot_class_method): Use build_exception_object_ref.
10347 (try_reference_assignconv): Check EXC_PTR_EXPR not
10348 soft_exceptioninfo_call_node.
10349
10350 2001-03-28 Richard Henderson <rth@redhat.com>
10351
10352 * java-tree.h (throw_node): Define as a single member of
10353 java_global_trees instead of a separate array.
10354 (JTI_THROW_NODE): New.
10355 * decl.c (throw_node): Don't declare.
10356 (init_decl_processing): Init a scalar throw_node.
10357 Don't register it for gc.
10358 * check-init.c (check_init): Reference scalar throw_node.
10359 * expr.c (build_java_athrow): Likewise.
10360 * jcf-write.c (generate_bytecode_insns): Likewise.
10361 * parse.h (BUILD_THROW): Likewise.
10362
10363 2001-03-28 Richard Henderson <rth@redhat.com>
10364
10365 * decl.c (end_java_method): Do not save and restore
10366 flag_non_call_exceptions.
10367 * parse.y (source_end_java_method): Likewise.
10368 * lang.c (flag_exceptions): Don't declare.
10369 (java_init_options): Set flag_non_call_exceptions. Set
10370 flag_exceptions here ...
10371 (java_init): ... not here.
10372
10373 2001-03-27 Richard Henderson <rth@redhat.com>
10374
10375 * expr.c, parse.h: Use USING_SJLJ_EXCEPTIONS instead of
10376 exceptions_via_longjmp.
10377
10378 * lang.c (flag_new_exceptions): Don't declare it.
10379 (java_init_options): Or set it.
10380
10381 2001-03-27 Richard Henderson <rth@redhat.com>
10382
10383 * decl.c (end_java_method): Rename asynchronous_exceptions to
10384 flag_non_call_exceptions.
10385 * parse.y (source_end_java_method): Likewise.
10386
10387 2001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10388
10389 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
10390
10391 2001-03-26 Mark Mitchell <mark@codesourcery.com>
10392
10393 * parse.h (DECL_END_SOURCE_LINE): Don't rely on DECL_FRAME_SIZE.
10394
10395 2001-03-26 Alexandre Petit-Bianco <apbianco@redhat.com>
10396
10397 * parse.y (find_as_inner_class): Follow current package
10398 indications not to mistakingly load an unrelated class.
10399
10400 2001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10401
10402 * constants.c (PUTN): Use memcpy, not bcopy.
10403
10404 * lex.c (java_read_char): Use memmove, not bcopy.
10405
10406 * parse.y (java_parser_context_resume): Use memcpy, not bcopy.
10407
10408 2001-03-23 Per Bothner <per@bothner.com>
10409
10410 * verify.c (verify_jvm_instructions): Replace 3 pop_type by POP_TYPE
10411 macro for better error pin-pointing.
10412 * java-tree.h: Fix typo in comment.
10413
10414 * jcf-write.c (generate_bytecode_insns): Changes to TRY_FINALLY_EXPR.
10415 Don't include jsr/goto in exception range.
10416 Check if start and end of exception range are the same (also TRY_EXPR).
10417 Don't emit jsr after try_block if CAN_COMPLETE_NORMALLY is false.
10418 However, do emit the following goto even if try_block is empty.
10419 Defer freeing exception_decl until after the finalizer, to make
10420 sure the local isn't reused in the finalizer. Fixes PR java/1208.
10421
10422 * parse.y (java_complete_lhs): If the try-clause is empty, just
10423 return the finally-clause and vice versa.
10424
10425 2001-03-23 Alexandre Petit-Bianco <apbianco@redhat.com>
10426
10427 * gcj.texi (Input Options): documented the check for attribute
10428 `gnu.gcc.gccj-compiled' and the `-fforce-classes-archive-check' flag.
10429 * java-tree.h (flag_force_classes_archive_check): Declared extern.
10430 * jcf-parse.c (HANDLE_GCJCOMPILED_ATTRIBUTE): New macro.
10431 (jcf_parse): Check for the right classes archive if necessary.
10432 * jcf-reader.c (get_attribute): Define `MATCH_ATTRIBUTE' and use it.
10433 (jcf_parse_fields): Fixed indentation.
10434 * jcf-write.c (append_gcj_attribute): New function.
10435 (generate_classfile): Compute the attribute count, invoke
10436 `append_gcj_attribute'.
10437 * jcf.h (typedef struct JCF): `seen_in_zip' and `java_source'
10438 turned into bit-fields. New bit-field `right_zip.'
10439 (JCF_ZERO): Set `right_zip' to zero.
10440 * lang-options.h (-fforce-classes-archive-check): Added flag.
10441 * lang.c (flag_force_classes_archive_check): New flag.
10442 (lang_f_options): New entry `force-classes-archive-check.'
10443 Fixes PR java/1213.
10444
10445 2001-02-07 Andrew Haley <aph@redhat.com>
10446
10447 * gcj.texi (Configure-time Options): Add -fcheck-references.
10448 * expr.c (build_java_indirect_ref): New function.
10449 (java_check_reference): New function.
10450 (build_java_array_length_access): Use build_java_indirect_ref to
10451 check for null references.
10452 (build_java_arrayaccess): Likewise.
10453 (build_get_class): Likewise.
10454 (build_field_ref): Likewise.
10455 (invoke_build_dtable): Likewise.
10456 (build_invokeinterface): Likewise.
10457 * lang.c (lang_f_options): Add flag_check_references.
10458 * jvspec.c (jvgenmain_spec): Add flag_check_references.
10459 * java-tree.h (flag_check_references): New variable.
10460 * lang.c (flag_check_references): Likewise.
10461 * parse.y (patch_invoke): Use java_check_reference.
10462 (patch_assignment): Allow for extra nesting in
10463 _Jv_CheckArrayStore.
10464
10465 2001-03-23 Bryce McKinlay <bryce@albatross.co.nz>
10466
10467 * gjavah.c (cxx_keywords): Update from the definitive list in cp/lex.c.
10468 * lex.c (cxx_keywords): Likewise.
10469
10470 2001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
10471
10472 * parse.y (qualify_ambiguous_name): Broaden `length'
10473 recognition. Help MODIFY_EXPR be resolved as expression names.
10474 Fixes PR java/2066. Fixes PR java/2400.
10475
10476 2001-03-21 Bryce McKinlay <bryce@albatross.co.nz>
10477
10478 * gjavah.c (process_file): Mark interface definitions with
10479 "__attribute__ ((java_interface))".
10480
10481 2001-03-21 Alexandre Petit-Bianco <apbianco@redhat.com>
10482
10483 * class.c (layout_class): Fixed push_super_field's second
10484 argument. Fixes PR java/2333.
10485 (jdep_resolve_class): Reset TYPE_SIZE if `error_mark_node', it's
10486 too early to lay innerclasses out.
10487
10488 2001-03-20 Tom Tromey <tromey@redhat.com>
10489 Alexandre Petit-Bianco <apbianco@redhat.com>
10490
10491 * parse.y (patch_assignment): Handle the case of a SAVE_EXPR
10492 inside an array reference. Insertion of the array store check
10493 rewritten. Fixes PR java/2299.
10494
10495 2001-03-20 Tom Tromey <tromey@redhat.com>
10496
10497 * lex.c (java_read_unicode): Only accept leading `u's.
10498
10499 2001-03-20 Tom Tromey <tromey@redhat.com>
10500
10501 * jcf-parse.c (read_class): Initialize `class'.
10502
10503 2001-03-20 Matt Kraai <kraai@alumni.carnegiemellon.edu>
10504
10505 * jcf_parse.c (jcf_parse): Eliminate unused variable.
10506
10507 2001-03-19 Mark Mitchell <mark@codesourcery.com>
10508
10509 * class.c (build_class_ref): Use SET_DECL_ASSEMBLER_NAME.
10510 (layout_class): Likewise.
10511 (layout_class_method): Likewise.
10512 (emit_register_classes): Likewise.
10513 * decl.c (builtin_function): Likewise.
10514 (give_name_to_locals): Likewise.
10515
10516 2001-03-19 Per Bothner <per@bothner.com>
10517
10518 * jcf-parse.c (load_inner_classes): Check CLASS_LOADED_P
10519 before trying to load an inner class.
10520
10521 Fixes to process to command-line .class files in two passes.
10522 * java-tree.h (JAVA_FILE_P, CLASS_FILE_P, ZIP_FILE_P): New flags.
10523 (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P): Rename to ..
10524 (CLASS_FROM_CURRENTLY_COMPILED_P): ... because it is more general now.
10525 * class.c (is_compiled_class): Fix for renamed flag.
10526 * parse.y (maybe_create_class_interface_decl): Likewise.
10527 * jcf-parse.c (yyparse): Also set if compiling .class files.
10528 * jcf-parse.c (read_class); Read current_class.
10529 (jcf_parse): Make static.
10530 (load_inner_classes): New function, with code moved from jcf_parse,
10531 because we need to inner classes after the command-line files are read.
10532 (yyparse): Set finput to NULL when it doesn't need to be closed.
10533 Reduce use of main_jcf (basically only for archive) and
10534 use finput instead of main_jcf->read_state.
10535 Inline jcf_figure_file_type into yyparse.
10536 Set JAVA_FILE_P, CLASS_FILE_P, or ZIP_FILE_P on filename list name.
10537 Defer load_inner_classes and parse_class_file to a second pass,
10538 after we've correctly mapped command-line .clas fiels to classes.
10539 (jcf_figure_file_type): Removed.
10540 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): Removed flags.
10541 (JCF_ZERO): Also clear zipd field.
10542 * zipfile.h: Conditionalize on JCF_H insread of JCF_ZIP.
10543
10544 2001-03-18 Matt Kraai <kraai@alumni.carnegiemellon.edu>
10545
10546 * jcf-parse.c (yyparse): Change ch from char * to char.
10547
10548 2001-03-19 Per Bothner <per@bothner.com>
10549
10550 * jvspec.c (lang_specific_driver): Check for .zip and .jar files.
10551 Add constructed filelist-file at end, following -xjava. Thus any .o
10552 and library files are not affected by the -xjava. Also wrap
10553 explicit @FILE with -xjava and -xnone.
10554
10555 2001-03-19 Andrew Haley <aph@cambridge.redhat.com>
10556
10557 * class.c (build_static_field_ref): Call make_decl_rtl() after
10558 setting the DECL_EXTERNAL flag.
10559
10560 2001-03-17 Per Bothner <per@bothner.com>
10561
10562 * decl.c (clear_binding_level): Fix initializer (broke 03-15).
10563
10564 * jcf-write.c (generate_bytecode_insns): Handle emitting iinc
10565 when result is is needed (target is STACK_TARGET).
10566
10567 * parse.h (JDEP_SOLV): Removed.
10568 * parse.y (register_incomplete_type): Use JDEP_TO_RESOLVE instead.
10569
10570 * parse.y (incomplete_class_list): Removed.
10571 (obtain_incomplete_type): Don't use or set incomplete_class_list.
10572 It doesn't work if resolve_class changes the name of an array type
10573 that is on the list and then someone else looks for the modified name.
10574 Also, seems liable to break when compiling multiple source files at
10575 once. So the simplest is to just remove incomplete_class_list -
10576 it is only a minor space win and it is not even clear it saves time.
10577
10578 * parse.y (resolve_class): Remove unneeded promote_type.
10579
10580 2001-03-15 Per Bothner <per@bothner.com>
10581
10582 * java-tree.h (BLOCK_IS_IMPLICIT): New flag.
10583 * parse.h (BLOCK_EXPR_ORIGIN): Removed macro.
10584 * parse.y (declare_local_variables, maybe_absorb_scoping_blocks):
10585 Use BLOCK_IS_IMPLICIT rather than BLOCK_EXPR_ORIGIN.
10586
10587 * jcf-parse.c (yyparse): Set/reset input_filename for source file.
10588 * parse.y (java_expand_classes): Likewise.
10589
10590 * parse.y (expand_start_java_method): Was only called once and had a
10591 misleading name, so inline in caller java_complete_expand_method.
10592 (enter_a_block): Likewise inline in enter_block and remove.
10593
10594 Remove junk from when gcc/java was created (by copying from C/C++).
10595 * decl.c (keep_next_level_flag, keep_next_if_subblocks): Remove.
10596 (struct binding_level): Remove fields keep, keep_if_subblocks,
10597 more_cleanups_ok, have_cleanups (which have never been used).
10598 (pushlevel, poplevel): Remove related useless code.
10599
10600 * class.c (make_class_data): The class_dtable_decl (i.e. the
10601 vtable for Class) should be external, except when compiling Class.
10602
10603 * jvspec.c (lang_specific_driver): Fix -C handling.
10604 Check -save-temps to see if temp @FILE should be deleted.
10605 Follow-up to/fix for February 16 patch.
10606
10607 * verify.c (verify_jvm_instructions): Better error msgs for dup.
10608 (type_stack_dup): Remove no-longer neded error check.
10609
10610 2001-03-15 Bryce McKinlay <bryce@albatross.co.nz>
10611
10612 * mangle.c (mangle_record_type): Rename 'from_pointer' argument
10613 to 'for_pointer'. If this type is for a pointer (argument) mangling,
10614 don't surround the element with 'N..E' if the type name is
10615 unqualified.
10616
10617 2001-03-14 Mark Mitchell <mark@codesourcery.com>
10618
10619 * class.c (build_static_field_ref): Use COPY_DECL_RTL,
10620 DECL_RTL_SET_P, etc.
10621 (make_method_value): Likewise.
10622 (get_dispatch_table): Likewise.
10623
10624 * decl.c (push_jvm_slot): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
10625
10626 2001-03-07 Tom Tromey <tromey@redhat.com>
10627
10628 * config-lang.in (lang_requires): Define.
10629
10630 2001-03-07 Brad Lucier <lucier@math.purdue.edu>
10631
10632 * typeck.c (convert): Check flag_unsafe_math_optimizations,
10633 not flag_fast_math.
10634
10635 2001-03-05 Per Bothner <per@bothner.com>
10636
10637 Fix a problem where rest_of_decl_compilation applied to
10638 class_dtable_decl causes problems because it was done too early,
10639 before output file was opened.
10640 * decl.c (init_decl_processing): Remove init of class_dtable_decl.
10641 * class.c (class_dtable_decl): Add macro - element of class_roots.
10642 (make_class_data): Define class_dtable_decl.
10643 * java-tree.h (JTI_CLASS_DTABLE_DECL, class_dtable_decl): Removed.
10644
10645 2001-03-01 Zack Weinberg <zackw@stanford.edu>
10646
10647 * java/class.c, java/decl.c, java/java-tree.h: Replace all
10648 uses of 'boolean' with 'bool'.
10649
10650 2001-03-01 Zack Weinberg <zackw@stanford.edu>
10651
10652 * lang-specs.h: Add zero initializer for cpp_spec field to all
10653 array elements.
10654
10655 2001-02-16 Per Bothner <per@bothner.com>
10656
10657 Handle compiling multiple input files at once, and @FILE syntax.
10658 * gcj.texi: Updated documentation to match.
10659 * java-tree.h (flag_filelist_file, init_src_parse): New declarations.
10660 * jcf-parse.c (parse_source_file): Split into ...
10661 (parse_source_file_1): New function - and:
10662 (parse_source_file_2): New function.
10663 (yyparse): On -ffilelist-file, open and scan named file.
10664 On first pass over files, only do parse_source_file_1.
10665 A new second pass calls parse_source_file_2 for each file to compile.
10666 (init_jcf_parse): Call init_src_parse.
10667 * jvspec.c (INDIRECT_FILE_ARG): New flag.
10668 (lang_specific_driver): Support @FILELIST-FILE syntax, as well
10669 as multiple input file combined in one compilation.
10670 * lang-options.h: Add -ffilelist-file
10671 * lang.c (flag_filelist_file): New flag variable.
10672 (lang_f_options): Handle -ffilelist-file.
10673 * lex.c (java_init_lex): Don't clear ctxp->incomplete_class.
10674 * parse.h (struct parse_ctxt): Remove fields incomplete_class and
10675 gclass_list - use global fields of src_parse_roots instead.
10676 * parse.y (src_parse_roots): New array.
10677 (incomplete_class_list, gclass_list): New macros.
10678 (push_parser_context, java_pop_parser_context,
10679 java_parser_context_resume): Don't fiddle with deleted fields.
10680 (various): Use incomplete_class gclass_list and global macros
10681 instead of parse_ctxt fields - the lists are global.
10682 (init_src_parse): New function.
10683
10684 2001-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10685
10686 * decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
10687
10688 2001-02-20 Alexandre Petit-Bianco <apbianco@redhat.com>
10689
10690 * parse.y (check_inner_class_access): Moved declaration of local
10691 `enclosing_decl_type' to the right location.
10692
10693 2001-02-19 Bryce McKinlay <bryce@albatross.co.nz>
10694
10695 * parse.y (parser_check_super_interface): Don't call
10696 check_pkg_class_access for an inner interface.
10697 (parser_check_super): Don't call check_pkg_class_access for inner
10698 class.
10699 (do_resolve_class): Simplify enclosing type loop. Don't call
10700 check_pkg_class_access if CL and DECL are not set.
10701 (find_in_imports_on_demand): Set DECL if class_type needed to be
10702 loaded. Don't call check_pkg_class_access for an inner class.
10703 (check_inner_class_access): Rewritten to implement member access
10704 rules as per spec 6.6.1.
10705 (check_pkg_class_access): Handle the empty package correctly.
10706 (in_same_package): New function. Determine if two classes are in the
10707 same package.
10708
10709 2001-02-18 Bryce McKinlay <bryce@albatross.co.nz>
10710
10711 * typeck.c (build_java_array_type): Don't try to poke a public `clone'
10712 method into array types.
10713 * parse.y (patch_method_invocation): Bypass access check on clone call
10714 to array instance.
10715
10716 2001-02-15 Alexandre Petit-Bianco <apbianco@redhat.com>
10717
10718 * expr.c (build_instanceof): Check for arrays when trying fold to
10719 false.
10720
10721 2001-02-15 Jim Meyering <meyering@lucent.com>
10722
10723 * Make-lang.in (java.install-common): Depend on `installdirs'.
10724 (java.install-info): Likewise.
10725
10726 2001-02-15 Bryce McKinlay <bryce@albatross.co.nz>
10727
10728 * Make-lang.in (jvspec.o): Modify rule to match that of cp/g++spec.o.
10729
10730 2001-02-14 Tom Tromey <tromey@redhat.com>
10731 Alexandre Petit-Bianco <apbianco@cygnus.com>
10732
10733 Fix for PR java/1261.
10734 * typeck.c (build_java_array_type): Add public `clone' method to
10735 arrays.
10736 * parse.y (resolve_qualified_expression_name): Use current_class
10737 when checking for inaccessibility.
10738 (patch_method_invocation): Fixed error message when accessibility
10739 denied. Added `from_super' argument.
10740
10741 2001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
10742
10743 * parse.y (resolve_class): Don't build a fake decl. Use the one
10744 already built.
10745 * typeck.c (build_java_array_type): Build and assign decl to array
10746 type.
10747
10748 2001-02-14 Alexandre Petit-Bianco <apbianco@redhat.com>
10749
10750 * parse.y (not_accessible_p): Changed leading comment. Added extra
10751 `where' argument. Use it to enforce protected access rules.
10752 (resolve_qualified_expression_name): Added extra argument to
10753 not_accessible_p.
10754 (patch_method_invocation): Use argument `primary' to provide
10755 not_accessible_p with an extra argument.
10756 (lookup_method_invoke): Added extra argument to not_accessible_p.
10757 (search_applicable_method_list): Likewise.
10758
10759 2001-02-13 Alexandre Petit-Bianco <apbianco@redhat.com>
10760
10761 * parse.y (resolve_qualified_expression_name): Try to resolve as
10762 an inner class access only if `decl' is a TYPE_DECL.
10763
10764 2001-02-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
10765
10766 * decl.c (classdollar_identifier_node): Initialize.
10767 * java-tree.h (enum java_tree_index): New entry
10768 `JTI_CLASSDOLLAR_IDENTIFIER_NODE.'
10769 (classdollar_identifier_node): New macro.
10770 (ID_CLASSDOLLAR_P): Likewise.
10771 * parse.y (build_dot_class_method): Use `classdollar_identifier_node.'
10772 (build_dot_class_method_invocation): Likewise.
10773 (find_applicable_accessible_methods_list): `class$' can't be
10774 inherited.
10775
10776 2001-02-09 Raja R Harinath <harinath@cs.umn.edu>
10777
10778 * Make-lang.in (java/mangle_name.o): Add 'make' prereqs.
10779
10780 2001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10781
10782 * Manke-lang.in (JVGENMAIN_OBJS): Added `errors.o'
10783 * jvgenmain.c (error): Reversed 2001-02-09 patch. `error' is now
10784 gone.
10785
10786 2001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10787
10788 * mangle_name (append_unicode_mangled_name): Emit `_' or `U'
10789 outside of the `__U' sequence too.
10790 (unicode_mangling_length): Count `_' or `U' outside of the `__U'
10791 sequence too.
10792
10793 2001-02-09 Alexandre Petit-Bianco <apbianco@redhat.com>
10794
10795 * jvgenmain.c (error): Reversed 2001-02-01 deletion.
10796
10797 2001-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
10798
10799 * Make-lang.in (JAVA_OBJS): Added java/mangle_name.o
10800 (JVGENMAIN_OBJS): Likewise.
10801 * java-tree.h (append_gpp_mangled_name): New prototype.
10802 * jcf-parse.c (ggc_mark_jcf): Argument now `void *.'
10803 Removed cast calling `gcc_add_root.'
10804 * jvgenmain.c (mangle_obstack): New global, initialized.
10805 (main): Use it.
10806 (do_mangle_class): Constify local `ptr.'
10807 Removed macro `MANGLE_NAME.' Removed cast in `for.' Call
10808 append_gpp_mangle_name and update `count' if necessary.
10809 Use `mangle_obstack.'
10810 * mangle.c (append_unicode_mangled_name): Removed.
10811 (append_gpp_mangled_name): Likewise.
10812 (unicode_mangling_length): Likewise.
10813 (mangle_member_name): Return type set to `void.'
10814 (mangle_field_decl): Don't append `U' in escaped names.
10815 (mangle_method_decl): Likewise.
10816 (mangle_member_name): Just use `append_gpp_mangled_name.'
10817 * mangle_name.c: New file.
10818
10819 2001-02-07 Per Bothner <per@bothner.com>
10820
10821 * check-init.c (check_init): Fix TRY_FINALLY_EXPR logic.
10822
10823 * check-init.c (check_init): Don't call done_alternative after
10824 processing loop code, as a LOOP_EXPR never terminates normally.
10825
10826 2001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
10827
10828 * gcj.texi: Change sources.redhat.com reference to gcc.gnu.org.
10829
10830 2001-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
10831
10832 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Don't handle field
10833 DECLs.
10834
10835 2001-02-06 Tom Tromey <tromey@redhat.com>
10836
10837 * lex.c (java_new_lexer): Longer error message.
10838
10839 2001-02-05 Jeff Sturm <jeff.sturm@commerceone.com>
10840 Alexandre Petit-Bianco <apbianco@cygnus.com>
10841
10842 * typeck.c (build_prim_array_type): Added leading comment.
10843 (build_java_array_type): Moved locals out of
10844 block. Always create the `data' field, fixed alignment to match
10845 C++.
10846
10847 2001-02-04 Tom Tromey <tromey@redhat.com>
10848
10849 * expr.c (java_lang_expand_expr): Don't bother recomputing
10850 `length'. Use rest_of_decl_compilation, not make_decl_rtl.
10851 Fixes PR java/1866.
10852
10853 2001-02-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
10854
10855 * parse.y (process_imports): Save the original name of the import
10856 for better error report.
10857
10858 2001-02-04 Bryce McKinlay <bryce@albatross.co.nz>
10859
10860 * Make-lang.in (jvspec.o): Add DRIVER_DEFINES to the list
10861 of macros used when compiling jvspec.c.
10862 * jvspec.c (lang_specific_driver): Link with the shared
10863 libgcc by default.
10864
10865 2001-02-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10866
10867 * check-init.c (check_init): Call internal_error instead of fatal.
10868 * expr.c (java_lang_expand_expr): Likewise.
10869 * jcf-parse.c (get_constant): Likewise.
10870 * mangle.c (java_mangle_decl): Likewise.
10871 * parse.y (make_nested_class_name, java_complete_lhs): Likewise.
10872 (operator_string): Likewise.
10873 * check-init.c (check_init): Call abort instead of fatal.
10874 * class.c (build_class_ref): Likewise.
10875 * constants.c (write_constant_pool): Likewise.
10876 * decl.c (start_java_method): Likewise.
10877 * expr.c (push_type, java_stack_pop, java_stack_swap): Likewise.
10878 (java_stack_dup, encode_newarray_type): Likewise.
10879 (build_java_array_length_access): Likewise.
10880 (build_java_check_indexed_type, expand_java_pushc): Likewise.
10881 (build_java_soft_divmod, build_invokeinterface): Likewise.
10882 * java-tree.h (INNER_CLASS_P): Likewise.
10883 * jcf-parse.c (parse_signature, get_name_constant): Likewise.
10884 (give_name_to_class, get_class_constant): Likewise.
10885 * jcf-write.c (CHECK_PUT, CHECK_OP, get_access_flags): Likewise.
10886 (find_constant_index, generate_bytecode_conditional): Likewise.
10887 (generate_bytecode_insns, perform_relocations): Likewise.
10888 * lex.c (java_unget_unicode, java_lex): Likewise.
10889 * mangle.c (mangle_type, mangle_record_type): Likewise.
10890 (mangle_pointer_type, mangle_array_type, init_mangling): Likewise.
10891 (finish_mangling): Likewise.
10892 * parse.h (MARK_FINAL_PARMS): Likewise.
10893 * parse.y (pop_current_osb, unreachable_stmt_error): Likewise.
10894 (obtain_incomplete_type, java_complete_class): Likewise.
10895 (java_check_regular_methods, java_complete_expand_method): Likewise.
10896 (cut_identifier_in_qualified, check_deprecation): Likewise.
10897 (patch_invoke, find_applicable_accessible_methods_list): Likewise.
10898 (java_complete_lhs, lookup_name_in_blocks): Likewise.
10899 (check_final_variable_indirect_assignment, build_unaryop): Likewise.
10900 * typeck.c (set_local_type, parse_signature_type): Likewise.
10901 (parse_signature_string, build_java_signature): Likewise;
10902 (set_java_signature): Likewise.
10903 * verify.c (type_stack_dup, CHECK_PC_IN_RANGE): Likewise.
10904 * class.c (add_method): Call fatal_error instead of fatal.
10905 (build_static_field_ref): Likewise.
10906 * expr.c (build_known_method_ref, expand_invoke): Likewise.
10907 * jcf-parse.c (get_constant, jcf_parse): Likewise.
10908 * lex.c (java_new_new_lexer): Likewise.
10909 * jv-scan.c (main): Likewise.
10910 (fatal_error): Renamed from fatal.
10911 * jcf-parse.c (yyparse): Call fatal_io_error instead of
10912 pfatal_with_name.
10913 * jcf-parse.c (jcf_parse_source): Call fatal_io_error, not fatal.
10914 (yyparse): Likewise.
10915 * jcf-write.c (make_class_file_name, write_classfile): Likewise.
10916 * lex.c (java_get_line_col): Likewise.
10917 * jcf-parse.c (load_class): Make errors non-fatal.
10918 * lex.c (byteswap_init, need_byteswap): Only #ifdef HAVE_ICONV.
10919
10920 2001-02-01 Bryce McKinlay <bryce@albatross.co.nz>
10921
10922 * jvgenmain.c (class_mangling_suffix): Remove unused string.
10923 (error): Remove unused function.
10924 (main): Don't use "__attribute__ alias" on generated class symbol.
10925
10926 2001-01-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
10927
10928 * jcf-parse.c (init_jcf_parse): Added cast to ggc_add_root's last
10929 argument.
10930 * parse.y (finish_method_declaration): Code accounting for WFLed
10931 method DECL_NAMEs deleted.
10932 (check_abstract_method_definitions): Likewise.
10933 (resolve_type_during_patch): Layout resolved type.
10934 * typeck.c (lookup_do): Removed unused local.
10935
10936 2001-01-30 Bryce McKinlay <bryce@albatross.co.nz>
10937
10938 * java-tree.h: Remove JTI_INTEGER_NEGATIVE_ONE_NODE.
10939 * decl.c (init_decl_processing): Use integer_minus_one_node, not
10940 integer_negative_one_node.
10941 * expr.c (build_java_binop): Likewise.
10942
10943 2001-01-24 Jeff Sturm <jeff.sturm@commerceone.com>
10944
10945 * zextract.c (read_zip_archive): Read file_offset before writing
10946 zipd and consequently clobbering the header contents.
10947
10948 2001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10949
10950 * Make-lang.in: Remove all dependencies on defaults.h.
10951 * decl.c: Don't include defaults.h.
10952 * expr.c: Likewise.
10953 * parse.y: Likewise.
10954
10955 2001-01-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
10956
10957 * ChangeLog (2001-01-21): Fixed typo.
10958 * class.c (layout_class_method): Code accounting for WFLed
10959 method DECL_NAMEs deleted.
10960 * constant.c (find_methodref_index): Likewise.
10961 * decl.c (lang_mark_tree): Mark `wfl' field in struct lang_decl.
10962 * java-tree.h (DECL_FUNCTION_WFL): New macro.
10963 (struct lang_decl): New field `wfl'.
10964 (java_get_real_method_name): Prototype deleted.
10965 * mangle.c (mangle_method_decl): Code accounting for WFLed
10966 method DECL_NAMEs deleted.
10967 * parse.h (GET_METHOD_NAME): Macro deleted.
10968 * parse.y (reset_method_name): Deleted.
10969 (method_header): Set DECL_FUNCTION_WFL.
10970 (check_abstract_method_header): Code accounting for WFLed method
10971 DECL_NAMEs deleted.
10972 (java_get_real_method_name): Deleted.
10973 (check_method_redefinition): Code accounting for WFLed method
10974 DECL_NAMEs deleted. Use DECL_FUNCTION_WFL.
10975 (java_check_regular_methods): Likewise.
10976 (java_check_abstract_methods): Likewise.
10977 (java_expand_classes): Don't call `reset_method_name.'
10978 (search_applicable_method_list): Use DECL_NAMEs instead of
10979 GET_METHOD_NAME.
10980 * typeck.c (lookup_do): Code accounting for WFLed method
10981 DECL_NAMEs deleted.
10982
10983 2001-01-25 Richard Earnshaw <rearnsha@arm.com>
10984
10985 * lex.c (java_read_char): Check for EOF from getc first.
10986
10987 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
10988
10989 * class.c (layout_class): Don't lay the superclass out if it's
10990 already being laid out.
10991 * jcf-parse.c (handle_innerclass_attribute): New function.
10992 (HANDLE_INNERCLASSES_ATTRIBUTE): Invoke
10993 handle_innerclasses_attribute.
10994 (jcf_parse): Don't load an innerclasses if it's already being
10995 laid out.
10996 * jcf-write.c (append_innerclass_attribute_entry): Static
10997 `anonymous_name' and its initialization deleted. `ocii' and `ini'
10998 to be zero for anonymous classes.
10999
11000 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11001
11002 * class.c (set_constant_value): Set DECL_FIELD_FINAL_IUD if
11003 necessary.
11004 * jcf-parse.c (set_source_filename): Use
11005 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC if necessary.
11006
11007 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11008
11009 * expr.c (build_jni_stub): Set DECL_CONTEXT on `meth_var' so it
11010 gets a unique asm name.
11011
11012 2001-01-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
11013
11014 * jcf-parse.c (HANDLE_END_METHODS): Nullify current_method.
11015 (HANDLE_START_FIELD): Invoke MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
11016 if necessary.
11017 (HANDLE_SYNTHETIC_ATTRIBUTE): New macro.
11018 * jcf-reader.c (get_attribute): Handle `Synthetic' attribute.
11019 * parse.y (lookup_package_type_and_set_next): Deleted.
11020 (resolve_package): Removed unnecessary code.
11021 (find_applicable_accessible_methods_list): `finit$' can't be
11022 inherited.
11023 * verify.c (pop_argument_types): Added missing prototype.
11024
11025 2001-01-23 Bryce McKinlay <bryce@albatross.co.nz>
11026
11027 * config-lang.in: Disable java by default.
11028
11029 2001-01-23 Tom Tromey <tromey@redhat.com>
11030
11031 * gcj.texi (Copying): New node.
11032 Added copyright information.
11033
11034 2001-01-21 Per Bothner <per@bothner.com>
11035
11036 Various fixes to allow compiling a compressed .jar/.zip archive.
11037 * zipfile.h (struct ZipFileCache): Replace by struct ZipFile.
11038 (struct ZipFile): Add fields name and next (from ZipFileCache).
11039 (struct ZipDirectory): New field zipf points to owning ZipFile.
11040 * jcf.h (struct ZipDirectory): Add forward declaration.
11041 (struct JCF): Declare zipd field to have type struct ZipDirectory.
11042 Remove seen_in_zip and zip_offset fields.
11043 (JCF_SEEN_IN_ZIP): New macro.
11044 * zextract.c (read_zip_archive): Set ZipDirectory's zipf field.
11045 * jcf-io.c: Change all ZipFileCache to ZipFile.
11046 (read_zip_member): New function.
11047 (open_in_zip): Call read_zip_member.
11048 * jcf-parse.c (find_in_current_zip): Remove function.
11049 (read_class): Merge in find_in_current_zip functionality.
11050 Call read_zip_member if needed.
11051 (parse_zip_file_entries): Use read_zip_member.
11052 (process_zip_dir): Update for removed and added JCF fields.
11053 (jcf_figure_file_type): Re-use, don't copy initial ZipFile struct.
11054
11055 2001-01-21 Per Bothner <per@bothner.com>
11056
11057 Minor optimization of static ggc roots.
11058 * jcf-parse.c (parse_roots): New static field.
11059 (current_field, current_method, current_file_list): Replace by macros
11060 naming fields of parse_roots.
11061 (init_jcf_parse): Combine 3 ggc_add_tree_root calls to 1.
11062 * class.c (class_roots): New static field.
11063 (registered_class, fields_ident, info_ident, class_list):
11064 New macros naming fields of parse_roots.
11065 (build_static_field_ref): Don't register roots here.
11066 (layout_class): Static field list replaced by macro class_list.
11067 (init_class_processing): Call ggc_add_tree_root for 4 roots.
11068 Initialize fields_ident and info_ident here.
11069
11070 2001-01-21 Per Bothner <per@bothner.com>
11071
11072 * jcf-parse.c (ggc_mark_jcf): New function.
11073 (init_jcf_parse): Register current_jcf as ggc root.
11074
11075 2001-01-21 Per Bothner <per@bothner.com>
11076
11077 * lang.c (put_decl_node): Print method's name.
11078
11079 2001-01-21 Per Bothner <per@bothner.com>
11080
11081 * verify.c (VERIFICATION_ERROR_WITH_INDEX): New macro.
11082 (verify_jvm_instructions): Use it, for better error messages on loads.
11083
11084 2001-01-21 Per Bothner <per@bothner.com>
11085
11086 * verify.c (merge_type_state): Still may have to merge even if
11087 LABEL_VERIFIED (label).
11088
11089 2001-01-21 Per Bothner <per@bothner.com>
11090
11091 * parse.y (method_header): Don't set the DECL_NAME of a FUNCTION_DECL
11092 to a EXPR_WITH_FILE_LOCATION - that is just too fragile and wrong.
11093
11094 2001-01-19 Per Bothner <per@bothner.com>
11095
11096 * expr.c (pop_type_0): Only return object_ptr_type_node on mismatch
11097 if expeting an interface type. Refines Tom's change of 2000-09-12.
11098
11099 2001-01-18 Per Bothner <per@bothner.com>
11100
11101 * gcj.texi (Input Options): Mention .java files.
11102
11103 2001-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
11104
11105 * lang-options.h (-Wunsupported-jdk11): Removed.
11106 * lang.c (flag_not_overriding): Deleted.
11107 (flag_static_local_jdk1_1): Likewise.
11108 (lang_W_options): Removed "unsupported-jdk11" entry.
11109 * parse.y (java_check_methods): Removed dead code.
11110
11111 2001-01-17 Tom Tromey <tromey@redhat.com>
11112
11113 Changes suggested by Per Bothner:
11114 * gcj.texi (Input Options): Don't mention input files.
11115 (Code Generation): Updated --main information.
11116 (Invoking jcf-dump): Mention that --javap is incomplete.
11117 From Alexandre Petit-Bianco:
11118 (Warnings): Don't mention -Wunsupported-jdk11.
11119 My stuff:
11120 (Compatibility): Mention JDK 1.2-ness of libraries.
11121 (Resources): Mention resources used when writing gcj.
11122
11123 2001-01-17 Tom Tromey <tromey@redhat.com>
11124
11125 * gcj.texi: New file.
11126 * Make-lang.in ($(srcdir)/java/gcj.info): New target.
11127 (java.info): Depend on gcj.info.
11128 (java/gcj.dvi): New target.
11129 (java.dvi): Depend on gcj.dvi.
11130 (java.install-info): Wrote.
11131
11132 2001-01-16 Jeff Sturm <jeff.sturm@appnet.com>
11133
11134 * expr.c (java_lang_expand_expr): Use TREE_SYMBOL_REFERENCED after
11135 having called make_decl_rtl.
11136
11137 2001-01-14 Per Bothner <per@bothner.com>
11138
11139 Various patches to emit better messages on verification errors.
11140 * expr.c (push_type_0): Return error indication on stack overflow,
11141 instead of callinfg fatal.
11142 (push_type): Now just call push_type_0 (nd fatal on overflow).
11143 (pop_type_0): Return detailed error message (in a char** argument).
11144 (pop_type): If pop_type_0 fails, print error message.
11145 (pop_argument_types): Moved to verify.c.
11146 * verify.c (pop_argument_types): Moved from expr.c.
11147 Return a (possible) error message, rather than void.
11148 (POP_TYPE, POP_TYPE_CONV, PUSH_TYPE, PUSH_PENDING): New macros.
11149 (verify_jvm_instruction): Use new macros, improving error messages.
11150 For case OPCODE_astore use object_ptr_type_node.
11151 * java-tree.h (TYPE_UNDERFLOW, TYPE_UNEXPECTED): New macros.
11152 (pop_type_0, push_type_0, pop_argument_types): Update accordingly.
11153
11154 * parse.y (java_complete_lhs case EXPR_WITH_FILE_LOCATION): If body is
11155 constant, return body without wrapper. (Improves constant folding.)
11156 * lex.c (build_wfl_node): Clear TREE_TYPE from returned node.
11157
11158 2001-01-13 Per Bothner <per@bothner.com>
11159
11160 * expr.c (expand_java_field_op): Assigning to a final field outside
11161 an initializer does not violate JVM spec, so should be warning, not
11162 error. (Sun's verifier does not complain - though MicroSoft's does.)
11163
11164 2001-01-12 Joseph S. Myers <jsm28@cam.ac.uk>
11165
11166 * gjavah.c (version), jcf-dump.c (version): Update copyright year
11167 to 2001.
11168
11169 2001-01-11 Bryce McKinlay <bryce@albatross.co.nz>
11170
11171 * parse.y (resolve_expression_name): Permit instance variables from
11172 enclosing context in super constructor call.
11173 (resolve_qualified_expression_name): Permit enclosing class's qualified
11174 "this" in super constructor call.
11175
11176 2001-01-10 Mark Mitchell <mark@codesourcery.com>
11177
11178 * class.c (build_utf8_ref): Remove last argument in call to
11179 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
11180 (build_class_ref): Likewise.
11181 (build_static_field_ref): Likewise.
11182 (get_dispatch_table): Likewise.
11183 (layout_class_method): Likewise.
11184 (emit_register_classes): Likewise.
11185 * constants.c (build_constant_data_ref): Likewise.
11186 * decl.c (builtin_function): Likewise.
11187 (create_primitive_vtable): Likewise.
11188 * expr.c (build_known_method_def): Likewise.
11189 (build_jni_stub): Likewise.
11190 (java_lang_expand_expr): Likewise.
11191
11192 2001-01-10 Tom Tromey <tromey@redhat.com>
11193
11194 * jvspec.c (jvgenmain_spec): Omit -fencoding from cc1 invocation.
11195
11196 2001-01-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
11197
11198 * java-tree.h (lang_printable_name_wls): New prototype.
11199 * lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
11200 rather than `current_class' to print type name. Don't prepend type
11201 names when printing constructor names.
11202 (lang_printable_name_wls): New function.
11203 * jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
11204 `build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
11205 * parse.y (patch_method_invocation): Message tuned for constructors.
11206 (not_accessible_p): Grant `private' access from within
11207 enclosing contexts.
11208
11209 2001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
11210
11211 All files with updated copyright when applicable.
11212 * Make-lang.in (JVGENMAIN_OBS): Removed java/mangle.o.
11213 * class.c (mangle_class_field): Function removed.
11214 (append_gpp_mangled_type, mangle_static_field, mangle_field): Likewise.
11215 (utf8_cmp, cxx_keyword_p): Moved to lex.c.
11216 (build_class_ref): Call `java_mangle_class_field' instead of
11217 `mangle_class_field.'
11218 (build_dtable_decl): Rewritten to call `java_mangle_vtable.'
11219 (layout_class): Call `java_mangle_decl' instead of
11220 `mangle_static_field.'
11221 (cxx_keywords): Initialized static array moved to `lex.c.'
11222 (layout_class_method): Changed leading comment. Simplified to
11223 call `java_mangle_decl.' Local `ptr' moved in for loop body.
11224 * decl.c (lang_mark_tree): Mark field `package_list.'
11225 * java-tree.h (TYPE_PACKAGE_LIST): New macro.
11226 (struct lang_type): New field `package_list.'
11227 (unicode_mangling_length): Prototype removed.
11228 (append_gpp_mangled_name, append_gpp_mangled_classtype,
11229 emit_unicode_mangled_name): Likewise.
11230 (cxx_keyword_p): New prototype.
11231 (java_mangle_decl, java_mangle_class_field,
11232 java_mangle_class_field_from_string, java_mangle_vtable): Likewise.
11233 * jcf-parse.c (jcf_parse_source): Constify `file' argument to
11234 `build_expr_wfl.'
11235 * jvgenmain.c (main_method_prefix): Global variable removed.
11236 (main_method_suffix): Likewise.
11237 (do_mangle_classname): New function.
11238 (main): Call it. Format changed to accommodate new mangling scheme.
11239 * lex.c: (utf8_cmp): Conditionally prototyped.
11240 (cxx_keywords): Moved from class.c, conditionally defined.
11241 (utf8_cmp, cxx_keyword_p): Likewise.
11242 * mangle.c (obstack.h, ggc.h): Included.
11243 (mangle_field_decl): New function.
11244 (mangle_method_decl, mangle_type, mangle_pointer_type,
11245 mangle_array_type, mangle_record_type,
11246 find_compression_pointer_match, find_compression_array_match,
11247 find_compression_record_match,
11248 find_compression_array_template_match, set_type_package_list,
11249 entry_match_pointer_p, emit_compression_string, init_mangling,
11250 finish_mangling, compression_table_add, mangle_member_name): Likewise.
11251 (mangle_obstack): New global.
11252 (MANGLE_RAW_STRING): New macro.
11253 (unicode_mangling_length): Turned static.
11254 (append_unicode_mangled_name): Renamed from
11255 `emit_unicode_mangled_name.' Turned static. `mangle_obstack'
11256 replaces `obstack', removed from the parameter list.
11257 (append_gpp_mangled_name): Turned static. `mangle_obstack'
11258 replaces parameter `obstack', removed from the parameter list. Call
11259 `append_unicode_mangled_name' instead of `emit_unicode_mangled_name.
11260 (append_gpp_mangled_classtype): Removed.
11261 (compression_table, compression_next): New static variables.
11262 * parse.y (temporary_obstack): Extern declaration removed.
11263
11264 2001-01-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
11265
11266 * parse.y (patch_binop): Compute missing type in error situations.
11267
11268 2001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
11269
11270 * class.c (make_class_data): Push initial value for "arrayclass".
11271 * decl.c (init_decl_processing): Add new class field "arrayclass".
11272
11273 2001-01-05 Bryce McKinlay <bryce@albatross.co.nz>
11274
11275 From patha@softlab.ericsson.se:
11276 * parse.y (switch_label): Use build, not build1, to construct
11277 DEFAULT_EXPR.
11278
11279 2001-01-04 Neil Booth <neil@daikokuya.demon.co.uk>
11280
11281 * lang.c (lang_decode_option): Change -MA to -MP.
11282 * jcf-depend.c (jcf_dependency_add_target, jcf_dependency_set_target):
11283 Update to new prototype; do quote targets.
11284 (jcf_dependency_write): Update.
11285
11286 2000-12-22 Bryce McKinlay <bryce@albatross.co.nz>
11287
11288 Shorten primitive array allocation path:
11289 * decl.c (init_decl_processing): Use _Jv_NewPrimArray not _Jv_NewArray
11290 to create new primitive arrays.
11291 * expr.c (build_newarray): If generating native code, call
11292 soft_newarray_node with a reference to the primitive TYPE identifier
11293 instead of type_value.
11294
11295 2000-12-17 Bryce McKinlay <bryce@albatross.co.nz>
11296
11297 Fix for PRs gcj/312 and gcj/253:
11298 * parse.y (valid_ref_assignconv_cast_p): Load classes for source and
11299 dest if they arn't already.
11300 * class.c (layout_class): Call maybe_layout_super_class on
11301 superinterfaces also, but only if compiling from bytecode.
11302
11303 Fix for PR gcj/373:
11304 * parse.y (create_class): Set ACC_STATIC if class is declared in an
11305 interface.
11306
11307 2000-12-15 Tom Tromey <tromey@redhat.com>
11308
11309 * jcf-parse.c (jcf_parse_source): Set wfl_operator if not already
11310 set.
11311
11312 2000-12-14 Andrew Haley <aph@redhat.com>
11313
11314 * boehm.c (mark_reference_fields): Change test to correctly detect
11315 bitmap overflow.
11316
11317 2000-12-15 Andreas Jaeger <aj@suse.de>
11318
11319 * config-lang.in (lang_dirs): Added.
11320
11321 2000-12-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
11322
11323 * parse.y (end_artificial_method_body): Fixed undefined behavior.
11324 Credits go to rth for finding it.
11325
11326 2000-12-13 Mike Stump <mrs@wrs.com>
11327
11328 * parse.y (check_static_final_variable_assignment_flag): Fix spelling.
11329
11330 2000-11-07 Tom Tromey <tromey@cygnus.com>
11331
11332 * Make-lang.in (JAVA_LEX_C): Added chartables.h.
11333 * lex.c (java_ignorable_control_p): Removed.
11334 (java_letter_or_digit_p): Removed.
11335 (java_start_char_p): New function.
11336 (java_read_char): Return `int', not `unicode_t'. Changed
11337 callers.
11338 (java_read_unicode): Likewise.
11339 (java_read_unicode_collapsing_terminators): Likewise.
11340 (java_get_unicode): Likewise.
11341 (java_new_lexer): Initialize hit_eof.
11342 (java_parse_end_comment): Take `int' argument.
11343 (java_parse_doc_section): Likewise.
11344 (java_parse_escape_sequence): Don't allow backlash-newline.
11345 Return `int'.
11346 * lex.h (JAVA_DIGIT_P): Removed.
11347 (_JAVA_LETTER_OR_DIGIT_P): Removed.
11348 (_JAVA_IDENTIFIER_IGNORABLE): Removed.
11349 (JAVA_START_CHAR_P): Renamed from JAVA_ID_CHAR_P.
11350 (JAVA_PART_CHAR_P): New macro.
11351 (UEOF): Now -1.
11352 (JAVA_CHAR_ERROR): Now -2.
11353 (java_lexer): New field `hit_eof'.
11354 * chartables.h: New file.
11355 * gen-table.pl: new file.
11356
11357 2000-11-20 Tom Tromey <tromey@cygnus.com>
11358 Alexandre Petit-Bianco <apbianco@cygnus.com>
11359
11360 * parse.y (java_complete_lhs): Only allow compound assignment of
11361 reference type if type is String.
11362
11363 2000-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
11364
11365 * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
11366 jcf-path.c: Likewise.
11367
11368 2000-12-09 Anthony Green <green@redhat.com>
11369
11370 * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
11371 filestart and filename_length as int values.
11372
11373 2000-12-07 Mo DeJong <mdejong@redhat.com>
11374
11375 * jcf-io.c (find_class): Correct the logic that tests to see if a
11376 .java file is newer than its .class file. The compiler was
11377 incorrectly printing a warning when file mod times were equal.
11378
11379 2000-12-07 Zack Weinberg <zack@wolery.stanford.edu>
11380
11381 * jvgenmain.c: Use ISPRINT not isascii.
11382
11383 2000-12-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
11384
11385 * parse.y (end_artificial_method_body): Fixed typo.
11386
11387 2000-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
11388
11389 * parse.y (patch_method_invocation): Pick the correct enclosing
11390 context when creating inner class instances.
11391 Fixes gcj/332.
11392
11393 2000-11-26 Joseph S. Myers <jsm28@cam.ac.uk>
11394
11395 * gjavah.c (version), jcf-dump.c (version), jv-scan.c (version):
11396 Update copyright year to 2000.
11397
11398 2000-11-23 Anthony Green <green@redhat.com>
11399
11400 * jcf-parse.c (init_jcf_parse): Register current_file_list root.
11401 Move current_file_list out of yyparse and make it static.
11402
11403 * expr.c: Declare quick_stack and tree_list_free_list as static
11404 (init_expr_processing): Register quick_stack and
11405 tree_list_free_list roots.
11406
11407 2000-11-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
11408
11409 * parse.y (build_outer_field_access): New local `decl_ctx', use
11410 it. Check for field's context and current class immediate outer
11411 context inheritance.
11412 (outer_field_access_p): Consider fields inherited from the last
11413 enclosing context.
11414 (build_access_to_thisn): Stop at the last enclosing context if
11415 necessary.
11416 Fixes gcj/367.
11417
11418 2000-11-23 J"orn Rennecke <amylaar@redhat.com>
11419
11420 * Make-lang.in (jvspec.o): Depend on $(CONFIG_H).
11421
11422 2000-11-22 Bryce McKinlay <bryce@albatross.co.nz>
11423
11424 * jcf-parse.c (get_constant): Call UT8_CHAR_LENGTH on `utf8', not the
11425 scratch buffer.
11426
11427 2000-11-20 Tom Tromey <tromey@cygnus.com>
11428
11429 * jv-scan.c (help): Document --complexity.
11430 (options): Added --complexity.
11431 (flag_complexity): New global.
11432 (main): Call `report'.
11433 * parse-scan.y (complexity): New global.
11434 (if_then_statement, if_then_else_statement,
11435 if_then_else_statement_nsi, switch_block_statement_group,
11436 while_expression, do_statement, for_begin, continue_statement,
11437 throw_statement, catch_clause, finally, method_invocation,
11438 conditional_and_expression, conditional_or_expression,
11439 conditional_expression): Update complexity.
11440 (reset_report): Reset complexity.
11441 (report): New function.
11442
11443 2000-11-20 Tom Tromey <tromey@cygnus.com>
11444
11445 * lex.c (yylex): Added STRICT_TK case.
11446 * parse.y (STRICT_TK): Added.
11447 * parse-scan.y (STRICT_TK): Added.
11448 * Make-lang.in ($(srcdir)/java/keyword.h): Added missing `\' and
11449 `;'. Use 4, not 3, with -k option. Correctly rename resulting
11450 file.
11451 * keyword.h: Rebuilt.
11452 * keyword.gperf (strictfp): Added.
11453
11454 2000-11-20 Tom Tromey <tromey@cygnus.com>
11455
11456 * lex.c (yylex): Recognize floating point constants with leading
11457 0.
11458
11459 2000-11-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11460
11461 * java-tree.h (cyclic_inheritance_report): Constify.
11462 * parse.y (cyclic_inheritance_report): Likewise.
11463
11464 2000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
11465
11466 * parse.y (goal): Remove call to ggc_add_string_root.
11467
11468 2000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
11469
11470 * jcf-parse.c (get_constant), parse.y (do_merge_string_cste):
11471 Create string in scratch buffer, then pass to build_string.
11472
11473 2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
11474
11475 * parse.y (issue_warning_error_from_context): Add
11476 ATTRIBUTE_PRINTF.
11477
11478 2000-11-11 Anthony Green <green@redhat.com>
11479
11480 * jcf-parse.c (process_zip_dir): Add finput parameter.
11481 (jcf_figure_file_type): Call process_zip_dir with appropriate
11482 argument.
11483
11484 2000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11485
11486 * decl.c (copy_lang_decl): Use memcpy, not bcopy.
11487 * jcf-parse.c (jcf_figure_file_type): Likewise.
11488
11489 2000-11-09 Joseph S. Myers <jsm28@cam.ac.uk>
11490
11491 * parse.y (create_new_parser_context): Use memset () instead of
11492 bzero ().
11493
11494 2000-11-08 Tom Tromey <tromey@cygnus.com>
11495
11496 * gjavah.c (process_file): Only include gcj/cni.h when generating
11497 CNI stubs.
11498
11499 2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
11500
11501 * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c
11502 (init_outgoing_cpool), lex.c (java_init_lex): Use memset ()
11503 instead of bzero ().
11504
11505 2000-11-05 Tom Tromey <tromey@cygnus.com>
11506
11507 * lex.h (JAVA_FLOAT_RANGE_ERROR): Typo fix.
11508 * lex.c (IS_ZERO): New define.
11509 (java_perform_atof): Error on floating point underflow.
11510
11511 2000-11-04 Tom Tromey <tromey@cygnus.com>
11512
11513 * lex.c (java_parse_escape_sequence): Only read two octal
11514 characters if the first one is greater than 3. Don't allow
11515 "octal" numbers to include the digits 8 or 9.
11516
11517 2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
11518
11519 * Make-lang.in (java.distdir): Remove.
11520
11521 2000-11-03 Tom Tromey <tromey@cygnus.com>
11522
11523 * Make-lang.in (java.dvi): New target.
11524 Partial fix for PR other/567.
11525
11526 * lang-options.h: Mention -Wout-of-date.
11527 * jcf-dump.c (flag_newer): New global.
11528 * gjavah.c (flag_newer): New global.
11529 * jcf-io.c (find_class): Only warn when flag_newer set.
11530 * lang.c (flag_newer): New global.
11531 (struct string_option): New declaration.
11532 (lang_W_options): New global.
11533 (process_option_with_no): New function.
11534 (lang_decode_option): Use it.
11535
11536 * class.c (cxx_keyword_p): Accept keywords with trailing `$'s.
11537 * gjavah.c (cxx_keyword_subst): Handle any number of trailing
11538 `$'.
11539
11540 * lex.h (_JAVA_IDENTIFIER_IGNORABLE): New macro.
11541 (JAVA_ID_CHAR_P): Also try java_ignorable_control_p.
11542 * lex.c (java_read_unicode): Removed `term_context' argument.
11543 Recognize any number of `u' in `\u'.
11544 (java_read_unicode_collapsing_terminators): New function.
11545 (java_get_unicode): Use it.
11546 (java_lineterminator): Removed.
11547 (yylex): Produce error if character literal is newline or single
11548 quote. Return if eof found in middle of `//' comment. EOF in
11549 `//' comment is only an error if pedantic.
11550 (java_ignorable_control_p): New function.
11551 (java_parse_end_comment): Return if eof found in middle of
11552 comment.
11553 Include flags.h.
11554 * jv-scan.c (pedantic): New global.
11555
11556 2000-10-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
11557
11558 * parse.y (outer_field_access_p): Inherited fields aren't
11559 consider outer fields.
11560 (maybe_build_thisn_access_method): Use
11561 PURE_INNER_CLASS_TYPE_P instead of INNER_CLASS_TYPE_P.
11562 (resolve_expression_name): Trigger an error if a static field
11563 is being accessed as an outer field.
11564
11565 2000-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
11566
11567 * Make-lang.in (LIBGCJ_ZIP_FILE): Define with `$(prefix)'.
11568 Fixes gcj/365.
11569
11570 2000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
11571
11572 * Make-lang.in: Move all build rules here from Makefile.in,
11573 adapt to new context. Wrap all rules that change the current
11574 directory in parentheses. Expunge all references to $(P).
11575 When one command depends on another and they're run all at
11576 once, use && to separate them, not ;. Add OUTPUT_OPTION to
11577 all object-file generation rules. Delete obsolete variables.
11578
11579 * Makefile.in: Delete.
11580 * config-lang.in: Delete outputs= line.
11581
11582 2000-10-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
11583
11584 * parse.y (patch_method_invocation): NULLify this_arg when already
11585 inserted.
11586 (maybe_use_access_method): Handle call to methods unrelated to the
11587 current class. Fixed comment.
11588 Fixes gcj/361.
11589
11590 2000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
11591
11592 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Check inherited type in
11593 scope.
11594
11595 2000-10-24 Tom Tromey <tromey@cygnus.com>
11596
11597 * lex.c (java_new_lexer): Initialize new fields. Work around
11598 broken iconv() implementations.
11599 (java_read_char): Swap bytes if required. Use fallback decoder if
11600 required.
11601 (byteswap_init, need_byteswap): New globals.
11602 (java_destroy_lexer): Only close iconv handle if it is in use.
11603 * lex.h (java_lexer): New fields read_anything, byte_swap,
11604 use_fallback.
11605 Made out_buffer unsigned.
11606
11607 2000-10-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
11608
11609 * parse.y (register_incomplete_type): Include JDEP_FIELD as a case
11610 where an enclosing context can be set on the jdep.
11611 (do_resolve_class): Fixed identation.
11612
11613 2000-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11614
11615 * gjavah.c (NEED_PEEK_ATTRIBUTE, NEED_SKIP_ATTRIBUTE): Define
11616
11617 * jcf-reader.c (peek_attribute, skip_attribute): Only define
11618 when requested.
11619
11620 * parse.h (yyerror): If JC1_LITE, mark with ATTRIBUTE_NORETURN.
11621
11622 * verify.c (CHECK_PC_IN_RANGE): Cast result of stmt-expr to void.
11623
11624 2000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
11625
11626 * jcf-write.c (OP1): Update `last_bc'.
11627 (struct jcf_block): Fixed indentation and typo in comments. New
11628 field `last_bc'.
11629 (generate_bytecode_insns): Insert `nop' if `jsr' immediately
11630 follows `monitorenter'.
11631 * parse.y (patch_synchronized_statement): New local `tmp'. Call
11632 `patch_string'.
11633 Fixes gcj/232.
11634
11635 2000-10-16 Tom Tromey <tromey@cygnus.com>
11636
11637 * jvspec.c (lang_specific_driver): Recognize -MF and -MT.
11638 * lang-specs.h: Added %{MA}, %{MF*}, %{MT*}.
11639 * lang-options.h: Added -MA, -MT, -MF..
11640 * lang.c (lang_decode_option): Recognize -MA, -MT, -MF.
11641 (DEPEND_TARGET_SET): New macro.
11642 (DEPEND_FILE_ALREADY_SET): Likewise.
11643 (init_parse): Handle new flags.
11644 * jcf.h (jcf_dependency_print_dummies): Declare.
11645 * Make-lang.in (s-java): Added mkdeps.o.
11646 * Makefile.in (BACKEND): Added mkdeps.o.
11647 (../gcjh$(exeext)): Added mkdeps.o.
11648 (../jcf-dump$(exeext)): Added mkdeps.o.
11649 * jcf-depend.c: Include mkdeps.h.
11650 (struct entry, dependencies, targets, MAX_OUTPUT_COLUMNS,
11651 add_entry): Removed.
11652 (jcf_dependency_reset): Rewrote.
11653 (dependencies): New global.
11654 (jcf_dependency_set_target): Rewrote.
11655 (jcf_dependency_add_target): Likewise.
11656 (jcf_dependency_add_file): Likewise.
11657 (munge): Removed.
11658 (print_ents): Removed.
11659 (jcf_dependency_write): Rewrote.
11660 (print_dummies): New global.
11661 (jcf_dependency_print_dummies): New function
11662 (jcf_dependency_write): Call deps_dummy_targets if required.
11663
11664 2000-10-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
11665
11666 * gjavah.c (add_class_decl): Removed unused variables `tname',
11667 `tlen' and `name_index'.
11668 * java-tree.h (BUILD_FILENAME_IDENTIFIER_NODE): New macro.
11669 * jcf-parse.c (jcf_parse_source): Use it and set EXPR_WFL_FILENAME
11670 in `wfl_operator' with value.
11671 (yyparse): Use BUILD_FILENAME_IDENTIFIER_NODE.
11672 (jcf_figure_file_type): Fixed identation.
11673 * lex.c (java_get_line_col): Use EOF. Tuned `^' placement.
11674 * parse.y (analyze_clinit_body): New function.
11675 (static_initializer:): Reset `current_static_block'.
11676 (java_parser_context_restore_global): Set EXPR_WFL_FIILENAME_NODE in
11677 `wfl_operator' with new value.
11678 (lookup_cl): Use EXPR_WFL_FILENAME.
11679 (maybe_yank_clinit): Handle bogus <clinit> bodies, call
11680 analyze_clinit_body.
11681 (build_outer_field_access): Access to this$<n> built from
11682 current_class, not its outer context.
11683 (build_access_to_thisn): Fixed leading comment. Tidied things up.
11684 (resolve_qualified_expression_name): Handle `T.this' and `T.this.f()'.
11685 (patch_method_invocation): Use `is_static_flag' when already
11686 initialized.
11687 (patch_newarray): Removed assignment in ternary operator.
11688
11689 2000-10-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
11690
11691 * except.c (free_eh_ranges): Don't free `whole_range'.
11692
11693 2000-10-15 Anthony Green <green@redhat.com>
11694
11695 * decl.c (init_decl_processing): Call init_class_processing before
11696 anything else.
11697
11698 2000-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
11699
11700 * check-init.c (check_init): Fixed leading comment. Use
11701 LOCAL_FINAL_P.
11702 * decl.c (push_jvm_slot): Use MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
11703 (give_name_to_locals): Likewise.
11704 (lang_mark_tree): Handle FIELD_DECL. Register `am' and `wfl'
11705 fields in lang_decl_var.
11706 * java-tree.h (DECL_FUNCTION_SYNTHETIC_CTOR,
11707 DECL_FUNCTION_ALL_FINAL_INITIALIZED): New macros.
11708 (FIELD_INNER_ACCESS): Removed ugly cast, macro rewritten.
11709 (FIELD_INNER_ACCESS_P, DECL_FIELD_FINAL_IUD, DECL_FIELD_FINAL_LIIC,
11710 DECL_FIELD_FINAL_IERR, DECL_FIELD_FINAL_WFL): New macros.
11711 (LOCAL_FINAL): Rewritten.
11712 (LOCAL_FINAL_P, FINAL_VARIABLE_P, CLASS_FINAL_VARIABLE_P
11713 MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): New macros.
11714 (struct lang_decl): Fixed comments. Added `synthetic_ctor' and
11715 `init_final' fields.
11716 (struct lang_decl_var): Fixed leading comment. Added `am', `wfl',
11717 `final_uid', `final_liic', `final_ierr' and `local_final' fields.
11718 (TYPE_HAS_FINAL_VARIABLE): New macro.
11719 (struct lang_type): Added `afv' field.
11720 * parse.y (check_static_final_variable_assignment_flag): New function.
11721 (reset_static_final_variable_assignment_flag): Likewise.
11722 (check_final_variable_local_assignment_flag): Likewise.
11723 (reset_final_variable_local_assignment_flag): Likewise.
11724 (check_final_variable_indirect_assignment): Likewise.
11725 (check_final_variable_global_assignment_flag): Likewise.
11726 (add_inner_class_fields): Use LOCAL_FINAL_P.
11727 (register_fields): Handle local finals and final variables.
11728 (craft_constructor): Set DECL_FUNCTION_SYNTHETIC_CTOR.
11729 (declare_local_variables): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
11730 (source_start_java_method): Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC
11731 on local finals.
11732 (java_complete_expand_methods): Loop to set
11733 TYPE_HAS_FINAL_VARIABLE. Call
11734 `reset_final_variable_local_assignment_flag' and
11735 `check_final_variable_local_assignment_flag' accordingly before
11736 and after constructor expansion. Call
11737 `reset_static_final_variable_assignment_flag'
11738 before expanding <clinit> and after call
11739 `check_static_final_variable_assignment_flag' if the
11740 current_class isn't an interface. After all methods have been
11741 expanded, call `check_final_variable_global_assignment_flag' and
11742 `check_static_final_variable_assignment_flag' if the current class
11743 is an interface.
11744 (maybe_yank_clinit): Fixed typo in comment.
11745 (build_outer_field_access_methods): Removed old sanity check. Use
11746 FIELD_INNER_ACCESS_P. Call MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC.
11747 Don't create access methods for finals.
11748 (resolve_field_access): Use `CLASS_FINAL_VARIABLE_P'.
11749 (java_complete_tree): Likewise. Reset DECL_FIELD_FINAL_IUD if
11750 existing DECL_INIT has been processed.
11751 (java_complete_lhs): Likewise.
11752 (check_final_assignment): Filter input on `lvalue''s TREE_CODE.
11753 Test for COMPONENT_REF to get to the FIELD_DECL. Implemented new
11754 logic.
11755 (patch_assignment): Use LOCAL_FINAL_P.
11756 (fold_constant_for_init): Reset DECL_FIELD_FINAL_IUD if
11757 DECL_INITIAL is nullified.
11758 Fixes gcj/163.
11759
11760 2000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11761
11762 * Make-lang.in (parse.c, parse-scan.c): Create atomically.
11763
11764 * Makefile.in (parse.c, parse-scan.c): Likewise.
11765
11766 2000-10-12 Mark Mitchell <mark@codesourcery.com>
11767
11768 * class.c (temporary_obstack): Remove.
11769 (make_class): Don't mess with obstascks.
11770 (push_class): Likewise.
11771 (set_super_info): Likewise.
11772 (add_method_1): Likewise.
11773 (add_method): Likewise.
11774 (add_field): Likewise.
11775 (build_utf8_ref): Likewise.
11776 (build_class_ref): Likewise.
11777 (build_static_field_ref): Likewise.
11778 (finish_class): Likewise.
11779 (push_super_field): Likewise.
11780 (layout_class): Likewise.
11781 (layout_class_methods): Likewise.
11782 (init_class_processing): Likewise.
11783 * constants.c (get_tag_node): Likewise.
11784 (build_constant_data_ref): Likewise.
11785 * decl.c (ggc_p): Remove.
11786 (copy_lang_decl): Use ggc_alloc.
11787 (complete_start_java_method): Don't mess with obstacks.
11788 (start_java_method): Likewise.
11789 (end_java_method): Likewise.
11790 * except.c (link_handler): Use xmalloc.
11791 (free_eh_ranges): New function.
11792 (method_init_exceptions): Use it.
11793 (add_handler): Use xmalloc.
11794 (expand_start_java_handler): Don't mess with obstacks.
11795 (prepare_eh_table_type): Likewise.
11796 (expand_end_java_handler): Likewise.
11797 * expr.c (push_value): Likewise.
11798 (create_label_decl): Likewise.
11799 (build_jni_stub): Likewise.
11800 (java_lang_expand_expr): Likewise.
11801 (note_instructions): Use xrealloc.
11802 (java_push_constant_from_pool): Don't mess with obstacks.
11803 (process_jvm_instruction): Likewise.
11804 * java-tree.h (cyclic_inheritance_report): Remove duplicate
11805 declaration.
11806 * jcf-parse.c (get_constant): Don't mess with obstacks.
11807 (read_class): Likewise.
11808 (jcf_parse): Likewise.
11809 * lex.c (expression_obstack): Remove.
11810 (java_lex): Don't use obstack_free.
11811 * parse.h (exit_java_complete_class): Don't mess with obstacks.
11812 (MANGLE_OUTER_LOCAL_VARIABLE_NAME): Adjust.
11813 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): Likewise.
11814 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING): Likewise.
11815 * parse.y (gaol): Add more GC roots.
11816 (add_inner_class_fields): Adjust calls to MANGLE_* macros.
11817 (lookup_field_wrapper): Likewise.
11818 (obtain_incomplete_type): Don't mess with obstacks.
11819 (build_alias_initializer_parameter_list): Adjust calls to MANGLE_*
11820 macros.
11821 (craft_constructor): Don't mess with obstacks.
11822 (safe_layout_class): Likewise.
11823 (java_complete_class): Likewise.
11824 (source_end_java_method): Likewise.
11825 (build_outer_field_access_methods): Likewise.
11826 (build_outer_method_access_method): Likewise.
11827 (maybe_build_thisn_access_method): Likewise.
11828 (build_dot_class_method_invocation): Likewise.
11829 (java_complete_tree): Likewise.
11830 (java_complete_lhs): Likewise.
11831 (do_merge_string_cste): Likewise.
11832 (patch_string_cst): Likewise.
11833 (array_constructor_check_entry): Likewise.
11834 * typeck.c (build_java_array_type): Likewise.
11835 (parse_signature_string): Likewise.
11836 (build_java_signature): Likewise.
11837
11838 2000-10-12 Tom Tromey <tromey@cygnus.com>
11839
11840 Fix for PR gcj/356:
11841 * gjavah.c (add_class_decl): Don't special-case inner classes.
11842 (add_namelet): Likewise.
11843
11844 2000-10-11 Rodney Brown <RodneyBrown@mynd.com>
11845
11846 * java-tree.h: Constify current_encoding.
11847 * lang.c: Constify current_encoding.
11848
11849 2000-10-10 Jeff Sturm <jeff.sturm@appnet.com>
11850
11851 * jvgenmain.c (class_mangling_suffix): Omit `.'.
11852 (main): Use `$' when NO_DOLLAR_IN_LABEL is not set, otherwise `.'.
11853
11854 2000-10-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
11855
11856 * expr.c (java_lang_expand_expr): Reinstall 1999-08-14 Anthony's
11857 patch. Fixes gcj/340.
11858
11859 2000-10-10 Tom Tromey <tromey@cygnus.com>
11860
11861 * lex.c (java_new_lexer): Initialize out_first and out_last
11862 fields.
11863 * lex.h (java_lexer): Added out_buffer, out_first, out_last.
11864
11865 2000-10-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
11866
11867 * parse.y (pop_current_osb): New function.
11868 (array_type:): Use `dims:', changed actions
11869 accordingly. Suggested by Anthony Green.
11870 (array_creation_expression:): Used pop_current_osb.
11871 (cast_expression:): Likewise.
11872 (search_applicable_method_list): Fixed indentation.
11873
11874 2000-10-08 Anthony Green <green@redhat.com>
11875
11876 * parse.y (array_type_literal): Remove production.
11877 (type_literals): Refer to array_type, not array_type_literal.
11878
11879 2000-10-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
11880
11881 Patch contributed by Corey Minyard.
11882 * decl.c (check_local_named_variable): New function.
11883 (tree check_local_unnamed_variable): Likewise.
11884 (find_local_variable): Splitted. Call check_local_{un}named_variable.
11885
11886 2000-10-07 Anthony Green <green@redhat.com>
11887
11888 * class.c (layout_class): Handle case where superclass can't be
11889 layed out yet.
11890
11891 2000-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
11892
11893 * Makefile.in (keyword.h): Refer to GNU FTP site for updated
11894 gperf.
11895
11896 2000-10-05 Tom Tromey <tromey@cygnus.com>
11897
11898 * jvspec.c (jvgenmain_spec): Added `-fdollars-in-identifiers'.
11899 * jvgenmain.c (class_mangling_prefix): Removed.
11900 (class_mangling_suffix): New global.
11901 (main): Use it.
11902 * gjavah.c (cxx_keyword_subst): Mangle C++ keywords by appending
11903 `$'.
11904 (print_method_info): Handle overrides for static and final
11905 methods.
11906 (process_file): Generate declaration for class object field.
11907 * class.c (cxx_keywords): New array.
11908 (utf8_cmp): New function.
11909 (cxx_keyword_p): New function.
11910 (layout_class_method): Mangle C++ keywords by appending `$'.
11911 (mangle_field): New function.
11912 (mangle_class_field): Use mangle_field. Mangle class name as
11913 `class$'.
11914 (mangle_static_field): Use mangle_field.
11915
11916 2000-10-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
11917
11918 * decl.c (find_local_variable): Removed uncessary type check and
11919 fixed range check typo. From Corey Minyard.
11920
11921 2000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
11922
11923 * decl.c (give_name_to_locals): New local `code_offset'. Call
11924 `maybe_adjust_start_pc'.
11925 * expr.c (note_instructions): New function.
11926 (expand_byte_code): Don't collect insn starts here.
11927 (peek_opcode_at_pc): New function.
11928 (maybe_adjust_start_pc): Likewise.
11929 * java-tree.h (maybe_adjust_start_pc): Declare.
11930 (note_instructions): Likewise.
11931 * jcf-parse.c (parse_class_file): Call `note_instructions'.
11932
11933 2000-09-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
11934
11935 * parse.y (field_access:): Fixed indentation.
11936 (qualify_ambiguous_name): Properly qualify `this.a[b].c'.
11937
11938 2000-09-07 Tom Tromey <tromey@cygnus.com>
11939
11940 Fix for PR gcj/307:
11941 * parse.y (patch_binop): Use JNUMERIC_TYPE_P, not
11942 JPRIMITIVE_TYPE_P, for arithmetic operators.
11943 (patch_method_invocation): Indentation fix.
11944 (try_builtin_assignconv): Handle boolean specially. Fixed typo.
11945 (valid_builtin_assignconv_identity_widening_p): Handle boolean.
11946 (do_unary_numeric_promotion): Cleaned up code.
11947 (valid_cast_to_p): Handle boolean correctly.
11948
11949 2000-09-27 Tom Tromey <tromey@cygnus.com>
11950
11951 * lex.c (java_read_unicode): Reset bs_count when finished with
11952 `\u' sequence.
11953
11954 2000-10-01 Mark Mitchell <mark@codesourcery.com>
11955
11956 Convert to GC.
11957 * Make-lang.in (s-java): Don't depend on ggc-callbacks.o.
11958 * Makefile.in (BACKEND): Don't include ggc-callbacks.o.
11959 (typeck.o): Depend on ggc.h.
11960 * class.c (add_method_1): Use GC functions for allocation.
11961 (init_class_processing): Register roots.
11962 * decl.c (ggc_p): Set to 1.
11963 (pending_local_decls): Make it static.
11964 (push_jvm_slot): Use GC functions for allocation.
11965 (init_decl_processing): Register roots.
11966 (give_name_to_locals): Use GC functions for allocation.
11967 (lang_mark_tree): New function.
11968 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Use GC
11969 functions for allocation.
11970 * jcf-parse.c (jcf_parse_source): Use ggc_strdup.
11971 * lex.c (java_lex): Use build_string, rather than replicating it
11972 inline.
11973 * parse.y (goal): Add more roots.
11974 (mark_parser_ctxt): New function.
11975 * typeck.c: Include ggc.h.
11976
11977 2000-09-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
11978
11979 * parse.y (maybe_yank_clinit): Also keep <clinit> if its body
11980 contains something else than MODIFY_EXPR.
11981
11982 2000-09-23 Mark Mitchell <mark@codesourcery.com>
11983
11984 * Make-lang.in (JAVA_SRCS): Include java-tree.h.
11985 * Makefile.in (parse.o): Depend on ggc.h.
11986 (class.o): Likewise.
11987 (constants.o): Likewise.
11988 (decl.o): Likewise.
11989 (expr.o): Likewise.
11990 (jcf-parse.o): Likewise.
11991 (jcf-write.o): Likewise.
11992 (mangle.o): Likewise.
11993 * class.c: Include ggc.h.
11994 (build_static_field_ref): Register GC roots.
11995 (layout_class): Likewise.
11996 (init_class_processing): Likewise.
11997 * constants.c: Include ggc.h.
11998 (current_constant_pool_data_ref): Remove.
11999 (tag_nodes): Move it to ...
12000 (get_tag_node): ... here. Register GC roots.
12001 * decl.c: Include ggc.h. Remove many global tree definitions.
12002 (throw_node): Define.
12003 (java_global_trees): Likewise.
12004 (predef_filenames): Make the size a constant.
12005 (init_decl_processing): Adjust accordingly.
12006 (init_decl_processing): Call init_jcf_parse. Register GC roots.
12007 * expr.c: Include ggc.h.
12008 (init_expr_processing): Register GC roots.
12009 (build_invokeinterface): Likewise.
12010 * java-tree.h: Replace extern tree declarations with macros.
12011 (java_global_trees): New variable.
12012 (java_tree_index): New enumeration.
12013 (init_jcf_parse): Declare.
12014 * jcf-parse.c: Include ggc.h.
12015 (current_class): Remove declaration.
12016 (main_class): Likewise.
12017 (all_class_list): Likewise.
12018 (predefined_filename_p): Adjust for constant size of
12019 predef_filenames.
12020 (init_jcf_parse): New function.
12021 * jcf-write.c: Include ggc.h.
12022 (generate_classfile): Register GC roots.
12023 (append_synthetic_attribute): Likewise.
12024 (append_innerclass_attribute_entry): Likewise.
12025 * lang.c: Include ggc.h.
12026 (lang_print_error): Register GC roots.
12027 * parse.h (struct parser_ctxt): Rename fields to avoid conflicts
12028 with macros.
12029 * parse.y: Include ggc.h.
12030 (wfl_operator): Remove.
12031 (goal): Register GC roots.
12032 (java_pop_parser_context): Adjust for new field names.
12033 (java_parser_context_save_global): Likewse.
12034 (java_parser_context_restore_global): Likewise.
12035 (java_parser_context_suspend): Likewise.
12036 (java_parser_context_resume): Likewise.
12037 (verify_constructor_circularity): Register GC roots.
12038 (lookup_cl): Likewise.
12039 (java_reorder_fields): Likewise.
12040 (build_current_this): Likewise.
12041 (class_in_current_package): Likewise.
12042 (argument_types_convertible): Likewise.
12043 (patch_cast): Rename wfl_op parameter to avoid macro conflicts.
12044
12045 2000-09-14 Tom Tromey <tromey@cygnus.com>
12046
12047 * lex.h: Use HAVE_ICONV_H, not HAVE_ICONV.
12048
12049 2000-09-13 Tom Tromey <tromey@cygnus.com>
12050
12051 * jcf-parse.c: Include <locale.h>.
12052 * jv-scan.c: Include <locale.h>.
12053
12054 2000-09-12 Tom Tromey <tromey@cygnus.com>
12055
12056 * expr.c (pop_type_0): Return `Object' if trying to merge two
12057 interface types.
12058 * verify.c (merge_types): Don't return `TYPE_UNKNOWN' for
12059 interface types; `Object' is always a valid supertype.
12060
12061 2000-09-12 Tom Tromey <tromey@cygnus.com>
12062
12063 Fix for PR gcj/33:
12064 * jv-scan.c (help): Document --encoding.
12065 (options): Added `encoding' entry.
12066 (OPT_ENCODING): New define.
12067 (main): Handle --encoding.
12068 Include <langinfo.h> if nl_langinfo exists.
12069 * lang-options.h: Document --classpath, --CLASSPATH, --main, and
12070 --encoding.
12071 * jcf-parse.c Include <langinfo.h> if we have nl_langinfo.
12072 (parse_source_file): Correctly call java_init_lex. Added `finput'
12073 argument. Use nl_langinfo to determine default encoding.
12074 * java-tree.h (current_encoding): Declare.
12075 * parse.y (java_parser_context_restore_global): Don't restore
12076 `finput'.
12077 (java_parser_context_save_global): Don't set `finput' field.
12078 (java_pop_parser_context): Don't restore `finput'. Free old lexer
12079 if required.
12080 * lang.c (current_encoding): New global.
12081 (lang_decode_option): Recognize `-fencoding='.
12082 (finish_parse): Don't close finput.
12083 * parse.h (struct parser_ctxt): Removed `finput' and
12084 `unget_utf8_value' fields. Added `lexer' field.
12085 (java_init_lex): Fixed declaration.
12086 * lex.c (java_new_lexer): New function.
12087 (java_destroy_lexer): Likewise.
12088 (java_read_char): Added `lex' argument. Handle iconv case.
12089 (java_read_unicode): Added `lex' argument. Count backslashes in
12090 lexer structure.
12091 (java_init_lex): Added `finput' and `encoding' arguments. Set
12092 `lexer' field in ctxp.
12093 (BAD_UTF8_VALUE): Removed.
12094 (java_lex): Handle seeing UEOF in the middle of a string literal.
12095 * lex.h: Include <iconv.h> if HAVE_ICONV defined.
12096 (java_lexer): New structure.
12097 (UNGETC): Removed.
12098 (GETC): Removed.
12099 (DEFAULT_ENCODING): New define.
12100 (java_destroy_lexer): Declare.
12101
12102 2000-09-12 Tom Tromey <tromey@cygnus.com>
12103
12104 Fix for PR gcj/343:
12105 * lex.c (java_init_lex): Initialize java_io_serializable.
12106 * parse.y (java_io_serializable): New global.
12107 (valid_ref_assignconv_cast_p): An array can be cast to
12108 serializable.
12109
12110 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
12111
12112 * decl.c, expr.c: Include defaults.h if not already included.
12113 Don't define the *_TYPE_SIZE macros.
12114
12115 2000-09-09 Geoffrey Keating <geoffk@cygnus.com>
12116
12117 * typeck.c (build_java_array_type): Correct first parameter
12118 in ADJUST_FIELD_ALIGN invocation.
12119
12120 2000-09-06 Tom Tromey <tromey@cygnus.com>
12121
12122 * lang-specs.h: Also recognize `-femit-class-files'.
12123
12124 2000-09-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
12125
12126 * verify.c (merge_types): Load the types to merge if necessary.
12127
12128 2000-09-02 Anthony Green <green@redhat.com>
12129
12130 * jcf-io.c: Include zlib.h.
12131 (open_in_zip): Read compressed class file archives.
12132 * zipfile.h (ZipDirectory): Add uncompressed_size and
12133 compression_method fields.
12134 * zextract.c (read_zip_archive): Collect file compression info.
12135
12136 2000-08-15 Bryce McKinlay <bryce@albatross.co.nz>
12137
12138 * parse.y (do_resolve_class): Also explore superclasses of
12139 intermediate enclosing contexts when searching for inner classes.
12140
12141 2000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
12142
12143 * parse.y (variable_declarator_id:): Better error message.
12144 (expression_statement:): Use YYNOT_TWICE.
12145 (cast_expression:): Likewise.
12146 (assignment:): Likewise.
12147
12148 2000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
12149
12150 * parse.y (do_merge_string_cste): New locals. Create new
12151 STRING_CSTs each time, use memcpy. Fixes gcj/311.
12152
12153 2000-08-07 Hans Boehm <boehm@acm.org>
12154
12155 * boehm.c (mark_reference_fields): Set marking bits for all words in
12156 a multiple-word record.
12157 (get_boehm_type_descriptor): Use the procedure marking descriptor for
12158 java.lang.Class.
12159
12160 2000-08-31 Mike Stump <mrs@wrs.com>
12161
12162 * Make-lang.in (jc1$(exeext), gcjh$(exeext), jv-scan$(exeext),
12163 jcf-dump$(exeext)): Make parallel safe.
12164
12165 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
12166
12167 * jcf-parse.c (set_source_filename): Constify a char *.
12168 * jcf-write.c (append_innerclasses_attribute,
12169 make_class_file_name): Constify a char *. Don't recycle a
12170 variable for an unrelated purpose.
12171 * parse.y: (build_alias_initializer_parameter_list): Constify a char *.
12172 (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings.
12173
12174 2000-08-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12175
12176 * expr.c (can_widen_reference_to): Fixed indentation.
12177 * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment.
12178 * parse.y: `finit$' replaces `$finit$' in comments.
12179 (try_builtin_assignconv): Fixed leading comment.
12180
12181 2000-08-25 Greg McGary <greg@mcgary.org>
12182
12183 * gjavah.c (cxx_keyword_subst): Use ARRAY_SIZE.
12184
12185 2000-08-24 Greg McGary <greg@mcgary.org>
12186
12187 * lang.c (lang_decode_option): Use ARRAY_SIZE.
12188 * parse.y (BINOP_LOOKUP): Likewise.
12189
12190 2000-08-22 Andrew Haley <aph@cygnus.com>
12191
12192 * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before
12193 sign extending. Fixes gcj/321.
12194 * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before
12195 combining to make a jlong. Fixes gcj/321.
12196
12197 2000-08-21 Nix <nix@esperi.demon.co.uk>
12198
12199 * lang-specs.h: Do not process -o or run the assembler if
12200 -fsyntax-only.
12201
12202 2000-08-16 Andrew Haley <aph@cygnus.com>
12203
12204 * typeck.c (build_java_array_type): Rewrite code to do array
12205 alignment. Take into account back-end macros when aligning array
12206 data. Remove setting of TYPE_USER_ALIGN; Java doesn't allow the
12207 user to set alignment. Fixes gcj/252 and 160.
12208
12209 2000-08-09 Tom Tromey <tromey@cygnus.com>
12210
12211 * parse.y (check_abstract_method_definitions): Now return `int'.
12212 Check implemented interfaces. Fixes PR gcj/305.
12213
12214 * parse.y (patch_switch_statement): Disallow `long' in switch
12215 expressions. Fixes PR gcj/310.
12216
12217 2000-08-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
12218
12219 * decl.c (finit_leg_identifier_node): New global.
12220 (init_decl_processing): Use `finit$' to initialize
12221 finit_identifier_node. Use `$finit$' to initialize
12222 finit_leg_identifier_node.
12223 * expr.c (expand_java_field_op): Use ID_FINIT_P.
12224 * java-tree.h (finit_identifier_node): Changed attached comment.
12225 (finit_leg_identifier_node): New declaration.
12226 (ID_FINIT_P): Take finit_identifier_node and
12227 finit_leg_identifier_node into account. This is a backward
12228 compatibility hack.
12229
12230 2000-08-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
12231
12232 * jcf-write.c (generate_bytecode_conditional): Re-installed lost
12233 Jan 6 2000 patch.
12234 (generate_bytecode_insns): Check `nargs' before emitting it.
12235 * verify.c (merge_type_state): Fixed typo.
12236 * ChangeLog: Fixed typo in some jcf-write.c entries mentioning
12237 generate_bytecode_{conditional,insns}.
12238
12239 2000-08-13 Anthony Green <green@redhat.com>
12240
12241 * check-init.c (check_init): Add case for BIT_FIELD_REF (required
12242 for -pg builds).
12243
12244 2000-08-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12245
12246 * class.c (maybe_layout_super_class): Fixed indentation.
12247 * java-tree.h (CLASS_METHOD_CHECKED_P): New macro.
12248 (java_check_methods): New function declaration.
12249 * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str'
12250 instead of `str_ptr'.
12251 * jcf-write.c (generate_bytecode_insns): Emit number the of args
12252 of a `invokeinterface' at the right time.
12253 * parse.h (WFL_STRIP_BRACKET): New macro.
12254 (SET_TYPE_FOR_RESOLUTION): Use it.
12255 * parse.y (build_unresolved_array_type): Reuse `type_or_wfl'.
12256 (check_class_interface_creation): Don't check for cross package
12257 innerclass name clashes.
12258 (method_header): Behave properly if MDECL is `error_mark_node'.
12259 (method_declarator): Return `error_mark_node' if bogus current
12260 class.
12261 (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary.
12262 (resolve_and_layout): New local `decl_type', set and used. Call
12263 java_check_methods.
12264 (java_check_methods): New method.
12265 (java_layout_classes): Use it.
12266 (resolve_qualified_expression_name): No EH check necessary in
12267 access$<n>.
12268 (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating
12269 `case' statement.
12270 (patch_assignment): Set DECL_INITIAL on integral final local.
12271
12272 2000-08-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
12273
12274 * java-tree.h (flag_extraneous_semicolon): New extern.
12275 * lang-options.h: (-Wextraneous-semicolon): New option.
12276 * lang.c (flag_redundant): Fixed typo in leading comment.
12277 (flag_extraneous_semicolon): New global.
12278 (lang_decode_option): Set `flag_extraneous_semicolon' when
12279 -Wall. Decode `-Wextraneous-semicolon'.
12280 * parse.y (type_declaration:): Removed `SC_TK' hack, added
12281 `empty_statement' rule.
12282 (class_body_declaration): Likewise.
12283 (method_body:): Accept `;' as a method body.
12284 (static_initializer:): Removed `SC_TK' hack.
12285 (constructor_block_end:): Likewise.
12286 (empty_statement:): Report deprecated empty declaration. Fixes
12287 gcj/295
12288
12289 2000-08-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12290
12291 * parse.y (build_dot_class_method_invocation): Changed parameter
12292 name to `type'. Build signature from `type' and convert it to a
12293 STRING_CST if it's an array.
12294 (patch_incomplete_class_ref): `build_dot_class_method_invocation'
12295 to use `ref_type' directly.
12296
12297 2000-08-06 Ovidiu Predescu <ovidiu@cup.hp.com>
12298
12299 * lang-options.h: Added a comma after the last element to avoid
12300 syntax errors when other languages define additional options.
12301
12302 2000-08-04 Zack Weinberg <zack@wolery.cumb.org>
12303
12304 * Make-lang.in (jc1, jv-scan): Depend on $(BACKEND), not stamp-objlist.
12305 * Makefile.in: Add BACKEND; delete OBJS, OBJDEPS.
12306 (jc1): Link with $(BACKEND).
12307 (jv-scan): Depend on version.o, not all of $(OBJS) or $(BACKEND).
12308
12309 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
12310
12311 * jvspec.c: Adjust type of second argument to
12312 lang_specific_driver, and update code as necessary.
12313
12314 * class.c (build_dtable_decl): Initialize dummy.
12315
12316 2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12317
12318 * parse.y (maybe_yank_clinit): When generating bytecode: non empty
12319 method bodies not to rule out discarding `<clinit>'; don't use
12320 <clinit> to initialize static fields with constant initializers.
12321
12322 2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12323
12324 * gjavah.c (print_method_info): Added `synth' parameter. Skip
12325 synthetic methods.
12326 (method_synthetic): New global.
12327 (HANDLE_METHOD): Recognize synthetic method and tell
12328 `print_method_info' about it.
12329 (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're
12330 processing a synthetic method.
12331 * jcf-reader.c (skip_attribute): New function.
12332 ( skip_attribute): Likewise.
12333
12334 2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12335
12336 * parse.y (build_outer_field_access): Fixed comments.
12337 (fix_constructors): Emit the initialization of this$<n> before
12338 calling $finit$.
12339 (resolve_qualified_expression_name): Build an access to `decl' if
12340 necessary.
12341
12342 2000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
12343
12344 * parse-scan.y (curent_class): Non longer const.
12345 (inner_qualifier, inner_qualifier_length): Deleted.
12346 (current_class_length): New global.
12347 (bracket_count): Fixed typo in leading comment.
12348 (anonymous_count): New global.
12349 (class_instance_creation_expression:): Handle anonymous classes.
12350 (anonymous_class_creation:): New rule.
12351 (push_class_context): Rewritten.
12352 (pop_class_context): Likewise.
12353 (INNER_QUALIFIER): Macro deleted.
12354 (report_class_declaration): call `push_class_context' when
12355 entering the function. `fprintf' format modified not to use
12356 INNER_QUALIFIER.
12357 (report_class_declaration): Assign `package_name' and
12358 `current_class' to NULL separately.
12359
12360 2000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
12361
12362 * expr.c (build_invokeinterface): Call layout_class_methods on
12363 target interface.
12364
12365 2000-07-27 Tom Tromey <tromey@cygnus.com>
12366 Anthony Green <green@cygnus.com>
12367 Alexandre Petit-Bianco <apbianco@cygnus.com>
12368
12369 * class.c (make_class_data): Create vtable for abstract classes.
12370 (get_dispatch_table): Changed to cope with abstract classes.
12371
12372 2000-07-27 Tom Tromey <tromey@cygnus.com>
12373
12374 * parse.y (patch_method_invocation): Don't reverse the argument
12375 list when dealing with anonymous class constructors. Fixed typo in
12376 comment.
12377
12378 2000-07-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
12379
12380 * parse.y (build_alias_initializer_parameter_list): Reverse
12381 crafted list when building aliases for anonymous class
12382 constructors.
12383
12384 2000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
12385
12386 * parse.y (jdep_resolve_class): Don't bother checking potential
12387 innerclass access if `decl' is NULL.
12388 (find_in_imports_on_demand): TREE_PURPOSE of `import' contains the
12389 WFL.
12390
12391 2000-07-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
12392
12393 * parse.c: Remove (again.)
12394
12395 2000-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
12396
12397 * parse.y (find_as_inner_class): Removed 2000-07-19 patches.
12398 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Local `decl' moved
12399 outside the `if' statement, alias to innerclass removed, `decl'
12400 used to mark the class complete.
12401
12402 2000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
12403
12404 * parse.y (simple_name:): Fixed typo in error message.
12405
12406 2000-07-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
12407
12408 * parse.y (java_complete_lhs): LOOP_EXPR:, SWITCH_EXPR: the node
12409 or its first operand can be error marks.
12410
12411 2000-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
12412
12413 * parse.h (SET_TYPE_FOR_RESOLUTION): Use GET_CPC.
12414 * parse.y (method_header): Likewise.
12415
12416 2000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
12417
12418 * parse.y (process_imports): Consider that one might be trying to
12419 import an innerclass. Fixes gcj/254
12420
12421 2000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
12422
12423 * parse.y (find_as_inner_class): Handle the case where the
12424 enclosing context of an innerclass has been loaded as bytecode.
12425
12426 2000-07-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
12427
12428 * parse.y (simple_name:): Reject `$' in type names.
12429 (resolve_type_during_patch): Use `type' as a second
12430 argument to resolve_no_layout. Fixes gcj/257.
12431
12432 2000-07-18 Bryce McKinlay <bryce@albatross.co.nz>
12433
12434 * parse.y (find_most_specific_methods_list): Select the only
12435 non-abstract method even if max has been set.
12436 Fixes gcj/285, gcj/298.
12437
12438 2000-07-18 Jeff Sturm <jeff.sturm@appnet.com>
12439
12440 * lang-specs.h: Added %(jc1) to java compiler options.
12441
12442 2000-07-14 Zack Weinberg <zack@wolery.cumb.org>
12443
12444 * .cvsignore: New file.
12445
12446 2000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12447
12448 * parse.y (not_accessible_p): Access granted to innerclasses
12449 (indirectly) extending the reference type. Fixes gcj/249.
12450
12451 2000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12452
12453 * parse.y (patch_method_invocation): Fixed comment.
12454 (maybe_use_access_method): Build this$<n>s to the context of the
12455 target method, or a type that extends it. Fixes gcj/242.
12456
12457 2000-07-13 Mark Mitchell <mark@codesourcery.com>
12458
12459 * parse.c: Remove.
12460
12461 2000-07-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
12462
12463 * parse.y (fold_constant_for_init): Avoid bullish conversion.
12464
12465 2000-07-13 Tom Tromey <tromey@cygnus.com>
12466
12467 * lang-specs.h: Added %{I*}.
12468
12469 2000-07-13 Zack Weinberg <zack@wolery.cumb.org>
12470
12471 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
12472
12473 2000-07-12 Mark Mitchell <mark@codesourcery.com>
12474
12475 * parse-scan.c: Remove.
12476
12477 2000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12478
12479 * class.c (set_super_info): Handled protected inner classes.
12480 (common_enclosing_context_p): Bail early if arguments aren't both
12481 inner classes.
12482 (get_access_flags_from_decl): Handle private and protected inner
12483 classes.
12484 * java-tree.h (TYPE_PROTECTED_INNER_CLASS): New macro.
12485 (CLASS_PROTECTED): Likewise.
12486 (struct lang_type): New bitfield `poic'.
12487 * parse.y (jdep_resolve_class): Call check_inner_class_access on
12488 inner classes only.
12489 (check_inner_class_access): Renamed arguments, added
12490 comments. Handles protected inner classes (fixes gcj/225)
12491 (not_accessible_p): Fixed comments. Avoid handling inner classes.
12492
12493 2000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12494
12495 * parse.y (resolve_qualified_expression_name): Verify qualified
12496 access to `this'. Fixes gcj/239.
12497
12498 2000-07-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
12499
12500 * jcf-write.c (generate_classfile): Don't install ConstantValue
12501 for null pointers.
12502
12503 2000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12504
12505 * parse.y (resolve_qualified_expression_name): Handle inner class
12506 access. Fixes gcj/256.
12507
12508 2000-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
12509
12510 * jcf-write.c (generate_classfile): Properly install the
12511 ConstantValue attribute and the initial value constant pool index
12512 on string constants.
12513 * parse.y (java_complete_lhs): Keep DECL_INITIAL when emitting
12514 class files.
12515
12516 2000-07-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
12517
12518 * parse.h (BUILD_PTR_FROM_NAME): Surround with a do/while
12519 construct.
12520 * parse.y (find_as_inner_class): Fixed typo.
12521 (do_resolve_class): Explore enclosing contexts when searching for
12522 innerclasses. Removed curly brackets around BUILD_PTR_FROM_NAME.
12523 (check_inner_class_access): Check `decl' which can be null in case
12524 of previous errors.
12525
12526 2000-07-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
12527
12528 * java-tree.h (java_debug_context): Declared `extern'.
12529 (safe_layout_class): Likewise.
12530 * parse.y (resolve_field_access): Field must be `static' in order
12531 to be replaced by its initial value. Added comments.
12532 (find_applicable_accessible_methods_list): Fixed typo.
12533 (find_most_specific_methods_list): Methods found in innerclasses
12534 take over methods founds in the enclosing contexts.
12535 (java_complete_tree): Loosen restrictions on the type of DECLs
12536 that can be replaced by their initialization values.
12537 (valid_ref_assignconv_cast_p): Removed call to `enclosing_context_p'.
12538
12539 2000-07-05 Tom Tromey <tromey@cygnus.com>
12540
12541 * Make-lang.in (PARSE_DIR): New macro.
12542 (PARSE_RELDIR): Likewise.
12543 (PARSE_C): Likewise.
12544 (PARSE_SCAN_C): Likewise.
12545 ($(PARSE_C)): New target.
12546 ($(PARSE_SCAN_C)): Likewise.
12547 (SET_BISON): New macro.
12548 (BISONFLAGS): Likewise.
12549 (JAVABISONFLAGS): Likewise.
12550
12551 2000-07-02 Bryce McKinlay <bryce@albatross.co.nz>
12552
12553 * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
12554 argument on the first pass for CNI as well as JNI.
12555 (print_method_info): Set up method name on the first pass only.
12556
12557 2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12558
12559 * parse.y (parser_qualified_classname): Removed parameter
12560 `is_static'.
12561 (create_interface): Removed first passed parameter to
12562 parser_qualified_classname.
12563 (create_class): Likewise. Don't install alias on static
12564 innerclasses. Fixes gcj/275.
12565
12566 2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12567
12568 * parse.y (maybe_generate_pre_expand_clinit): Don't build a
12569 debugable statement with empty_stmt_node. Fixes gcj/272
12570
12571 2000-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12572
12573 * expr.c (build_instanceof): Layout type after it's loaded. Fixes
12574 gcj/271.
12575
12576 2000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12577
12578 * jcf-write.c (push_long_const): Appropriately cast short negative
12579 constant to jword.
12580
12581 2000-06-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
12582
12583 * parse.y (verify_constructor_super): Use loop variable
12584 `m_arg_type' initialized with `mdecl_arg_type'.
12585
12586 2000-06-29 Tom Tromey <tromey@cygnus.com>
12587
12588 * parse.y (resolve_field_access): Handle case where `type_found'
12589 is NULL.
12590
12591 2000-06-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
12592
12593 * expr.c (lookup_field): The same field can be found through two
12594 different interface. Don't declare it ambiguous in that case.
12595
12596 2000-06-27 Tom Tromey <tromey@cygnus.com>
12597
12598 * lex.c (java_lineterminator): Don't recognize \r after \n. If \r
12599 follows \r, then unget it at a lower level.
12600
12601 2000-06-26 Tom Tromey <tromey@cygnus.com>
12602
12603 * parse.y (resolve_field_access): Pass decl, not DECL_INITIAL, to
12604 java_complete_tree.
12605
12606 2000-06-25 Tom Tromey <tromey@cygnus.com>
12607
12608 * parse.y (for_statement): Wrap expression in a WFL if it is a
12609 constant. For PR gcj/268.
12610
12611 2000-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
12612
12613 * parse.y (do_resolve_class): Minor optimiztion in the package
12614 list search. Removed unnecessary test and return statement.
12615 (valid_ref_assignconv_cast_p): Order of arguments to
12616 enclosing_context_p fixed.
12617
12618 2000-06-24 Tom Tromey <tromey@cygnus.com>
12619
12620 * expr.c (lookup_field): Print error and return error_mark_node if
12621 field reference is ambiguous.
12622
12623 * parse.y (check_abstract_method_definitions): Also check if
12624 `other_method' is abstract.
12625
12626 2000-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
12627
12628 * class.c (set_super_info): Handle ACC_PRIVATE for (inner)
12629 classes.
12630 * java-tree.h (TYPE_PRIVATE_INNER_CLASS): New macro.
12631 (struct lang_type): New field `pic'.
12632 (CLASS_PRIVATE): New macro.
12633 * parse.y (check_inner_class_access): New function.
12634 (jdep_resolve_class): Call it.
12635
12636 2000-06-23 Tom Tromey <tromey@cygnus.com>
12637
12638 * parse.y (patch_incomplete_class_ref): Initialize the returned
12639 class. For PR gcj/260.
12640
12641 2000-06-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
12642
12643 * except.c (prepare_eh_table_type): Use `CATCH_ALL_TYPE'.
12644
12645 2000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
12646
12647 * check-init.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
12648 Java specific checks.
12649 * expr.c (build_instanceof): CLASS_INTERFACE and CLASS_FINAL usage
12650 screened by DECL_P.
12651 * java-tree.def (CASE_EXPR): Marked 'e'.
12652 (DEFAULT_EXPR): Likewise.
12653 * jcf-parse.c (set_source_filename): CLASS_COMPLETE_P usage
12654 screened by DECL_P.
12655 * jcf-write.c (ENABLE_JC1_CHECKING): Replaces ENABLE_CHECKING for
12656 Java specific checks.
12657 (generate_bytecode_insns): Test try_block for BLOCK before using
12658 BLOCK_EXPR_BODY.
12659 * parse.y (build_wfl_wrap): Added `location' argument. Set
12660 EXPR_WFL_LINECOL accordingly.
12661 (dim_expr:): Wrap constants with WFLs.
12662 (method_declarator): Use TREE_TYPE not TYPE_NAME on GET_CPC.
12663 (resolve_package): Check for `stmt' not being a BLOCK before
12664 building a debuggable statement with it.
12665 (make_qualified_primary): Added extra parameter to build_wfl_wrap
12666 invocation.
12667 (resolve_field_access): Make sure `decl' is a DECL before treating
12668 it as such.
12669 (maybe_build_primttype_type_ref): Make sure `wfl''s node is an
12670 IDENTIFIER_NODE before treating it as such.
12671 (patch_new_array_init): Make sure `elt' is a TREE_LIST before
12672 treating it as such.
12673 (find_applicable_accessible_methods_list): CLASS_INTERFACE macro
12674 to be applied only on non array types.
12675
12676 2000-06-16 Per Bothner <per@bothner.com>
12677
12678 * java-tree.h (LABEL_RETURN_LABELS, LABEL_PENDING_CHAIN): Don't
12679 define in terms of DECL_RESULT, as that fails when --enable-checking.
12680
12681 2000-06-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12682
12683 * jcf-write.c (CHECK_PUT): Add static prototype. Make pointer
12684 types the same in comparison.
12685 (CHECK_OP): Add static prototype.
12686
12687 2000-06-13 Jakub Jelinek <jakub@redhat.com>
12688
12689 * typeck.c (build_java_array_type): Set TYPE_USER_ALIGN.
12690 * parse.y (java_complete_class): Set DECL_USER_ALIGN.
12691 * parse.c: Rebuilt.
12692
12693 2000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12694
12695 * decl.c (create_primitive_vtable): Prototype.
12696
12697 * jcf-write.c (generate_bytecode_insns): Initialize variable
12698 `saved_context'.
12699
12700 * lang.c (lang_get_alias_set): Mark parameter with ATTRIBUTE_UNUSED.
12701
12702 2000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
12703
12704 * parse.y (find_applicable_accessible_methods_list): Use a hashtable
12705 to track searched classes, and do not search the same class more than
12706 once. Call find_applicable_accessible_methods_list on immediate
12707 superclass, instead of search_applicable_method_list on all ancestors.
12708 Fix for PR gcj/238.
12709
12710 2000-06-09 Bryce McKinlay <bryce@albatross.co.nz>
12711
12712 * parse.y (register_fields): Permit static fields in inner classes
12713 if they are final. Fix for PR gcj/255.
12714
12715 2000-06-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
12716
12717 * parse.h (REGISTER_IMPORT): Use `chainon' to link new entries.
12718 * parse.y (find_in_imports): Returned type changed to void,
12719 leading comment fixed.
12720 (register_package): New function.
12721 (qualify_and_find): Likewise.
12722 (package_declaration:): Use `register_package'.
12723 (single_type_import_declaration:): Removed local variable
12724 `node'. Added missing `;' for consistency.
12725 (type_import_on_demand_declaration:): Use `chainon' to link new
12726 entries.
12727 (lookup_field_wrapper): Lookup local variables defined in outer
12728 contexts first.
12729 (java_complete_class): Don't reverse the list of imported on demand.
12730 (do_resolve_class): Reorganized. Removed local variable
12731 `original_name'. Call `qualify_and_find' with the current package
12732 name, invoke `find_in_imports_on_demand' right after. Call
12733 `qualify_and_find' with the packages we've seen so far. Fixed
12734 operations numbering in comments.
12735 (java_expand_class): Don't reverse `package_list'.
12736 (find_most_specific_methods_list): New local variables `abstract'
12737 and `candidates'. Use them to pick the right method.
12738
12739 2000-06-06 Tom Tromey <tromey@ferrule.cygnus.com>
12740
12741 * parse.y (check_modifiers_consistency): Don't subtract out
12742 `PUBLIC_TK' from argument to THIS_MODIFIER_ONLY.
12743
12744 2000-06-04 Philipp Thomas <pthomas@suse.de>
12745
12746 * Makefile.in (INTLLIBS): New.
12747 (LIBS): Add above.
12748 (DEPLIBS): Ditto.
12749
12750 2000-06-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
12751
12752 * class.c (get_dispatch_table): Build the vtable dummy entry list
12753 element with a null purpose. Fixed leading comment.
12754 (build_dtable_decl): Build an accurate dtable type when appropriate
12755 and use it.
12756
12757 2000-06-02 Richard Henderson <rth@cygnus.com>
12758
12759 * lang.c (lang_get_alias_set): New.
12760
12761 2000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
12762
12763 * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
12764 before using it as the accessed field.
12765
12766 2000-05-31 Tom Tromey <tromey@cygnus.com>
12767
12768 * java-tree.h (boolean_array_vtable, byte_array_vtable,
12769 char_array_vtable, short_array_vtable, int_array_vtable,
12770 long_array_vtable, float_array_vtable, double_array_vtable):
12771 Declare.
12772 * expr.c (get_primitive_array_vtable): New function.
12773 (create_primitive_vtable): New function.
12774 (java_lang_expand_expr): Enable code to statically generate
12775 arrays.
12776 * decl.c (init_decl_processing): Create primitive vtables.
12777 (boolean_array_vtable, byte_array_vtable, char_array_vtable,
12778 short_array_vtable, int_array_vtable, long_array_vtable,
12779 float_array_vtable, double_array_vtable): Define.
12780
12781 2000-05-26 Zack Weinberg <zack@wolery.cumb.org>
12782
12783 * java/parse.y (find_applicable_accessible_methods_list):
12784 Don't add an uninitialized value to the list.
12785
12786 2000-05-25 Tom Tromey <tromey@cygnus.com>
12787
12788 * parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
12789 when trying to see if field's class should be initialized. Always
12790 initialize field's declaring class, not qualified class.
12791 For PR gcj/162.
12792
12793 * parse.y (array_constructor_check_entry): Pass `wfl_value', not
12794 `wfl_operator', to maybe_build_primttype_type_ref.
12795 Fixes PR gcj/235.
12796
12797 2000-05-23 Bryce McKinlay <bryce@albatross.co.nz>
12798
12799 * parse.y (patch_method_invocation): Don't try to lookup methods
12800 in primitive types.
12801
12802 2000-05-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
12803
12804 * parse.y (resolve_field_access): Call the appropriate <clinit>
12805 before accessing the length of a static array. Craft a decl for
12806 the field while its time. Fixes PR gcj/129.
12807
12808 2000-05-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
12809
12810 * parse.y (resolve_package): Correctly set `*next' (was off by
12811 one.)
12812 (resolve_qualified_expression_name): Fixed comment.
12813
12814 2000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
12815
12816 * jcf-parse.c (jcf_parse_source): Reset current_class and
12817 current_function_decl to NULL before parsing a new file.
12818
12819 2000-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
12820
12821 * parse.y (block_end:): If the collected block doesn't feature a
12822 statement, insert an empty statement.
12823
12824 2000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
12825
12826 * parse.y (maybe_yank_clinit): New function.
12827 (maybe_generate_pre_expand_clinit): Always link <clinit> at the
12828 end of the list of methods belonging to a class.
12829 (java_complete_expand_method): Check whether <clinit> is really
12830 necessary and expand it accordingly.
12831
12832 2000-04-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
12833
12834 * parse.y (fold_constant_for_init): Let VAR_DECL and FIELD_DECL be
12835 processed by the method's switch statement.
12836
12837 2000-05-19 Tom Tromey <tromey@cygnus.com>
12838
12839 * java-tree.h: Added init state enum.
12840 * decl.c (emit_init_test_initialization): Initialize class
12841 initialization check variable by looking at class' state.
12842
12843 2000-05-19 Tom Tromey <tromey@cygnus.com>
12844
12845 * java-tree.h (build_instanceof): Declare.
12846 (build_get_class): Declare.
12847 * parse.y (patch_binop): Use build_instanceof.
12848 * expr.c (build_instanceof): New function. If class is final,
12849 don't make a function call.
12850 (expand_java_INSTANCEOF): Use it.
12851 (build_get_class): New function.
12852
12853 2000-05-18 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
12854
12855 * jcf-write.c (generate_classfile): Scan the source_file for
12856 slashes with the right pointer variable.
12857
12858 2000-05-17 Andrew Cagney <cagney@b1.cygnus.com>
12859
12860 * lang.c (lang_decode_option): Update -Wunused flags by calling
12861 set_Wunused.
12862 * decl.c (poplevel): Replace warn_unused with warn_unused_label.
12863
12864 2000-05-09 Zack Weinberg <zack@wolery.cumb.org>
12865
12866 * check_init.c (check_init): Constify local char *.
12867 * class.c (push_class): Constify local char *.
12868 * java_tree.h: Update prototypes.
12869 * jcf-io.c (open_class): Constify filename parameter and
12870 return value.
12871 (find_class): Remove redundant string copy. Cast return from
12872 open_class.
12873 * jcf-parse.c (read_class, parse_class_file, yyparse):
12874 Constify local char *.
12875 * jcf-write.c (generate_bytecode_insns, generate_classfile):
12876 Constify local char *.
12877 * jcf.h (JCF): Constify filename and classname.
12878 (JCF_FINISH): Cast args to FREE to char * when appropriate.
12879 * lang.c (init_parse): Constify parameter and return value.
12880 * lex.c (java_get_line_col): Constify filename parameter.
12881 * parse.h: Constify parser_ctxt.filename. Update prototypes.
12882 * parse.y (java_parser_context_suspend,
12883 issue_warning_error_from_context, safe_layout_class): Constify
12884 local char *.
12885 * parse.c: Regenerate.
12886
12887 2000-05-08 Tom Tromey <tromey@cygnus.com>
12888
12889 * expr.c (build_jni_stub): Cache the result of
12890 _Jv_LookupJNIMethod.
12891
12892 2000-05-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
12893
12894 * decl.c (predef_filenames_size): Now 7.
12895 (predef_filenames): New seventh entry.
12896
12897 2000-05-04 Tom Tromey <tromey@cygnus.com>
12898
12899 * boehm.c (mark_reference_fields): Don't mark RawData fields.
12900 Keep track of when we've seen a reference field after a
12901 non-reference field.
12902 (get_boehm_type_descriptor): Handle case where we see
12903 non-reference fields but no trailing reference field.
12904 * decl.c (rawdata_ptr_type_node): Define.
12905 (init_decl_processing): Initialize rawdata_ptr_type_node.
12906 * java-tree.h (rawdata_ptr_type_node): Declare.
12907
12908 2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12909
12910 * jcf-dump.c (SPECIAL_IINC): Ensure arguments match format
12911 specifiers in calls to fprintf.
12912
12913 2000-05-03 Andrew Haley <aph@cygnus.com>
12914
12915 * expr.c (build_java_jsr): Use emit_jump, not expand_goto.
12916
12917 * javaop.h (WORD_TO_INT): New function.
12918 (IMMEDIATE_s4): Use WORD_TO_INT.
12919 * jcf.h (JPOOL_INT): Ditto.
12920
12921 * gjavah.c (decode_signature_piece): Don't treat `$' as namespace
12922 separator.
12923
12924 2000-04-19 Tom Tromey <tromey@cygnus.com>
12925
12926 * class.c (add_method_1): Set both DECL_EXTERNAL and METHOD_NATIVE
12927 on native function.
12928 * jcf-parse.c (parse_class_file): Call build_jni_stub for native
12929 JNI methods.
12930 * expr.c (build_jni_stub): New function.
12931 * lang-specs.h: -fjni and -femit-class-file are incompatible.
12932 * parse.c: Rebuilt.
12933 * parse.y (java_complete_expand_methods): Expand a native method
12934 and call build_jni_stub if -fjni given.
12935 * lang-options.h: Document -fjni.
12936 * lang.c (flag_jni): New global.
12937 (lang_f_options): Added `jni' entry.
12938 * java-tree.h (soft_lookupjnimethod_node,
12939 soft_getjnienvnewframe_node, soft_jnipopsystemframe_node):
12940 Declare.
12941 (flag_jni): Declare.
12942 (build_jni_stub): Declare.
12943 (struct lang_decl): Added `native' flag.
12944 (METHOD_NATIVE): Redefined to use `native' field of lang specific
12945 structure.
12946 * decl.c (soft_lookupjnimethod_node, soft_getjnienvnewframe_node,
12947 soft_jnipopsystemframe_node): New globals.
12948 (init_decl_processing): Set them. _Jv_InitClass only takes one
12949 argument.
12950
12951 * java-tree.def: Put into `C' mode.
12952
12953 2000-04-27 Tom Tromey <tromey@cygnus.com>
12954
12955 Fix for PR gcj/2:
12956 * expr.c (expand_invoke): Generate check to see if object pointer
12957 is null in nonvirtual invocation case.
12958 * java-tree.h (soft_nullpointer_node): Declare.
12959 * decl.c (soft_nullpointer_node): New global.
12960 (init_decl_processing): Initialize soft_nullpointer_node.
12961 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
12962 or `private' methods.
12963 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
12964
12965 2000-04-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
12966
12967 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
12968 from <clinit>
12969
12970 2000-04-26 Tom Tromey <tromey@cygnus.com>
12971
12972 * zextract.c (find_zip_file_start): New function.
12973 (read_zip_archive): Use it.
12974
12975 2000-04-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
12976
12977 * parse.y (register_incomplete_type): Handle JDEP_ANONYMOUS.
12978
12979 2000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
12980
12981 * class.c (common_enclosing_context_p): New function.
12982 * java-tree.h (common_enclosing_context_p): Added prototype.
12983 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Relaxed test to allow
12984 classes sharing an outer context with the current instance.
12985 * parse.y (build_access_to_thisn): Fixed leading comment.
12986 (verify_constructor_super): New local `supper_inner'. Skip
12987 enclosing context argument in the case of inner class constructors.
12988 (patch_method_invocation): Insert proper context as second
12989 parameter to pure inner class constructor super invocations.
12990
12991 2000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
12992
12993 * parse.y (end_class_declaration): Reset the interface number
12994 counter.
12995
12996 2000-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
12997
12998 * parse.y (source_start_java_method): Deleted unnecessary code.
12999 (patch_method_invocation): Fixed comment.
13000
13001 2000-04-24 Robert Lipe <robertlipe@usa.net>
13002
13003 * parse.h (_jdep): Member `kind' now ENUM_BITFIELD.
13004
13005 2000-04-23 Tom Tromey <tromey@cygnus.com>
13006
13007 * boehm.c (mark_reference_fields): Use int_byte_position.
13008
13009 2000-04-22 Tom Tromey <tromey@cygnus.com>
13010
13011 * boehm.c (mark_reference_fields): Only call byte_position on
13012 non-static fields.
13013
13014 2000-04-22 Tom Tromey <tromey@cygnus.com>
13015
13016 * boehm.c (mark_reference_fields): Added `last_view_index'
13017 argument. Use DECL_FIELD_OFFSET to determine field's offset.
13018
13019 2000-04-20 Mo DeJong <mdejong@cygnus.com>
13020
13021 * parse.h (INTERFACE_INNER_MODIFIERS): New macro.
13022 * parse.y (check_class_interface_creation): Fixed comments. Select
13023 permitted modifiers for (inner) interfaces. Changed error message
13024 to report rejected modifiers used with local classes.
13025
13026 2000-04-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
13027
13028 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Immediate inner classes
13029 of directly inherited type considered in scope.
13030 * parse.y (do_resolve_class): Search inherited classes for inner
13031 classes.
13032
13033 2000-04-20 Tom Tromey <tromey@cygnus.com>
13034
13035 * parse.y (not_accessible_p): Use member's class, not current
13036 class, when doing inheritance check for protected reference.
13037 Fixes PR gcj/124.
13038
13039 2000-04-20 Jason Schroeder <shrode@subnature.com>
13040
13041 * jcf-dump.c (SPECIAL_IINC): Fixed typo printing iinc instruction.
13042
13043 2000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
13044
13045 * parse.y (lookup_field_wrapper): Search for final local aliases.
13046 (resolve_expression_name): Let lookup_field_wrapper search for
13047 final local aliases. Force the value of `name' if one is found.
13048 (qualify_ambiguous_name): CONVERT_EXPR is enough to now we have
13049 an expression name. Fixed comments.
13050
13051 2000-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
13052
13053 * parse.y (yyerror): `msg' can be null, don't use it in that case.
13054
13055 2000-04-19 Tom Tromey <tromey@cygnus.com>
13056
13057 * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
13058
13059 2000-04-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
13060
13061 * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'.
13062
13063 2000-04-18 Tom Tromey <tromey@cygnus.com>
13064
13065 PR gcj/211:
13066 * gjavah.c (utf8_cmp): Changed return value.
13067 (cxx_keyword_subst): Handle all C++ keywords. Allocate new return
13068 result.
13069 (cxx_keywords): New global.
13070 (get_field_name): Handle new result of cxx_keyword_subst.
13071 (print_method_info): Likewise.
13072
13073 2000-04-17 Bryce McKinlay <bryce@albatross.co.nz>
13074
13075 * gjavah.c (print_name_for_stub_or_jni): Don't prefix method names
13076 with a newline, for CNI.
13077 (print_stub_or_jni): Print a space or newline before method name for
13078 CNI as well as JNI.
13079 (print_cxx_classname): Don't write leading "::" in CNI stub method.
13080 (process_file): Include gcj/cni.h if generating CNI stubs.
13081
13082 2000-04-16 Tom Tromey <tromey@cygnus.com>
13083
13084 * gjavah.c (decompile_method): Use print_field_name.
13085 Fixes PR gcj/205.
13086
13087 2000-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
13088
13089 * parse.y (java_expand_classes): Reverse the package list once.
13090 (java_complete_lhs): PLUS_EXPR: don't try rhs and lhs at string
13091 reduction.
13092 (patch_binop): New temp `cn'. Call patch_string on LHS/RHS of
13093 the `==' and `!=' operators.
13094
13095 2000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13096
13097 * jcf-write.c (generate_bytecode_insns): At invocation time,
13098 always relate an interface method to the type of its selector.
13099
13100 2000-04-05 Tom Tromey <tromey@cygnus.com>
13101
13102 Fix for PR gcj/2:
13103 * expr.c (expand_invoke): Generate check to see if object pointer
13104 is null in nonvirtual invocation case.
13105 * java-tree.h (soft_nullpointer_node): Declare.
13106 * decl.c (soft_nullpointer_node): New global.
13107 (init_decl_processing): Initialize soft_nullpointer_node.
13108 * parse.y (invocation_mode): Return INVOKE_NONVIRTUAL for `final'
13109 or `private' methods.
13110 (patch_invoke): Handle INVOKE_NONVIRTUAL case.
13111
13112 2000-04-05 Tom Tromey <tromey@cygnus.com>
13113
13114 Fix for PR gcj/140:
13115 * parse.y (check_final_assignment): Recognize assignments to the
13116 `length' field of an array when generating class files.
13117
13118 2000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13119
13120 * class.c (decl_hash): Prototype removed.
13121 (decl_compare): Likewise.
13122
13123 2000-04-05 Tom Tromey <tromey@cygnus.com>
13124
13125 * parse.h (THIS_MODIFIER_ONLY): Changed meaning of `v' parameter.
13126 * parse.y (check_modifiers_consistency): Check for final/volatile
13127 clash. Fixes PR gcj/164.
13128
13129 2000-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
13130
13131 * class.c: (java_hash_hash_tree_node): Renamed from `decl_hash',
13132 made global.
13133 (java_hash_compare_tree_node): Renamed from `decl_compare, made
13134 global.
13135 (add_method_1): Use `java_hash_hash_tree_node' and
13136 `java_hash_compare_tree_node'.
13137 * java-tree.h: (java_hash_hash_tree_node): Prototyped.
13138 (java_hash_compare_tree_node): Likewise.
13139 * parse.y (find_applicable_accessible_methods_list): Create,
13140 delete and use a hash table to remember already searched interfaces.
13141
13142 2000-04-03 Matt Welsh <mdw@cs.berkeley.edu>
13143
13144 * jcf-depend.c (add_entry): Fixed bug where list was always replaced
13145 with latest entry.
13146
13147 2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13148
13149 * boehm.c (mark_reference_fields, set_bit): Prototype.
13150 (set_bit): Un-ANSI-fy definition.
13151
13152 * class.c (init_test_hash_newfunc, decl_hash, decl_compare):
13153 Prototype.
13154
13155 * decl.c (emit_init_test_initialization): Likewise.
13156
13157 * gjavah.c (jni_print_char): Likewise.
13158
13159 * parse.y (create_new_parser_context): Likewise.
13160
13161 2000-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
13162
13163 * expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
13164 patch missing hunk. Fixed indentation.
13165
13166 2000-03-30 Tom Tromey <tromey@cygnus.com>
13167
13168 * gjavah.c (D_NAN_MASK): Only define as word-reversed when
13169 HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
13170
13171 2000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
13172
13173 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
13174 when negative *before* using it as an array index.
13175 * ChangeLog: Fixed typo.
13176
13177 2000-03-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
13178
13179 * parse-scan.y (pop_class_context): Reset `inner_qualifier_length'
13180 to 0 when it reaches -1.
13181
13182 2000-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
13183
13184 * jcf-parse.c (get_constant): Properly cast `num' during the
13185 invocation of `add_double'.
13186 * jcf-write.c (push_long_const): Properly cast `lo' before
13187 comparing it to short bounds.
13188 * parse-scan.y (interface_declaration:): Rule re-arrange so that
13189 `interface_body:' is reduced after the current interface is
13190 pushed.
13191
13192 2000-03-26 Tom Tromey <tromey@cygnus.com>
13193
13194 * jvspec.c (jvgenmain_spec): Add `%{<...}' construct for each
13195 Java-specific `-f' option.
13196
13197 2000-03-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13198
13199 * decl.c (init_decl_processing): Only call initialize_sizetypes once.
13200 Adjust order of making types.
13201 Make bitsize_*_node values.
13202
13203 2000-03-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13204
13205 * class.c (make_field_value): Use byte_position.
13206 * expr.c (JAVA_ARRAY_LENGTH_OFFSET): Use byte_position.
13207 (java_array_data_offset): Likewise.
13208 * java-tree.h (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Add case to
13209 bzero call.
13210
13211 2000-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
13212
13213 * parse.y (check_abstract_method_definitions): New local
13214 `end_type_reached'. Make sure we also consider `end_type'.
13215 (java_check_abstract_method_definitions): Make sure we eventually
13216 consider `java.lang.Object'.
13217 (maybe_use_access_method): Don't use access method if not in the
13218 context of a pure inner class or if the method's context is right.
13219 (find_applicable_accessible_methods_list): New static flag
13220 `object_done'. Don't search abstract classes as interfaces. Fixed
13221 indentation. Fixed the `java.lang.Object' only search. Search
13222 class interface(s) first, then fully search enclosing contexts.
13223 (find_most_specific_methods_list): Pick the closest candidate when
13224 they're all abstract.
13225
13226 2000-03-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
13227
13228 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
13229 properly initialize `finished_label'. Don't emit gotos for empty
13230 try statements.
13231
13232 2000-03-19 Martin v. Löwis <loewis@informatik.hu-berlin.de>
13233
13234 * except.c (emit_handlers): Clear catch_clauses_last.
13235
13236 2000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13237
13238 * parse.y (check_method_types_complete): New function.
13239 (create_class): Reset anonymous class counter only when seeing an
13240 non inner classe.
13241 (java_complete_class): JDEP_METHOD: Don't recompute signature
13242 if incomplete.
13243
13244 2000-03-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13245
13246 * class.c (build_static_ref): Fixed indentation in comment.
13247 * java-tree.def (TRY_EXPR): Fixed typo in name.
13248 (CLASS_LITERAL): Likewise.
13249 * java-tree.h: (TYPE_DOT_CLASS): New macro.
13250 (struct lang_type): New field `dot_class'.
13251 * jcf-write.c (generate_bytecode_insns): Fixed error message.
13252 (generate_classfile): Method `class$' is synthetic.
13253 * parse.y (build_do_class_method): New function.
13254 (build_dot_class_method_invocation): Likewise.
13255 (java_complete_expand_methods): Expand TYPE_DOT_CLASS if necessary.
13256 (resolve_qualified_expression_name): Handle CLASS_LITERAL.
13257 (qualify_ambiguous_name): Likewise.
13258 (patch_incomplete_class_ref): Invoke synthetic method if necessary.
13259 (build_try_statement): Fixed leading comment.
13260
13261 2000-03-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13262
13263 * class.c (make_field_value): Properly handle sizes.
13264 (get_dispatch_vector): Use tree_low_cst and host_integerp.
13265 (layout_class_method): Count using trees.
13266 * decl.c (push_promoted_type): Set TYPE_{MIN,MAX}_VALUE with copy_node.
13267 * expr.c (java_array_data_offset): Use int_bit_position.
13268 (build_newarray, build_anewarray): Use host_integerp and tree_low_cst.
13269 (build_invokevirtual): Use tree_low_cst and do computations with trees.
13270
13271 2000-03-16 Tom Tromey <tromey@cygnus.com>
13272
13273 * lang.c (flag_hash_synchronization): New global.
13274 (lang_f_options): Added `hash-synchronization'.
13275 * lang-options.h: Mention -fhash-synchronization.
13276 * java-tree.h (flag_hash_synchronization): Declare.
13277 * expr.c (java_lang_expand_expr): Only push `sync_info' value when
13278 hash table synchronization is disabled.
13279 * decl.c (init_decl_processing): Only push `sync_info' value when
13280 hash table synchronization is disabled.
13281 * class.c (make_class_data): Only push `sync_info' field when hash
13282 table synchronization is disabled. Removed dead code.
13283
13284 2000-03-16 Tom Tromey <tromey@cygnus.com>
13285
13286 * lang.c (lang_decode_option): Enable -Wunused when -Wall given.
13287
13288 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
13289
13290 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Disregard anonymous
13291 classes.
13292 * parse.y (patch_method_invocation): Handle anonymous classes
13293 creation in static context.
13294
13295 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
13296
13297 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): New macro.
13298 * parse.y (resolve_qualified_expression_name): Use it.
13299 (patch_method_invocation): Likewise.
13300
13301 2000-03-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
13302
13303 * parse.y (register_incomplete_type): JDEP_ENCLOSING set
13304 depending on the type of dependency which dictates what the
13305 current class is.
13306 (unresolved_type_p): Resolved types limited to the current class.
13307
13308 2000-03-15 Tom Tromey <tromey@cygnus.com>
13309
13310 * decl.c (init_decl_processing): Set type of `sync_info' to be
13311 pointer to Object.
13312
13313 * boehm.c (get_boehm_type_descriptor): Correctly compute `bits'.
13314 Correctly compute bit number for current slot. Zero `high' and
13315 `low' in DS_LENGTH case. Don't skip inherited fields. Use
13316 mark_reference_fields.
13317 (mark_reference_fields): New function.
13318
13319 2000-03-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
13320
13321 * parse.y (register_incomplete_type): Fixed initialization of
13322 JDEP_ENCLOSING.
13323
13324 2000-02-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
13325
13326 * parse-scan.y (inner_qualifier, inner_qualifier_length): New
13327 static globals.
13328 (push_class_context, pop_class_context): New function.
13329 (class_body:): Call pop_class_context.
13330 (interface_body:): Likewise.
13331 (INNER_QUALIFIER): New macro.
13332 (report_class_declaration): Changed output format and use
13333 INNER_QUALIFIER. Call push_class_context.
13334
13335 2000-02-14 Andrew Haley <aph@cygnus.com>
13336
13337 * check-init.c (check_init): Add new cases for unary and binary
13338 tree nodes.
13339
13340 2000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13341
13342 * parse.y (resolve_package): Set `next' once a type name has been
13343 progressively discovered.
13344 (resolve_qualified_expression_name): Propagate resolution only if
13345 there are remaining qualifiers. Take into account `q' might have
13346 been cleared after re-qualification.
13347 * parse.y (patch_method_invocation): New local `resolved'.
13348 Section dealing with qualified expression rewritten to use
13349 resolve_field_access.
13350
13351 2000-03-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
13352
13353 * parse.h (PUSH_CPC): Fixed indentation.
13354 (DEBUG_CPC): New macro.
13355 (SET_CPC_INITIALIZER_STMT, SET_CPC_STATIC_INITIALIZER_STMT,
13356 SET_CPC_INSTANCE_INITIALIZER_STMT): New macros.
13357 * parse.y (class_body_declaration:): Use
13358 SET_CPC_INSTANCE_INITIALIZER_STMT.
13359 (method_declaration:): Check for null current_function_decl.
13360 (static_initializer:): Use SET_CPC_STATIC_INITIALIZER_STMT.
13361 (java_parser_context_pop_initialized_field): Better handling of
13362 empty lists.
13363 (maybe_make_nested_class_name): Mark nested class name as
13364 qualified when necessary.
13365 (end_class_declaration): Don't call java_parse_context_resume when
13366 one or more error occurred.
13367 (add_inner_class_fields): Use SET_CPC_INITIALIZER_STMT.
13368 (register_fields): Use SET_CPC_STATIC_INITIALIZER_STMT and
13369 SET_CPC_INITIALIZER_STMT.
13370 (method_header): Check for inner classes declaring static methods.
13371 (resolve_qualified_expression_name): Handle situation where `this'
13372 is implied.
13373
13374 2000-03-13 Hans Boehm <boehm@acm.org>
13375
13376 * typeck.c (build_prim_array_type): Correctly set the high word too.
13377
13378 2000-03-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
13379
13380 * parse.y (java_complete_expand_methods): Leave <clinit> out of
13381 ordinary methods.
13382 (maybe_generate_pre_expand_clinit): Put <clinit> at the end of the
13383 list of methods for interfaces.
13384
13385 2000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13386
13387 * parse.y (qualify_ambiguous_name): Properly handle expressions
13388 using `null'.
13389
13390 2000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13391
13392 * parse.y (check_final_assignment): Extended to process
13393 COMPOUND_EXPR.
13394 (patch_assignment): Have check_final_assignment called only once.
13395
13396 2000-03-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13397
13398 * java-tree.h (IS_INIT_CHECKED): New flag.
13399 * check-init.c (check_init): Test and set IS_INIT_CHECKED.
13400 * parse.y (patch_string): Call force_evaluation_order on the
13401 completed string concatenation tree.
13402 * expr.c (force_evaluation_order): Call force_evaluation_order on
13403 function's arguments too.
13404
13405 2000-03-06 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13406
13407 * decl.c (emit_init_test_initialization): Mark KEY as unused.
13408 * expr.c (build_newarray): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
13409 (build_anewarray): Likewise.
13410 * parse.y (patch_newarray): Likewise.
13411 * parse.c: Regenerated.
13412
13413 2000-03-06 Bryce McKinlay <bryce@albatross.co.nz>
13414
13415 * decl.c (init_decl_processing): Added new class fields `depth',
13416 `ancestors', and `idt' to class_type_node. Use
13417 _Jv_LookupInterfaceMethodIdx for soft_lookupinterfacemthod_node.
13418 * class.c (make_class_data): Push initial values for new fields.
13419 * java-tree.h: Updated prototype for `build_invokeinterface'.
13420 * expr.c (build_invokeinterface): Changed parameters to accept
13421 `method' tree. Calculate index of `method' in its declaring
13422 interface. Build call to _Jv_LookupInterfaceMethodIdx.
13423 (expand_invoke): Call `build_invokeinterface' with new parameters.
13424 * parse.y (patch_invoke): Call `build_invokeinterface' with new
13425 parameters.
13426
13427 2000-03-06 Bryce McKinlay <bryce@albatross.co.nz>
13428
13429 * typeck.c (lookup_do): Search superinterfaces first
13430 when looking up an interface method. From Godmar Back
13431 <gback@cs.utah.edu>
13432
13433 2000-03-06 Tom Tromey <tromey@cygnus.com>
13434
13435 * Make-lang.in (JAVA_SRCS): Added boehm.c, lex.c.
13436
13437 2000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13438
13439 * java-tree.h (lookup_argument_method2): Declared.
13440 (safe_layout_class): Prototype moved from parse.h.
13441 * parse.h (safe_layout_class): Prototype moved to java-tree.h.
13442 * parse.y (java_check_regular_methods): Local `super_class' gone.
13443 Call lookup_argument_method2 instead of lookup_argument_method.
13444 Perform modifier match for methods found declared in implemented
13445 interfaces. Fixed indentation problem. Overriding/hiding error
13446 report to take place only for methods found in classes.
13447 * typeck.c (lookup_argument_method): Changed leading
13448 comment. Re-written by calling lookup_do.
13449 (lookup_argument_method2): New function.
13450 (lookup_java_method): Re-written by calling lookup_do.
13451 (lookup_do): New function.
13452
13453 2000-03-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13454
13455 * check-init.c (check_init): Removed dead code. Handle (blank)
13456 final variables.
13457 * parse.y (declare_local_variables): New local `final_p', set it
13458 and use it to initialize LOCAL_FINAL.
13459 (check_final_assignment): Only check FIELD_DECLs.
13460
13461 2000-02-17 Tom Tromey <tromey@cygnus.com>
13462
13463 * Makefile.in (JAVA_OBJS): Added boehm.o.
13464 (boehm.o): New target.
13465 * Make-lang.in (JAVA_SRCS): Added boehm.c.
13466 * java-tree.h (flag_use_boehm_gc): Declare.
13467 (get_boehm_type_descriptor): Declare.
13468 * lang.c (lang_f_options): Added `use-boehm-gc'.
13469 (flag_use_boehm_gc): New global.
13470 * lang-options.h: Added -fuse-boehm-gc.
13471 * boehm.c: New file.
13472 * class.c (get_dispatch_table): If class uses a Boehm type
13473 descriptor, put it in the vtable.
13474 (make_class_data): Removed dead code.
13475
13476 2000-03-03 Per Bothner <per@bothner.com>
13477
13478 * decl.c (init_decl_processing): Initialize sizetype properly.
13479
13480 2000-03-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13481
13482 * java-tree.h (LOCAL_CLASS_P): New flag usage and macro.
13483 (PURE_INNER_CLASS_DECL_P, PURE_INNER_CLASS_TYPE_P): New macros.
13484 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
13485 * jcf-parse.c (HANDLE_INNERCLASSES_ATTRIBUTE): Likewise.
13486 (jcf_parse): New local `current'. Load innerclasses seen in outer
13487 context being processed.
13488 * jcf-reader.c (HANDLE_INNERCLASSES_ATTRIBUTE): New macro.
13489 * jcf-write.c (append_innerclasses_attribute): New function.
13490 (append_innerclasses_attribute_entry): Likewise.
13491 (get_access_flags): Handle static classes. Set anonymous and local
13492 classes to be private.
13493 (generate_classfile): Attribute count adjusted. Call
13494 append_innerclasses_attribute.
13495 * parse.h (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use
13496 PURE_INNER_CLASS_TYPE_P.
13497 * parse.y (parser_qualified_classname): New parameter `is_static',
13498 produce non qualified name accordingly.
13499 (block_statement:): Set LOCAL_CLASS_P when declaring local class.
13500 (create_interface): Added argument to parser_qualified_classname.
13501 (create_class): Added argument to parser_qualified_classname. Setup
13502 alias for top level classes. Use PURE_INNER_CLASS_DECP_P.
13503 (add_inner_class_fields): Fixed indentation.
13504 (method_declarator): Use PURE_INNER_CLASS_DECP_P.
13505 (method_declarator): Fixed typo in comment.
13506 (craft_constructor): Use PURE_INNER_CLASS_DECP_P.
13507 (build_current_thisn): Likewise.
13508 (patch_method_invocation): Likewise.
13509
13510 2000-03-01 Martin von Löwis <loewis@informatik.hu-berlin.de>
13511
13512 * decl.c (current_function_decl): Move to toplev.c.
13513
13514 2000-02-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13515
13516 * java-tree.h (LABEL_PC): Relect name changes in ../tree.h.
13517 (DECL_BIT_INDEX): Use underlying representation.
13518 * parse.h (DECL_INHERITED_SOURCE_LINE): Likewise.
13519
13520 2000-02-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13521
13522 * expr.c (build_java_ret): Pass proper type to size_binop.
13523
13524 2000-02-25 Anthony Green <green@cygnus.com>
13525
13526 * expr.c (build_class_init): Mark the decl to be ignored by
13527 check_init.
13528 * java-tree.h (DECL_BIT_INDEX): Move definition from check-init.c
13529 * check-init.c: Move DECL_BIT_INDEX to java-tree.h
13530 * class.c (init_test_hash_newfunc): New function.
13531 (decl_hash): New function.
13532 (decl_compare): New function.
13533 * decl.c (emit_init_test_initialization): New function.
13534 (complete_start_java_method): Traverse the init test hashtable,
13535 calling emit_init_test_initialization.
13536 (always_initialize_class_p): Define.
13537 * expr.c (build_class_init): Use initialization tests when
13538 emitting class initialization code.
13539 (always_initialize_class_p): Declare.
13540 * jcf-parse.c (parse_class_file): Set always_initialize_class_p to
13541 1.
13542 * java-tree.h: Include hash.h.
13543 (DECL_FUNCTION_INIT_TEST_TABLE): Define.
13544 (struct lang_decl): Add init_test_table field.
13545 (init_test_hash_entry): Define.
13546
13547 2000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13548
13549 * gjavah.c (main): Avoid using `argi' to report unimplemented
13550 options.
13551
13552 2000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13553
13554 * jcf-write.c (generate_bytecode_insns): TRY_FINALLY_EXPR:
13555 initialize locals to avoid warnings. Local `exception_type' moved
13556 into if statement.
13557
13558 2000-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
13559
13560 * parse.y (resolve_expression_name): Use `orig' as a second
13561 argument to resolve_field_access.
13562 (resolve_field_access): Removed unnecessary code when dealing with
13563 static fields.
13564
13565 2000-02-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
13566
13567 * class.c (push_super_field): Don't push the field twice.
13568 * jcf-parse.c (parse_source_file): Call java_reorder_fields.
13569 * parse.h (java_reorder_fields): Prototyped.
13570 * parse.y (java_reorder_fields): New function.
13571 (java_layout_class): Simplified not to worry about re-ordering.
13572
13573 2000-02-23 Tom Tromey <tromey@cygnus.com>
13574
13575 * gjavah.c (print_name): In JNI case, correctly quote string.
13576 (print_method_info): Don't handle overrides in JNI mode.
13577
13578 2000-02-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
13579
13580 * parse.y (init_decl_processing): `_Jv_IsInstanceOf' returned
13581 value type set to `boolean_type_node'.
13582
13583 2000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
13584
13585 * jcf-dump.c (main): Test for correct condition after
13586 output file creation.
13587
13588 2000-02-19 Anthony Green <green@cygnus.com>
13589
13590 * jcf-depend.c (add_entry): Fix test for first list entry.
13591
13592 2000-02-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13593
13594 * class.c (build_class_ref, push_super_field): Set DECL_SIZE_UNIT.
13595 * constants.c (build_constants_constructor): Likewise.
13596
13597 2000-02-19 Anthony Green <green@cygnus.com>
13598
13599 * jcf-depend.c (add_entry): Add entries to the end of the list.
13600
13601 1999-11-03 Pekka Nikander <pekka.nikander@hut.fi>
13602
13603 * decl.c (INT_TYPE_SIZE): Define if necessary.
13604 (expand_java_return): Handle the case of a native integer smaller
13605 than a JVM integer.
13606
13607 2000-02-18 Martin von Löwis <loewis@informatik.hu-berlin.de>
13608
13609 * gjavah.c (help): Use GCCBUGURL.
13610 * jv-scan.c (help): Likewise.
13611 * jcf-dump.c (help): Likewise.
13612
13613 2000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13614
13615 * jcf-write.c (generate_bytecode_insns): Don't generate empty
13616 `finally' clauses.
13617
13618 2000-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
13619
13620 * jcf-parse.c (load_class): Call `fatal' if no file containing
13621 the target class are found.
13622
13623 2000-02-16 Zack Weinberg <zack@wolery.cumb.org>
13624
13625 * Makefile.in (PARSE_C, PARSE_SCAN_C): Move dependencies on
13626 lex.c, lex.h, and PARSE_H to...
13627 (parse.o, parse-scan.o): ...here, respectively.
13628
13629 * lex.c: Split out code that may trigger SIGFPE from yylex()
13630 to its own function.
13631 * lex.h (JAVA_FLOAT_RANGE_ERROR): Don't set value.
13632
13633 2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13634
13635 * Make-lang.in (jvspec.o): Depend on $(GCC_H), not gcc.h.
13636
13637 2000-02-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
13638
13639 * parse.y (outer_field_access_p): Stop in time when outer contexts
13640 are exhausted.
13641 (resolve_qualified_expression_name): Properly qualify *everything*
13642 after a package.type to be resoled as expression names.
13643 (find_applicable_accessible_methods_list): Save/restore `class' to
13644 isolate it from a possible outer context search.
13645
13646 2000-02-15 Tom Tromey <tromey@cygnus.com>
13647
13648 * gjavah.c (jni_print_char): New function.
13649 (print_full_cxx_name): Use it.
13650 (decode_signature_piece): Likewise.
13651 (print_cxx_classname): Likewise.
13652
13653 2000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13654
13655 * Makefile.in (jv-scan, jcf-dump, gcjh): Depend on and link with
13656 version.o.
13657 (jcf-dump.o, gjavah.o, jv-scan.o): Depend on version.h.
13658
13659 * gjavah.c: Include version.h.
13660
13661 * jcf-dump.c: Likewise.
13662
13663 * jv-scan.c: Likewise.
13664
13665 2000-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
13666
13667 * parse.y (outer_field_access_fix): First parameter now a tree
13668 node. Check for assignment to final. First argument to
13669 build_outer_field_access_fix modified to accommodate prototype.
13670 (build_outer_field_access): Don't check for assignment to final
13671 here.
13672 (java_complete_lhs): MODIFY_EXPR case: Check for `error_mark_node'
13673 possibly returned by outer_field_access_fix. Changed
13674 outer_field_access_fix's first argument.
13675 (check_final_assignment): $finit$'s context is OK.
13676 (patch_unaryop): Use node instead of its line/column value when
13677 calling outer_field_access_fix.
13678
13679 2000-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
13680
13681 * parse.y (interface_declaration:): No longer tagged
13682 <node>. Re-installed default action.
13683 (class_member_declaration:): Handle inner interfaces.
13684 (interface_member_declaration): Handle inner interfaces and
13685 classes.
13686 (create_interface): Push error if one seen. Suspend parsing
13687 context when processing an inner interface.
13688 (register_fields): Inner class static field limitations not to
13689 apply to inner interfaces.
13690
13691 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
13692
13693 * jcf-parse.c (load_class): Update `java_error_count' when a
13694 class' file can't be found.
13695 (parse.y): Avoid (byte)code generation when errors seen.
13696
13697 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
13698
13699 * parse.y (java_complete_lhs): Handle TRUNC_DIV_EXPR. Ensure `fatal'
13700 decodes a valid node.
13701 (patch_binop): Handle TRUNC_DIV_EXPR.
13702
13703 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
13704
13705 * parse.y (resolve_package): New local `acc'. Try to progressively
13706 build and guess a package and type name.
13707
13708 2000-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
13709
13710 * parse.y (find_applicable_accessible_methods_list): Load and
13711 layout the search class if necessary.
13712 (java_complete_tree): Keep to original type of the folded initial
13713 value.
13714
13715 2000-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
13716
13717 * class.c (layout_class): Set and test CLASS_BEING_LAIDOUT.
13718 Generate error message if circularity is detected. New static
13719 local `list'.
13720 * java-tree.h (CLASS_BEING_LAIDOUT): New flag usage, new macro. *
13721 * jcf-write.c (generate_bytecode_insns): Very simply handle
13722 SAVE_EXPR.
13723 * parse.y (java_check_circular_reference): Use
13724 `cyclic_inheritance_report' during report, if necessary.
13725 (java_complete_lhs): fixed comment with `THROW_EXPR:' case. Avoid
13726 walking NEW_ARRAY_INIT twice.
13727
13728 2000-02-09 Tom Tromey <tromey@cygnus.com>
13729
13730 * parse.y (check_class_interface_creation): Allow inner classes to
13731 be `private' or `protected', check modifiers' consistency. Prevent
13732 block local classes from bearing any modifiers.
13733
13734 2000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13735
13736 * except.c (check_start_handlers): Re-add prototype lost in last
13737 patch.
13738 (maybe_start_try): Remove excess argument to `check_start_handlers'.
13739
13740 2000-02-09 Andrew Haley <aph@cygnus.com>
13741
13742 * decl.c (clear_binding_level): Remove excess initializer.
13743 (maybe_poplevels): Remove unused variable.
13744 (force_poplevels): Ditto.
13745 (struct binding_level): Add comment.
13746
13747 2000-02-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
13748
13749 * jcf-write.c (generate_classfile): Don't consider
13750 pre-initialization with reference value (use <clinit> instead.)
13751 * parse.y (java_fix_constructors): No generated constructor for
13752 interfaces.
13753 (build_outer_field_access): Removed debug message.
13754 (outer_field_expanded_access_p): Adapted to bytecode generation.
13755 (build_outer_field_access_method): Use fix_method_argument_names.
13756 (build_outer_method_access_method): Fixed indentation. Added
13757 comment. Handle access method generation for static and also void
13758 methods.
13759 (build_access_to_thisn): Inserted debug message.
13760 (maybe_build_thisn_access_method): Use fix_method_argument_names.
13761 (resolve_qualified_expression_name): Fixed comment.
13762 (not_accessible_p): Adapted to bytecode generation. Added comment.
13763 (patch_method_invocation): Added comment.
13764 (maybe_use_access_method): Fixed leading comment. Handle static
13765 methods.
13766 (java_complete_lhs): Don't shortcut handling of initialized upon
13767 declaration String type static fields when generating bytecode.
13768 (patch_unaryop): Handle outer field access when generating
13769 bytecode.
13770
13771 2000-02-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
13772
13773 * java-tree.h (FIELD_THISN): New macro.
13774 * jcf-write.c (append_synthetic_attribute): New function.
13775 (generate_classfile): Set "Synthetic" attribute on this$<n>,
13776 val$<name> fields, access$<n> and $finit$ methods. Fixed indentation.
13777 * parse.y (add_inner_class_fields): Set FIELD_THISN for created
13778 this$<n> fields.
13779 (build_outer_field_access): Turned on access functions usage and
13780 generation when compiling to bytecode.
13781 (maybe_use_access_method): Likewise.
13782
13783 2000-01-25 Andrew Haley <aph@cygnus.com>
13784
13785 * java-except.h (struct eh_range): Add `expanded' field.
13786 (maybe_start_try): Add end_pc arg.
13787 (maybe_end_try): Ditto.
13788 * java-tree.h (force_poplevels): new function.
13789 * expr.c (expand_byte_code): Don't call maybe_start_try or
13790 maybe_end_try.
13791 * except.c (add_handler): Reset expanded.
13792 (expand_start_java_handler): Set expanded.
13793 (check_start_handlers): Don't expand a start handler that's
13794 already been expanded.
13795 (maybe_start_try): Add end_pc arg. Only expand a handler which
13796 ends after end_pc.
13797 (expand_end_java_handler): call force_poplevels.
13798 (force_poplevels): new function.
13799 * decl.c (binding_level): Add start_pc of binding level.
13800 (maybe_pushlevels): Call maybe_start_try when pushing binding
13801 levels.
13802 (maybe_poplevels): Call maybe_end_try when popping binding levels.
13803 (LARGEST_PC): Define.
13804 (clear_binding_level): Use LARGEST_PC.
13805
13806 * java-tree.h (DEBUG_JAVA_BINDING_LEVELS): new define.
13807 * decl.c (DEBUG_JAVA_BINDING_LEVELS): new define.
13808 (binding_depth, is_class_level, current_pc): new variables.
13809 (struct binding_level): ditto.
13810 (indent): new function.
13811 (push_jvm_slot): add debugging info.
13812 (maybe_pushlevels): ditto.
13813 (maybe_poplevels): ditto.
13814 (pushlevel): ditto.
13815 (poplevel): ditto.
13816 (start_java_method): ditto.
13817 (give_name_to_locals): comment only.
13818 * except.c (binding_depth, is_class_level, current_pc):
13819 new variables.
13820 (expand_start_java_handler): add debugging info.
13821 (expand_end_java_handler): ditto.
13822
13823 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13824
13825 * gjavah.c (overloaded_jni_method_exists_p): Add prototype.
13826 (print_name_for_stub_or_jni, process_file): Constify a char*.
13827
13828 2000-02-03 Tom Tromey <tromey@cygnus.com>
13829
13830 * jcf-io.c (jcf_print_utf8_replace): Handle UTF-8 input.
13831
13832 2000-01-31 Scott Bambrough <scottb@netwinder.org>
13833
13834 * gcc/java/javaop.h (WORDS_TO_DOUBLE): Allow WORDS_TO_DOUBLE to
13835 assemble doubles correctly when HOST_FLOAT_WORDS_BIG_ENDIAN is
13836 defined to be 1.
13837
13838 2000-02-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
13839
13840 * java-tree.def (INSTANCE_INITIALIZERS_EXPR): New tree code.
13841 * java-tree.h (TYPE_II_STMT_LIST): New macro.
13842 (struct lang_type): New field `ii_block'.
13843 * lex.c (java_init_lex): Use CPC_INITIALIZER_LIST,
13844 CPC_STATIC_INITIALIZER_LIST and CPC_INSTANCE_INITIALIZER_LIST.
13845 * parse.h (struct parser_ctxt): New field `instance_initializers'.
13846 (CPC_INITIALIZER_LIST, CPC_STATIC_INITIALIZER_LIST,
13847 CPC_INSTANCE_INITIALIZER_LIST, CPC_INITIALIZER_STMT,
13848 CPC_STATIC_INITIALIZER_STMT, CPC_INSTANCE_INITIALIZER_STMT): New
13849 macros.
13850 * parse.y (add_instance_initializer): New function.
13851 (in_instance_initializer): New static global.
13852 (class_body_declaration:): Link instance initializer block.
13853 (static_initializer:): Use CPC_STATIC_INITIALIZER_STMT.
13854 (array_creation_expression:): Remove unused local.
13855 (java_parser_context_push_initialized_field): Fixed leading
13856 comment. Use CPC_STATIC_INITIALIZER_LIST, CPC_INITIALIZER_LIST and
13857 CPC_INSTANCE_INITIALIZER_LIST.
13858 (java_parser_context_pop_initialized_field): Likewise.
13859 (add_inner_class_fields): Use CPC_INITIALIZER_STMT.
13860 (register_fields): Use CPC_STATIC_INITIALIZER_STMT and
13861 CPC_INITIALIZER_STMT.
13862 (fix_constructors): New local `class_type'. Use it. Call
13863 add_instance_initializer.
13864 (java_complete_lhs): New case INSTANCE_INITIALIZERS_EXPR.
13865 (patch_return): Forbid return in instance initializers.
13866 (patch_throw_statement): Enforce exception handling in the context
13867 of instance initializers.
13868
13869 2000-02-03 Tom Tromey <tromey@cygnus.com>
13870
13871 * Make-lang.in (java.mostlyclean): Remove executables in
13872 `mostlyclean'.
13873
13874 2000-01-31 Scott Bambrough <scottb@netwinder.org>
13875
13876 * gcc/java/gjavah.c (D_NAN_MASK): Alternate definition required when
13877 HOST_FLOAT_WORDS_BIG_ENDIAN is defined to be 1.
13878 (java_float_finite): Convert to use union Word from javaop.h.
13879 (java_double_finite): Convert to use union DWord from javaop.h.
13880
13881 2000-02-02 Tom Tromey <tromey@cygnus.com>
13882
13883 * gjavah.c (options): Added `jni' entry.
13884 (help): Document -jni.
13885 (flag_jni): New global.
13886 (process_file): Handle JNI output. Don't print text from
13887 -prepend, -add, etc, when generating stubs. Only remove `.class'
13888 suffix if it actually exists.
13889 (main): Create a `.c' file when run with `--jni --stubs'. Create
13890 correct output file name with `--jni'.
13891 (print_include): Mangle header name differently in JNI case.
13892 (HANDLE_METHOD): In JNI mode, call print_method_info to generate
13893 method list.
13894 (print_method_info): Handle JNI case. Put signature info into
13895 method name. Handle case when STREAM is NULL.
13896 (print_name_for_stub_or_jni): New function.
13897 (print_stub_or_jni): Renamed from `print_stub'. Handle JNI.
13898 (print_cxx_classname): Handle JNI.
13899 (print_full_cxx_name): Likewise.
13900 (decode_signature_piece): Likewise.
13901 (overloaded_jni_method_exists_p): New function.
13902 (struct method_name): Added `signature' and `sig_length' fields.
13903 (HANDLE_END_FIELD): Do nothing in JNI mode.
13904
13905 2000-02-02 Tom Tromey <tromey@cygnus.com>
13906
13907 * jv-scan.c: Include version.c, <getopt.h>.
13908 (LONG_OPT, OPT_HELP, OPT_VERSION): New macros.
13909 (options): New array.
13910 (usage): New function.
13911 (version): New function.
13912 (main): Use getopt_long to parse command line.
13913 * jcf-dump.c: Include version.c, <getopt.h>.
13914 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_VERSION,
13915 OPT_JAVAP): New macros.
13916 (options): New array.
13917 (usage): Return `void'. Changed message.
13918 (help): New function.
13919 (version): New function.
13920 (main): Use getopt_long_only to parse command line.
13921 * gjavah.c: Include <getopt.h>.
13922 (LONG_OPT, OPT_classpath, OPT_CLASSPATH, OPT_HELP, OPT_TEMP,
13923 OPT_VERSION, OPT_PREPEND, OPT_FRIEND, OPT_ADD, OPT_APPEND, OPT_M,
13924 OPT_MM, OPT_MG, OPT_MD, OPT_MMD): New macros.
13925 (options): New array.
13926 (java_no_argument): Removed.
13927 (help): Updated with missing options.
13928 (main): Use getopt_long_only to parse command line.
13929 (usage): Changed message.
13930
13931 2000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13932
13933 * java-tree.def (NEW_ANONYMOUS_ARRAY_EXPR): New tree code.
13934 * parse.h (ANONYMOUS_ARRAY_BASE_TYPE, ANONYMOUS_ARRAY_DIMS_SIG,
13935 ANONYMOUS_ARRAY_INITIALIZER): New access macros.
13936 * parse.y (array_creation_expression:): Handle anonymous arrays.
13937 (build_array_from_name): Don't set `ret_name' if null.
13938 (resolve_qualified_expression_name): New case NEW_ANONYMOUS_ARRAY_EXPR.
13939 (qualify_ambiguous_name): Likewise.
13940 (java_complete_expand_class): Likewise.
13941
13942 2000-02-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
13943
13944 * java-tree.def (SYNCHRONIZED_EXPR): Fixed typo.
13945 * parse.h (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID): New macro.
13946 (MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STR): Likewise.
13947 (SKIP_THIS_AND_ARTIFICIAL_PARMS): Use DECL_FINIT_P.
13948 (AIPL_FUNCTION_FINIT_INVOCATION): Replaces
13949 AIPL_FUNCTION_COMPLETED_INVOCATION.
13950 (AIPL_FUNCTION_CTOR_INVOCATION): Replaces
13951 AIPL_FUNCTION_INVOCATION_READY.
13952 (AIPL_FUNCTION_DECLARATION): New enum entry.
13953 * parse.y (reorder_static_initialized): New function.
13954 (java_parser_context_pop_initialized_field): Use it.
13955 (add_inner_class_fields): Use
13956 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID. Comment
13957 augmented. Install marker after last alias initializer, if any.
13958 (generate_finit): Fixed typo. Don't try to retain only the used
13959 fields.
13960 (method_header): Compute and set DECL_FUNCTION_NAP.
13961 (method_declarator): Fixed comment. Insert alias initializer in
13962 parameter list.
13963 (build_alias_initializer_parameter_list): Fixed leading
13964 comment. New case for AIPL_FUNCTION_DECLARATION. Old enum value
13965 replaced by new ones. Use MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID.
13966 (java_complete_expand_class): Code to retain only used aliases
13967 removed.
13968 (java_complete_expand_methods): New local `first_decl'. Generate
13969 $finit$ first, then expand the constructors, regular methods and
13970 <clinit>.
13971 (java_complete_expand_method): Don't report error on missing
13972 return statement if previously detected bogus.
13973 (fix_constructors): Don't patch constructor parameters list.
13974 (patch_method_invocation): Use new AIPL enum values. Reverse
13975 alias initializer list for anonymous classes.
13976
13977 2000-01-30 Anthony Green <green@redhat.com>
13978
13979 * jcf-write.c (generate_bytecode_insns): Use TYPE_IS_WIDE to
13980 determine how many stack slots to pop.
13981
13982 2000-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
13983
13984 * parse.y (formal_parameter:): Set `$$' to NULL_TREE for better
13985 error handling/recovery.
13986 * java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.
13987
13988 2000-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
13989
13990 * java-tree.h (ARG_FINAL_P, FIELD_LOCAL_ALIAS,
13991 FIELD_LOCAL_ALIAS_USED): New macros.
13992 (DECL_FUNCTION_NAP): New macro.
13993 (struct lang_decl): New field `nap'.
13994 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST): New macros.
13995 (struct lang_type): New fields `finit_stmt_list' and
13996 `clinit_stmt_list'.
13997 (CLASS_HAS_FINIT_P): Defined using TYPE_FINIT_STMT_LIST.
13998 * parse.h (MANGLE_OUTER_LOCAL_VARIABLE_NAME): New macro.
13999 (SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
14000 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP): New macros.
14001 (AIPL_FUNCTION_CREATION, AIPL_FUNCTION_COMPLETED_INVOCATION,
14002 AIPL_FUNCTION_INVOCATION_READY): New enum fields.
14003 (BUILD_THROW): Macro line separator re-indented.
14004 * parse.y (end_class_declaration): New function.
14005 (maybe_generate_pre_expand_clinit): New name for
14006 java_pre_expand_clinit. Create <clinit> off TYPE_CLINIT_STMT_LIST,
14007 pre-expand static fields.
14008 (maybe_generate_clinit): Function deleted.
14009 (check_for_static_method_reference): Prototype's parameter list
14010 indented.
14011 (generate_finit): New name for maybe_generate_finit. Changed
14012 leading comment. Function rewritten to use
14013 TYPE_FINIT_STMT_LIST. Call build_alias_initializer_parameter_list.
14014 (build_alias_initializer_parameter_list): New function.
14015 (java_parser_context_pop_initialized_field): Likewise.
14016 (add_inner_class_fields): Likewise.
14017 (type_declaration:): Call end_class_declaration.
14018 (class_member_declaration:): Likewise.
14019 (formal_parameter_list:): Fixed typos.
14020 (formal_parameter:): Use ARG_FINAL_P to mark created tree list
14021 element. Improved error handling.
14022 (block_statement:): Call end_class_declaration.
14023 (anonymous_class_creation:): Likewise.
14024 (create_anonymous_class): Fixed comments.
14025 (create_class): Call add_inner_class_fields.
14026 (register_fields): Set FIELD_LOCAL_ALIAS according to ARG_FINAL_P.
14027 (method_header): Use MARK_FINAL_PARMS.
14028 (finish_method_declaration): Use UNMARK_FINAL_PARMS.
14029 (method_declarator): Propagate final argument flag.
14030 (craft_constructor): New local `artificial'. Call
14031 build_alias_initializer_parameter_list. Use
14032 CRAFTED_PARAM_LIST_FIXUP, assign DECL_FUNCTION_NAP.
14033 (source_start_java_method): Mark parm decls with LOCAL_FINAL if
14034 necessary.
14035 (complete_expand_class): Get rid of unused outer context local
14036 alias fields.
14037 (java_complete_expand_methods): Fixed leading
14038 comment. Generate/pre-expand <clinit> first. Changed method
14039 expansion order to regular, $finit$, constructors, <clinit>.
14040 (java_complete_expand_method): Set current_function_decl.
14041 (fix_constructors): Fix constructor parameter list to account for
14042 outer context local alias initializers.
14043 (verify_constructor_super): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14044 (resolve_expression_name): Lookup outer context local aliases. New
14045 local `access', use it.
14046 (patch_method_invocation): Patch inner class ctor invocation with
14047 outer context local aliases initialization values. $finit$
14048 invocation patching now includes things generated with
14049 build_alias_initializer_parameter_list.
14050 (argument_types_convertible): Use SKIP_THIS_AND_ARTIFICIAL_PARMS.
14051 (build_super_invocation): Likewise.
14052 (patch_assignment): Changed comment.
14053
14054 2000-01-27 Andrew Haley <aph@cygnus.com>
14055
14056 * jcf-write.c (emit_goto): RESERVE 3 bytes for insn.
14057 (emit_if): Ditto.
14058 (emit_jsr): Ditto.
14059
14060 2000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14061
14062 * parse.h (OBSOLETE_MODIFIER_WARNING): Don't use ANSI string
14063 concatenation.
14064 (OBSOLETE_MODIFIER_WARNING2): New macro allowing two args.
14065
14066 * parse.y (register_fields): Don't pass a format specifier to
14067 OBSOLETE_MODIFIER_WARNING.
14068 (check_abstract_method_header): Use OBSOLETE_MODIFIER_WARNING2
14069 instead of OBSOLETE_MODIFIER_WARNING, and don't pass a format
14070 specifier.
14071 (check_modifiers): Change function into a macro.
14072 (check_class_interface_creation): Pass a literal format string.
14073
14074 2000-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14075
14076 * buffer.h: PROTO -> PARAMS.
14077 * check-init.c: Likewise.
14078 * class.c: Likewise.
14079 * constants.c: Likewise.
14080 * convert.h: Likewise.
14081 * decl.c: Likewise.
14082 * except.c: Likewise.
14083 * expr.c: Likewise.
14084 * gjavah.c: Likewise.
14085 * java-except.h: Likewise.
14086 * java-tree.h: Likewise.
14087 * jcf-depend.c: Likewise.
14088 * jcf-dump.c: Likewise.
14089 * jcf-parse.c: Likewise.
14090 * jcf-path.c: Likewise.
14091 * jcf-reader.c: Likewise.
14092 * jcf-write.c: Likewise.
14093 * jcf.h: Likewise.
14094 * jv-scan.c: Likewise.
14095 * jvgenmain.c: Likewise.
14096 * jvspec.c: Likewise.
14097 * lang.c: Likewise.
14098 * lex.c: Likewise.
14099 * lex.h: Likewise.
14100 * parse-scan.y: Likewise.
14101 * parse.h: Likewise.
14102 * parse.y: Likewise.
14103 * typeck.c: Likewise.
14104 * verify.c: Likewise.
14105 * xref.c: Likewise.
14106 * xref.h: Likewise.
14107 * zextract.c: Likewise.
14108 * zipfile.h: Likewise.
14109
14110 2000-01-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
14111
14112 * class.c (make_class): Use MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
14113 (is_compiled_class): Remove test on TYPE_LANG_SPECIFIC, use TYPE_JCF.
14114 * constants.c (build_constant_data_ref): Check for cached
14115 current_constant_pool_data_ref. Cache current_constant_pool_data_ref
14116 in TYPE_CPOOL_DATE_REF.
14117 * java-tree.h (TYPE_JCF, TYPE_CPOOL, TYPE_CPOOL_DATA_REF,
14118 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC:) New macros.
14119 (struct lang_type): New fields `cpool' and `cpool_data_ref'.
14120 (LOCAL_FINAL): New macro.
14121 * jcf-parse.c (init_outgoing_cpool): Always allocate new outgoing
14122 constant pool -- don't try to reuse.
14123 (parse_zip_file_entries): Use TYPE_JCF, don't lazily allocate
14124 TYPE_LANG_SPECIFIC.
14125 (find_in_current_zip): Use TYPE_JCF.
14126 * parse.h (java_check_final): Prototype removed.
14127 * parse.y (create_class): Reversed Jan 12, 2000 extra argument patch.
14128 (maybe_create_class_interface_decl,
14129 check_class_interface_creation): Likewise.
14130 (java_expand_finals): Function removed.
14131 (class_declaration:): Reversed Jan 12, 2000 extra argument patch.
14132 (block_statement:): Fixed comment.
14133 (anonymous_class_creation:): Likewise.
14134 (check_class_interface_creation): Reversed Jan 12, 2000 extra
14135 argument patch.
14136 (check_class_interface_creation): Loosened error report on (inner)
14137 public class declarations. CPC_INNER_P replaces GET_CPC_LIST.
14138 (link_nested_class_to_enclosing): Reversed Jan 12, 2000 patch.
14139 (maybe_create_class_interface_decl): Reversed Jan 12, 2000 extra
14140 argument patch.
14141 (create_interface): Likewise.
14142 (anonymous_class_counter): New static global.
14143 (create_anonymous_class): Reversed Jan 12, 2000 extra argument
14144 patch. Fixed comments.
14145 (create_class): Reversed Jan 12, 2000 extra argument patch. Reset
14146 anonymous_class_counter when declaring a toplevel class.
14147 (craft_constructor): Fixed constructor name when handling
14148 anonymous classes. Anonymous class constructors to feature hidden
14149 this$<n> parameter.
14150 (java_fix_constructors): Added comment.
14151 (java_check_final): Function removed.
14152 (java_complete_expand_methods): Fixed comment. Don't generate
14153 class data, save its outgoing constant pool instead.
14154 (verify_constructor_super): Skip anonymous class constructor
14155 hidden this$<n> parameter.
14156 (java_expand_classes): New local `saved_ctxp'. Removed call to
14157 java_expand_finals and java_check_final. Expand anonymous class
14158 constructors. Generate class data.
14159 (build_super_invocation): Skip anonymous class hidden this$<n>
14160 parameter.
14161 * typeck.c (build_java_signature): Use TYPE_SIGNATURE and
14162 MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC.
14163 (set_java_signature): Likewise.
14164
14165 2000-01-18 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
14166
14167 * gjavah.c: Delete ACC_VISIBILITY define.
14168 * jcf.h: Add ACC_VISIBILITY define.
14169 * parse.y: final: rule tagged <value>.
14170 (java_check_regular_methods): Use ACC_VISIBILITY define for
14171 default package access check.
14172 (local_variable_declaration_statement): Use final: rule.
14173
14174 2000-01-17 Joerg Brunsmann <joerg.brunsmann@fernuni-hagen.de>
14175
14176 * parse.y (format_parameter:): Use final: rule instead of modifiers:.
14177 (final:): New rule.
14178
14179 2000-01-17 Tom Tromey <tromey@cygnus.com>
14180
14181 * gjavah.c (print_field_info): Allow non-static final fields.
14182
14183 2000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14184
14185 * parse.h (enum jdep_code): New entry `JDEP_ANONYMOUS'.
14186 * parse.y (patch_anonymous_class): New function.
14187 (create_anonymous_class): Register incomplete type when the
14188 class/interface to extends/implement isn't known yet.
14189 (parser_check_super_interface): Simplify argument to CLASS_INTERFACE.
14190 (verify_constructor_super): Tuned error message.
14191
14192 2000-01-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14193
14194 * java-tree.h (FOR_LOOP_P): Replaces IS_FOR_LOOP_P.
14195 (ANONYMOUS_CLASS_P): New macro.
14196 (TYPE_SIGNATURE, TYPE_JCF): New macros.
14197 (INNER_CLASS_TYPE_P): Fixed typo in leading comment.
14198 * parse.y (create_class): Added leading argument.
14199 (maybe_create_class_interface_decl,
14200 check_class_interface_creation): Likewise.
14201 (craft_constructor): New function.
14202 (verify_constructor_super): Added argument in prototype.
14203 (class_declaration:): Inserted leading argument.
14204 (for_begin:): Use FOR_LOOP_P.
14205 (anonymous_class_creation): Create WFL of the anonymous class to
14206 instantiate. Call build_new_invocation. Added comments.
14207 (check_class_interface_creation): Handle parameter `anonymous' in
14208 verbose mode class creation announce.
14209 (link_nested_class_to_enclosing): Exclude anonymous classes.
14210 (maybe_create_class_interface_decl): Don't set DECL_CONTEXT on
14211 anonymous class, even though they appear to have an enclosing
14212 context.
14213 (create_interface): Pass extra argument to
14214 check_class_interface_creation.
14215 (create_anonymous_class): Set ANONYMOUS_CLASS_P to 1.
14216 (create_class): Call check_class_interface_creation and
14217 maybe_create_class_interface_decl with extra new argument. Don't
14218 add private this$<n> to anonymous classes.
14219 (method_declarator): Insert hidden this$<n> to anonymous class
14220 constructors.
14221 (java_fix_constructors): Deleted code creating default
14222 constructor. Call craft_constructor instead.
14223 (java_check_regular_methods): Set `saw_constructor' to 1 for
14224 anonymous classes.
14225 (fix_constructors): Pass extra argument to verify_constructor_super.
14226 (verify_constructor_super): New local `sdecl', use it. Search for
14227 matching constructor (possibly featuring arguments) in super
14228 class.
14229 (lookup_method_invoke): Craft constructor according to arguments
14230 list when dealing with anonymous class constructors.
14231 (build_super_invocation): Pass arguments to anonymous class super
14232 constructors.
14233 (search_loop): Use FOR_LOOP_P.
14234 (labeled_block_contains_loop_p): Likewise.
14235
14236 2000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
14237
14238 * class.c (set_super_info): Set CLASS_STATIC when appropriate.
14239 (enclosing_context_p): New function.
14240 (get_access_flags_from_decl): Handle CLASS_STATIC.
14241 (maybe_layout_super_class): Extra first argument passed to
14242 do_resolve_class.
14243 (layout_class_method): Use ID_FINIT_P, DECL_CLINIT_P and
14244 ID_INIT_P.
14245 * decl.c (access0_identifier_node): New global.
14246 (init_decl_processing): access0_identifier_node initialized.
14247 (pushdecl): Set DECL_CONTEXT only on non type decls.
14248 * expr.c (lookup_field): Lookup inner class fields in enclosing
14249 contexts.
14250 (expand_invoke): Use ID_INIT_P.
14251 (expand_java_field_op): Use DECL_CLINIT_P.
14252 * java-tree.def (CLASS_LITERAL): New tree code.
14253 * java-tree.h (DECL_FUNCTION_ACCESS_DECL,
14254 DECL_FUNCTION_INNER_ACCESS, FIELD_INNER_ACCESS): New macros.
14255 (struct lang_decl): New field `inner_access'.
14256 (enclosing_context_p): Prototyped.
14257 (DECL_INIT_P, DECL_FINIT_P, DECL_CLINIT_P, ID_INIT_P, ID_FINIT_P,
14258 ID_CLINIT_P): New macros.
14259 (CLASS_STATIC): New macro.
14260 (CLASS_ACCESS0_GENERATED_P): New macro.
14261 (OUTER_FIELD_ACCESS_IDENTIFIER_P, INNER_CLASS_DECL_P,
14262 TOPLEVEL_CLASS_DECL_P, INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
14263 INNER_CLASS_P): New macros.
14264 (DECL_INNER_CLASS_LIST): New macro.
14265 * jcf-parse.c (yyparse): Avoid the use of ANSI string
14266 concatenation.
14267 * jcf-write.c (generate_bytecode_insns): binop: Change the type of
14268 the shift value to int. Fixed typo in comment.
14269 * lex.c (inst_id, wpv_id): Initialize.
14270 * mangle.c (unicode_mangling_length): Take `$' into account.
14271 * parse.h (DRECOVER, RECOVER): Terminate properly.
14272 (IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS): New macro.
14273 (typedef struct _jdep): New field `enclosing'.
14274 (JDEP_ENCLOSING): New macro.
14275 (IS_CLINIT): Deleted (DECL_CLINIT_P replaces it.)
14276 (struct parser_ctxt): New fields `marker_beginning', `marked_end'.
14277 (GET_CPC_LIST, CPC_INNER_P, GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE,
14278 GET_CPC_DECL_NODE, GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
14279 GET_ENCLOSING_CPC_CONTEXT): New macros.
14280 (PUSH_CPC, PUSH_ERROR, POP_CPC): New macros.
14281 (do_resolve_class): Added extra argument in prototype.
14282 * parse.y (resolve_class): Added extra argument in prototype.
14283 (maybe_create_class_interface_decl): Likewise.
14284 (maybe_use_access_method, build_wfl_wrap): New functions.
14285 (java_complete_expand_classes, java_complete_expand_class):
14286 Likewise.
14287 (java_parser_context_push_initialized_field,
14288 java_parser_context_suspend, java_parser_context_resume):
14289 Likewise.
14290 (maybe_make_nested_class_name, make_nested_class_name,
14291 set_nested_class_simple_name_value,
14292 link_nested_class_to_enclosing, find_as_inner_class,
14293 find_as_inner_class_do, check_inner_class_redefinition,
14294 build_thisn_assign, build_current_thisn, build_access_to_thisn,
14295 maybe_build_thisn_access_method, build_outer_field_access,
14296 build_outer_field_access_methods, build_outer_field_access_expr,
14297 build_outer_method_access_method, build_new_access_id,
14298 build_outer_field_access_method, outer_field_access_p,
14299 outer_field_expanded_access_p, outer_field_access_fix,
14300 build_incomplete_class_ref, patch_incomplete_class_ref,
14301 create_anonymous_class): Likewise.
14302 (inst_id, wpv_id): New static global variables.
14303 (synchronized:): New rule, tagged <node>.
14304 (type_declaration:): No longer tagged <node>. Call POP_CPC in sub
14305 rules.
14306 (anonymous_class_creation:): New rule, tagged <node>.
14307 (NEW_TK): Tagged <node>.
14308 (type_literals, array_type_literal): New rules, tagged <node>.
14309 (class_declaration:): Removed action when reducing by class_body:
14310 (class_body:): Set DECL_END_SOURCE_LINE and rule's returned value
14311 using GET_CPC in sub-rules.
14312 (class_member_declaration): Handle inner classes.
14313 (method_declaration): When reducing method_header:, reset
14314 current_function_decl when appropriate.
14315 (method_declarator:): Set the number of formal parameter to 0 for
14316 method declared without arguments.
14317 (constructor_declarator:): Likewise.
14318 (static_initializer:): List of elements kept in a list.
14319 (static:): Rule modifiers: replaces MODIFIER_TK. Enforce correct
14320 use of the keyword `static' for type declarations.
14321 (block_statement:): Handle inner class declarations.
14322 (primary_no_new_array:): Use type_literals:. Fixed comment. Handle
14323 type qualified `this'.
14324 (class_instance_creation_expression): Use anonymous_class_creation:
14325 to handle inner class instances creation. Handle qualified `new'.
14326 (something_dot_new): Added appropriate actions.
14327 (create_new_parser_context): New function.
14328 (java_push_parser_context, java_parser_context_save_global,
14329 java_parser_context_suspend): Use create_new_parser_context.
14330 (check_modifiers): Changed leading comment.
14331 (check_class_interface_creation): Handle interclasses.
14332 (add_superinterfaces): Fixed comment.
14333 (create_interface): Build qualified name from the raw_name instead
14334 of its matching WFL. Push the initialized fields list. raw_name added
14335 as an extra argument to maybe_create_class_interface_decl.
14336 (create_class): Build qualified name from the raw_name instead of
14337 its matching WFL. Removed assignment to current_parsed_class_un.
14338 Call PUSH_ERROR before returning an error. Suspend the current
14339 parser context when processing an inner class. Push the
14340 initialized fields list. raw_name added as an extra argument to
14341 maybe_create_class_interface_decl. Add the private this$<n>
14342 field.
14343 (duplicate_declaration_error_p): Use GET_CPC when calling find_field.
14344 (register_fields): Get the class type from GET_CPC and handle
14345 previous errors. Added code to handle the creation of static
14346 fields in inner classes. Initialized fields initialization
14347 statements kept in a list of lists.
14348 (maybe_generate_finit): Initialized fields initialization
14349 statements kept in a list of lists. Use GET_CPC.
14350 (maybe_generate_clinit): Likewise.
14351 (method_header): Use GET_CPC and GET_CPC_UN.
14352 (parser_qualified_classname): Handle inner classes.
14353 (register_incomplete_type): Set JDEP_ENCLOSING using GET_CPC.
14354 (java_fix_constructors): Hide pointer to enclosing context
14355 instance in constructor list when dealing with inner classes.
14356 (jdep_resolve_class): Call resolve_class with extra first argument
14357 JDEP_ENCLOSING.
14358 (resolve_class): Add enclosing context as a first extra argument
14359 to do_resolve_class.
14360 (do_resolve_class): Call find_as_inner_class. Handle WFLs
14361 properly.
14362 (resolve_no_layout): Extra argument added to resolve_class
14363 invocation.
14364 (reset_method_name): Use DECL_CLINIT_P, DECL_FINIT_P.
14365 (java_get_real_method_name): Use GET_CPC_UN.
14366 (check_abstract_method_definitions): Use DECL_CLINIT_P.
14367 (java_check_abstract_methods): Handle static method declared in
14368 inner classes by an error.
14369 (java_check_regular_methods): Use DECL_CLINIT_P.
14370 (source_start_java_method): Also set DECL_MAX_LOCALS.
14371 (create_artificial_method): Call java_parser_context_save_global
14372 and java_parser_context_restore_global instead of saving/restoring
14373 the context by hand.
14374 (expand_start_java_method): Improved verbose mode message.
14375 (java_complete_expand_methods): Fixed leading comment. Use
14376 DECL_CLINIT_P.
14377 (fix_constructors): Added assignment to this$<n> if necessary.
14378 (java_expand_classes): Call java_complete_expand_classes instead
14379 of java_complete_expand_methods.
14380 (make_qualified_primary): Simplified.
14381 (merge_qualified_name): Optimized for missing left or right parts.
14382 (resolve_expression_name): Handle access to outer class fields from
14383 interclasses.
14384 (resolve_qualified_expression_name): New macro
14385 RESTORE_THIS_AND_CURRENT_CLASS, used. Handle creation of inner
14386 classes. Report error on non appropriate qualification of
14387 `new'. Handle qualified `this'.
14388 (not_accessible_p): Allow access to outer class private fields from
14389 inner classes.
14390 (patch_method_invocation): Handle method invocations through
14391 access methods and inner class constructor invocations.
14392 (find_applicable_accessible_methods_list): Search enclosing
14393 contexts of an inner class.
14394 (search_applicable_methods_list): Fixed typo.
14395 (argument_types_convertible): Handle inner class constructors'
14396 hidden outer context reference argument.
14397 (qualify_ambiguous_name): Handle qualified `this'.
14398 (java_complete_lhs): Handle use of field accessed through
14399 artificial access methods in various cases of assignments. Handle
14400 CLASS_LITERAL node.
14401 (check_final_assignment): Use DECL_CLINIT_P.
14402 (valid_ref_assignconv_cast_p): Handle the destination being an
14403 enclosing context of the source.
14404 (patch_unaryop): Handle use of field accessed through artificial
14405 access methods.
14406 (patch_return): Use DECL_CLINIT_P.
14407 (patch_throw_statement): Use DECL_CLINIT_P.
14408 (check_thrown_exceptions): Use DECL_FINIT_P and DECL_INIT_P.
14409 * verify.c (verify_jvm_instructions): Use ID_CLINIT_P and
14410 ID_INIT_P.
14411
14412 2000-01-16 Anthony Green <green@cygnus.com>
14413
14414 * parse.y (build_string_concatenation): Only use
14415 StringBuffer(String) shortcut if String arg is constant.
14416
14417 2000-01-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
14418
14419 * jcf-write.c (generate_bytecode_insns): binop: Change the type of
14420 the shift value to int. Fixed typo in comment.
14421
14422 2000-01-11 Mumit Khan <khan@xraylith.wisc.edu>
14423
14424 * jcf-path.c: Delete PATH_SEPARATOR and DIR_SEPARATOR macros.
14425 * jcf-write.c: Likewise.
14426 * parse.y: Likewise.
14427 * parse.c: Regenerate.
14428
14429 2000-01-09 Anthony Green <green@cygnus.com>
14430
14431 * jcf-write.c (generate_bytecode_insns): Emit invokeinterface
14432 bytecodes in the correct order.
14433
14434 2000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14435
14436 * Makefile.in (jcf-dump, gcjh): Move ../errors.o before $(LIBS).
14437
14438 2000-01-06 Anthony Green <green@cygnus.com>
14439
14440 * expr.c (java_lang_expand_expr): Switch to permanent obstack
14441 before building constant array decl.
14442
14443 2000-01-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
14444
14445 * jcf-write.c (generate_bytecode_conditional): Fixed indentation in
14446 method invocation and typo in conditional expression.
14447 (generate_bytecode_insns): COND_EXPR can be part of a binop. Issue
14448 the appropriate NOTE_POP.
14449 * parse.y (patch_binop): Shift value mask to feature the right
14450 type.
14451
14452 1999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14453
14454 * class.c (assume_compiled, assume_compiled_node): Add static
14455 prototype.
14456 (add_assume_compiled): Use xmalloc/xstrdup, not malloc/strdup.
14457
14458 * jcf-dump.c (ARRAY_NEW_NUM): Cast long to int in switch.
14459
14460 * jvgenmain.c (usage): Add static prototype with ATTRIBUTE_NORETURN.
14461
14462 * parse.h (OBSOLETE_MODIFIER_WARNING): Rename parameter `modifier'
14463 to `__modifier' to avoid stringifying it.
14464
14465 * parse.y (verify_constructor_circularity): Don't call a variadic
14466 function with a non-literal format string.
14467 (java_check_abstract_methods): Move unreachable code inside
14468 `continue' statement.
14469 (lookup_method_invoke): Call xstrdup, not strdup.
14470
14471 * expr.c (expand_java_field_op): Avoid the use of ANSI string
14472 concatenation.
14473
14474 * jcf-parse.c (yyparse): Likewise.
14475
14476 * jv-scan.c (main): Likewise.
14477
14478 1999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14479
14480 * parse.h (ABSTRACT_CHECK, JCONSTRUCTOR_CHECK,
14481 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
14482 ERROR_CAST_NEEDED_TO_INTEGRAL): Avoid the use of ANSI string
14483 concatenation.
14484
14485 * parse.y (synchronized, variable_redefinition_error,
14486 check_class_interface_creation, create_interface, create_class,
14487 method_header, finish_method_declaration,
14488 check_modifiers_consistency, method_declarator,
14489 complete_class_report_errors, check_abstract_method_definitions,
14490 java_check_regular_methods, check_throws_clauses,
14491 java_check_abstract_methods, read_import_dir,
14492 check_pkg_class_access, declare_local_variables, fix_constructors,
14493 cut_identifier_in_qualified, resolve_expression_name,
14494 resolve_qualified_expression_name, patch_method_invocation,
14495 java_complete_lhs, patch_assignment, try_builtin_assignconv,
14496 patch_binop, patch_array_ref, patch_newarray, build_labeled_block,
14497 patch_exit_expr, patch_exit_expr, patch_switch_statement,
14498 patch_try_statement, patch_synchronized_statement,
14499 patch_throw_statement, check_thrown_exceptions,
14500 patch_conditional_expr): Likewise.
14501
14502 1999-12-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
14503
14504 * Makefile.in (LIBDEPS): Added gcc's errors.o
14505 (../jcf-dump$(exeext):): Link with gcc's errors.o
14506 (../gcjh$(exeext):): Likewise.
14507 * expr.c (expand_java_NEW): Layout the entire target type instead of
14508 laying out its methods only.
14509 (lookup_field): Layout the class after having loaded it.
14510 * java-tree.h (java_debug_context): Declared.
14511 * jcf-io.c (toplev.h): Included.
14512 (find_class): Removed assignment to jcf's outofsynch
14513 field. Force source file to be read if newer than its matching
14514 class file. Tweaked debug messages.
14515 * jcf-parse.c (jcf_out_of_synch): Deleted.
14516 (read_class): Call to jcf_out_of_synch removed.
14517 * jcf.h (typedef struct JCF): Field `outofsynch' deleted.
14518 (jcf_out_of_synch): Prototype deleted.
14519 * parse.h (struct parser_ctxt): `minus_seen', `java_error_flag',
14520 `deprecated' and `class_err': integer turned into bit-fields.
14521 New bit-fields `saved_data_ctx' and `saved_data'. Fixed comments.
14522 * parse.y (package_list): New global.
14523 (package_declaration:): Record newly parsed package name.
14524 (extra_ctxp_pushed_p): Static global deleted.
14525 (java_parser_context_save_global): Create buffer context for the
14526 purpose of saving globals, if necessary.
14527 (java_parser_context_restore_global): Pop context pushed for the
14528 purpose of saving globals, if necessary.
14529 (java_debug_context_do): New prototype and function.
14530 (java_debug_context): Likewise.
14531 (do_resolve_class): Use already parsed package names to qualify
14532 and lookup class candidate.
14533 (java_pre_expand_clinit): Removed unnecessary local variable.
14534
14535 1999-12-17 Tom Tromey <tromey@cygnus.com>
14536
14537 * gjavah.c (decode_signature_piece): Print "::" in JArray<>. This
14538 fixes PR gcj/119.
14539 (process_file): Use `\n\' at end of each line in string.
14540
14541 1999-12-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
14542
14543 * expr.c (expand_invoke): Layout the loaded class before
14544 attempting to use it.
14545 (expand_java_field_op): Allow final field assignments to take
14546 place in $finit$.
14547 * typeck.c (convert): Return error_mark_node if expr is null.
14548
14549 1999-12-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14550
14551 * class.c (class_depth): Return -1 if the class doesn't load
14552 properly.
14553 * expr.c (can_widen_reference_to): Check for errors during depth
14554 computation and return 0 accordingly.
14555 * jcf-parse.c (parse_source_file): Call java_fix_constructors to
14556 create default constructors and add an other error check.
14557 * parse.h (java_fix_constructors): Prototyped.
14558 * parse.y (java_pre_expand_clinit): Likewise.
14559 (build_super_invocation): Re-prototyped to feature one argument.
14560 (java_check_circular_reference): Directly use `current'.
14561 (java_fix_constructors): New function.
14562 (java_check_regular_methods): Don't create default constructors
14563 here, but abort if none were found.
14564 (java_complete_expand_methods): Pre-process <clinit> calling
14565 java_pre_expand_clinit.
14566 (java_pre_expand_clinit): New function.
14567 (fix_constructors): build_super_invocation invoked with the
14568 current method declaration as an argument.
14569 (build_super_invocation): Use the context of the processed method
14570 decl argument instead of current_class.
14571 * typeck.c (lookup_java_method): Take WFLs in method names into
14572 account.
14573
14574 1999-12-14 Per Bothner <per@bothner.com>
14575
14576 * class.c (make_class_data): flag_keep_inline_functions to keep
14577 private methods in the method array.
14578
14579 1999-12-15 Anthony Green <green@cygnus.com>
14580
14581 * check-init.c (check_init): Take into account both types of
14582 `throw's when checking for uninitialized variables.
14583
14584 1999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14585
14586 * parse.y (java_complete_lhs): Force conversion of array
14587 dimensions to int_type_node, that's what runtime's ABI expects.
14588
14589 1999-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
14590
14591 * parse.h (EXPR_WFL_QUALIFICATION): Temporary uses the third
14592 operand of a WFL, until the Java front-end gets fixed with regard
14593 to Mark Mitchell's gcc/tree.h patch (1999-12-04.)
14594
14595 1999-12-10 Andrew Haley <aph@cygnus.com>
14596
14597 * parse.h (BUILD_THROW): Add support for sjlj-exceptions.
14598 decl.c (init_decl_processing): Add _Jv_Sjlj_Throw.
14599 expr.c (build_java_athrow): Add support for sjlj-exceptions.
14600 java-tree.h: Ditto.
14601 jcf-write.c: Ditto.
14602
14603 1999-12-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
14604
14605 * expr.c (java_lang_expand_expr): Switch to permanent obstack
14606 before calling expand_eh_region_start and expand_start_all_catch.
14607 * except.c (expand_start_java_handler): Switch to permanent
14608 obstack before calling expand_eh_region_start.
14609 (expand_end_java_handler): Switch to permanent obstack before
14610 calling expand_start_all_catch.
14611
14612 1999-12-5 Anthony Green <green@cygnus.com>
14613
14614 * decl.c (init_decl_processing): Mark throw_node as a noreturn
14615 function with side effects.
14616 (init_decl_processing): Mark all memory allocating DECLs with
14617 DECL_IS_MALLOC.
14618
14619 1999-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
14620
14621 * except.c (expand_end_java_handler): Call
14622 expand_resume_after_catch and end_catch_handler.
14623
14624 1999-11-30 Anthony Green <green@cygnus.com>
14625
14626 * verify.c (verify_jvm_instructions): Create new return label
14627 chain if non existent (don't rely on the verified state of the jsr
14628 target.)
14629
14630 1999-11-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
14631
14632 * jcf-write.c (generate_bytecode_insns): Fixed indentation for
14633 COMPOUND_EXPR and FIX_TRUNC_EXPR cases.
14634
14635 * parse.y (patch_assignment): Removed bogus final class test on
14636 lhs when checking on whether to emit an ArrayStoreException runtime
14637 check.
14638 * expr.c (expand_java_arraystore): Likewise.
14639
14640 1999-11-28 Anthony Green <green@cygnus.com>
14641
14642 * decl.c (find_local_variable): Reuse single slot decls when
14643 appropriate.
14644
14645 1999-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
14646
14647 * jcf-parse.c (saw_java_source): Global variable removed.
14648 (read_class): Don't use `saw_java_source'. Added extra braces.
14649 (yyparse): Code setting `saw_java_source' removed.
14650
14651 1999-11-24 Mark Mitchell <mark@codesourcery.com>
14652
14653 * except.c (emit_handlers): Zero catch_clauses after emitting them.
14654
14655 1999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
14656
14657 * verify.c (merge_type_state): Non verified subroutines being
14658 considered more than once to trigger passive type merge.
14659
14660 1999-11-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
14661
14662 * parse.y (catch_clause_parameter:): Still set `$$' to NULL_TREE
14663 in case of error. Error message tuned.
14664
14665 1999-11-21 Anthony Green <green@cygnus.com>
14666
14667 * constants.c (find_methodref_index): Unwrap method names before
14668 inserting them in the constant pool.
14669
14670 * jcf-parse.c (jcf_parse): Display `interface' when appropriate.
14671
14672 * class.c (assume_compiled_node): New typedef.
14673 (assume_compiled_tree): New static data.
14674 (find_assume_compiled_node): New function.
14675 (add_assume_compiled): New function.
14676 (assume_compiled): New function.
14677 * class.c (make_class_data): Use assume_compiled.
14678 (is_compiled_class): Use assume_compiled.
14679
14680 * java-tree.h (add_assume_compiled): Declare.
14681
14682 * lang.c (lang_decode_option): Parse new options.
14683
14684 1999-11-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
14685
14686 * class.c (layout_class): Always convert TYPE_SIZE_UNIT to
14687 int_type_node: that's what `_Jv_AllocObject' expects.
14688
14689 1999-11-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
14690
14691 * parse.y (lookup_method_invoke): Use lang_printable_name to
14692 reliably build the type name during error report. Fixes PR gcj/97.
14693
14694 1999-11-09 Tom Tromey <tromey@cygnus.com>
14695
14696 * jcf-path.c: Include <sys/stat.h>.
14697 (jcf_path_init): Search for libjava.zip. Fixes PR gcj/84.
14698 (DIR_UP): New macro.
14699
14700 1999-11-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
14701
14702 * parse.y (source_end_java_method): Resume permanent allocation,
14703 reversing Apr 27 1998 patch.
14704 (patch_string_cst): Pop obstacks after having pushed the permanent
14705 ones.
14706
14707 1999-11-05 Tom Tromey <tromey@cygnus.com>
14708
14709 * class.c (finish_class): Emit inlined methods if any native
14710 methods exist in the class. Fixes PR gcj/85.
14711
14712 1999-11-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
14713
14714 * parse.y (resolve_qualified_expression_name): Handle PLUS_EXPR.
14715 (qualify_ambiguous_name): Likewise.
14716
14717 1999-11-03 Godmar Back <gback@cs.utah.edu>
14718
14719 * typeck.c: (lookup_java_method): search all inherited
14720 interfaces when looking up interface method.
14721
14722 1999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
14723
14724 * parse.y (method_header:): Issue error message for rule `type
14725 error'.
14726 (synchronized:): Error report when not using synchronized.
14727
14728 1999-11-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
14729
14730 * parse.y (resolve_qualified_expression_name): Prevent `this' from
14731 being used before the superclass constructor has been called.
14732 (complete_function_arguments): Use CALL_EXPLICIT_CONSTRUCTOR_P
14733 instead of `CALL_THIS_CONSTRUCTOR_P'.
14734
14735 1999-10-30 Todd T. Fries <todd@lighthouse.fries.net>
14736
14737 * check-init.c: Fix typo in comment.
14738
14739 1999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
14740
14741 * class.c (add_method_1): Set DECL_INLINE to 1 for private, static
14742 and final method.
14743
14744 1999-10-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
14745
14746 * parse.y (expression_statement:): Call function to report
14747 improper invocation of a constructor.
14748 (parse_ctor_invocation_error): New function.
14749
14750 1999-10-26 Mark Mitchell <mark@codesourcery.com>
14751
14752 * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
14753 remember_end_note.
14754
14755 1999-10-21 Tom Tromey <tromey@cygnus.com>
14756
14757 * jvgenmain.c (main): _Jv_Compiler_Properties now an extern; set
14758 in generated `main'.
14759
14760 1999-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
14761
14762 * parse.y (resolve_qualified_expression_name): Handle MODIFY_EXPR.
14763 (qualify_ambiguous_name): Likewise.
14764
14765 1999-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
14766
14767 * parse.y (java_complete_tree): fold_constant_for_init to work on
14768 permanent_obstack.
14769 (java_complete_lhs): Likewise.
14770 (array_constructor_check_entry): Complete an initializer element
14771 on permanent_obstack.
14772
14773 1999-10-19 Tom Tromey <tromey@cygnus.com>
14774
14775 * jcf-parse.c (parse_source_file): Call jcf_dependency_add_file.
14776 From Mike Moreton <mike@pillim.demon.co.uk>.
14777
14778 1999-10-15 Greg McGary <gkm@gnu.org>
14779
14780 * java-tree.h (flag_bounds_check): Remove extern decl.
14781 * lang.c (flag_bounds_check): Remove global variable.
14782 (lang_f_options): Remove "bounds-check" entry.
14783 (lang_init_options): Default flag_bounds_check to "on".
14784
14785 1999-10-14 Tom Tromey <tromey@cygnus.com>
14786
14787 * jvgenmain.c (usage): New function.
14788 (main): Use it. Also, handle `-D' options.
14789 * jvspec.c (lang_specific_driver): Recognize -D.
14790 (jvgenmain_spec): Added `%{D*}' to jvgenmain invocation.
14791
14792 * jvspec.c (jvgenmain_spec): Use `%umain', not just `%u'.
14793
14794 1999-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14795
14796 * jcf-dump.c (print_constant, disassemble_method): Don't call a
14797 variadic function with a non-literal format string.
14798
14799 * parse-scan.y (report_main_declaration): Likewise.
14800
14801 * parse.h (ERROR_CAST_NEEDED_TO_INTEGRAL): Likewise.
14802
14803 * parse.y (read_import_dir, patch_assignment, patch_binop,
14804 patch_array_ref): Likewise.
14805
14806 * typeck.c (build_java_array_type): Likewise.
14807
14808 * verify.c (verify_jvm_instructions): Likewise.
14809
14810 1999-10-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
14811
14812 * jcf-write.c (RELOCATION_VALUE_1): Fixed integer value from 0 to 1.
14813
14814 1999-10-07 Anthony Green <green@cygnus.com>
14815
14816 * jcf-write.c (generate_classfile): Use UNSAFE_PUTx in cases
14817 where CHECK_PUT may fail for valid reasons.
14818
14819 * jcf-write.c (UNSAFE_PUT1, UNSAFE_PUT2, UNSAFE_PUT3,
14820 UNSAFE_PUTN): New macros.
14821
14822 1999-10-04 Tom Tromey <tromey@cygnus.com>
14823
14824 * lex.h (BUILD_OPERATOR2): Return ASSIGN_ANY_TK in `lite' case as
14825 well. Fixes Java PR gcj/59.
14826 * parse-scan.y (yyerror): Report errors.
14827
14828 1999-09-24 Glenn Chambers <GChambers@provsol.com>
14829
14830 * decl.c (insert_block): Remove unconditional `abort'.
14831
14832 1999-09-24 Bernd Schmidt <bernds@cygnus.co.uk>
14833
14834 * decl.c (builtin_function): No longer static. New arg CLASS. Arg
14835 FUNCTION_CODE now of type int. All callers changed.
14836 Set the builtin's DECL_BUILT_IN_CLASS.
14837
14838 1999-09-23 Tom Tromey <tromey@cygnus.com>
14839
14840 * jvspec.c (lang_specific_driver): Don't read spec file if
14841 -fsyntax-only given.
14842
14843 1999-09-22 Tom Tromey <tromey@cygnus.com>
14844
14845 * lang-specs.h: Added `%(jc1)' to the jc1 spec.
14846
14847 * javaop.h (WORD_TO_FLOAT): Use `inline' unconditionally.
14848 (WORDS_TO_LONG): Likewise.
14849 (WORDS_TO_DOUBLE): Likewise.
14850
14851 1999-09-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
14852
14853 * jcf-write.c (RELOCATION_VALUE_0): New macro.
14854 (RELOCATION_VALUE_1): Likewise.
14855 (emit_iinc, emit_reloc, push_constant1, push_constant2,
14856 push_in_const, push_long_const): Prototyped.
14857 (push_constant1): Argument `index' is of type HOST_WIDE_INT.
14858 (push_constant2): Likewise.
14859 (push_int_const): Cast find_constant1's integer arguments to `jword'.
14860 (find_constant_wide): Cast find_constant2's integer arguments to
14861 `jword'.
14862 (find_constant_index): Cast find_constant2's and find_constant2's
14863 integer arguments to `jword'.
14864 (emit_pop): Argument `value' is of type HOST_WIDE_INT.
14865 (emit_switch_reloc): Use RELOCATION_VALUE_0.
14866 (emit_if): Use RELOCATION_VALUE_1.
14867 (emit_goto): Likewise.
14868 (emit_jsr): Likewise.
14869 (generate_bytecode_insns): Use RELOCATION_VALUE_0. Cast second
14870 argument to push_long_const to HOST_WIDE_INT.
14871
14872 1999-09-15 Andreas Schwab <schwab@suse.de>
14873
14874 * Makefile.in (parse.o): Depend on $(JAVA_TREE_H).
14875
14876 1999-09-20 Nick Clifton <nickc@cygnus.com>
14877
14878 * lang.c (lang_decode_option): Extend comment.
14879
14880 1999-09-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
14881
14882 * parse.y (java_method_add_stmt): Test against GET_CURRENT_BLOCK
14883 instead of fndecl.
14884
14885 1999-09-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14886
14887 * gjavah.c (get_field_name, print_method_info, print_include,
14888 add_namelet): Use xmalloc, not malloc.
14889
14890 * jcf-depend.c (add_entry): Likewise. Use xstrdup, not strdup.
14891 (munge): Use xrealloc, not realloc, trust xrealloc to handle a
14892 NULL pointer.
14893
14894 * jcf-io.c (open_in_zip, find_class): Use xstrdup, not strdup.
14895
14896 * jcf-parse.c (jcf_out_of_synch, yyparse): Likewise.
14897
14898 * jcf-path.c (add_entry): Likewise.
14899
14900 * jcf.h (ALLOC, REALLOC): Use xmalloc/xrealloc, not malloc/realloc.
14901
14902 * jv-scan.c (xmalloc): Remove definition.
14903
14904 * jvgenmain.c (xmalloc): Likewise.
14905
14906 * jvspec.c (lang_specific_driver): Use xcalloc, not xmalloc/bzero.
14907
14908 * lex.c (java_store_unicode): Use xrealloc, not realloc.
14909
14910 * parse-scan.y: Use concat, not of xmalloc/assign/strcpy. Use
14911 concat, not xmalloc/sprintf.
14912 (java_push_parser_context): Use xcalloc, not xmalloc/bzero.
14913 (xstrdup): Remove definition.
14914
14915 * parse.y (duplicate_declaration_error_p,
14916 constructor_circularity_msg, verify_constructor_circularity,
14917 check_abstract_method_definitions, java_check_regular_methods,
14918 java_check_abstract_methods, patch_method_invocation,
14919 check_for_static_method_reference, patch_assignment, patch_binop,
14920 patch_cast, array_constructor_check_entry, patch_return,
14921 patch_conditional_expr): Use xstrdup, not strdup.
14922
14923 * zextract.c (ALLOC): Use xmalloc, not malloc.
14924
14925 1999-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14926
14927 * Make-lang.in (jvspec.o): Depend on system.h and gcc.h.
14928
14929 * jvspec.c: Include gcc.h. Don't include gansidecl.h.
14930 (do_spec, lang_specific_pre_link, lang_specific_driver,
14931 input_filename, input_filename_length): Don't declare.
14932 (main_class_name, jvgenmain_spec, lang_specific_driver):
14933 Constify a char*.
14934 (lang_specific_driver): All calls to the function pointer
14935 parameter now explicitly call `fatal'.
14936
14937 1999-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
14938
14939 * parse.y (find_applicable_accessible_methods_list): Search
14940 abstract classes as interfaces.
14941
14942 1999-09-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
14943
14944 * class.c (finish_class): We're now outside a valid method
14945 declaration. Tell the rest of gcc so.
14946
14947 1999-09-08 Bruce Korb autogen@linuxbox.com
14948
14949 * Makefile.in: Give the gperf user a hint about why "gperf -F" fails.
14950
14951 1999-09-07 Tom Tromey <tromey@cygnus.com>
14952
14953 * gjavah.c (add_class_decl): Generate include for gcj/array.h, not
14954 java-array.h.
14955 (decode_signature_piece): Don't emit "::" in JArray<>.
14956 (print_namelet): Only print trailing `;' when printing a class.
14957
14958 1999-09-10 Bernd Schmidt <bernds@cygnus.co.uk>
14959
14960 * java-tree.h: Delete declarations for all tree nodes now moved to
14961 global_trees.
14962 * decl.c: Delete their definitions.
14963
14964 1999-09-04 Mark Mitchell <mark@codesourcery.com>
14965
14966 * Make-lang.in (jc1): Depend on ggc-callbacks.o.
14967 * Makefile.in (OBJS): Add ggc-callbacks.o.
14968 (OBJDEPS): Likewise.
14969
14970 1999-09-03 Tom Tromey <tromey@cygnus.com>
14971
14972 * parse.y (strip_out_static_field_access_decl): Return operand if
14973 it satisfies JDECL_P.
14974
14975 1999-09-02 Tom Tromey <tromey@cygnus.com>
14976
14977 * gjavah.c (decode_signature_piece): Emit "::" in JArray<>.
14978 Handle nested arrays, like `[[I'.
14979
14980 1999-09-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14981
14982 * class.c (finish_class): Remove unused parameter, all callers
14983 changed.
14984
14985 * expr.c (build_java_athrow): Change return type to void.
14986 (java_lang_expand_expr): Make sure each case in switch returns a
14987 value.
14988
14989 * java-tree.h (finish_class): Fix prototype to take void args.
14990
14991 * jcf-dump.c (usage): Mark with ATTRIBUTE_NORETURN.
14992 (main): Issue return from main, not exit.
14993
14994 * jcf-parse.c (parse_class_file): Fix call to `finish_class'.
14995
14996 * jcf.h (jcf_unexpected_eof): Mark with ATTRIBUTE_NORETURN.
14997
14998 * jv-scan.c (main): Issue return from main, not exit.
14999
15000 * parse.y (check_abstract_method_definitions,
15001 java_check_abstract_method_definitions): Add static prototypes.
15002 (java_complete_expand_methods): Fix call to `finish_class'.
15003
15004 * verify.c (verify_jvm_instructions): Initialize variables `oldpc'
15005 and `prevpc'.
15006
15007 1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15008
15009 * lang.c (language_string): Constify.
15010
15011 1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15012
15013 * Makefile.in (LIBS): Fix definition so we link with $(CLIB).
15014 Remove hacks for stuff which comes from libiberty.
15015
15016 * Make-lang.in: Likewise.
15017
15018 1999-08-30 Hans-Peter Nilsson <hp@axis.se>
15019
15020 * Makefile.in (xref.o): Depend on xref.c explicitly.
15021
15022 1999-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15023
15024 * java-tree.h (lang_printable_name): Constify a char*.
15025
15026 * lang.c (lang_printable_name): Likewise.
15027
15028 1999-08-27 Jeffrey A Law (law@cygnus.com)
15029
15030 * gjavah.c, jcf-write.c, verify.c: Do not use C++ style
15031 comments in C code.
15032
15033 1999-08-26 Tom Tromey <tromey@cygnus.com>
15034
15035 * gjavah.c (print_cxx_classname): Print "::" before qualified
15036 name.
15037
15038 1999-08-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
15039
15040 * parse.y (lookup_cl): Changed leading comment. Now does its best
15041 to set the column number.
15042 (qualify_ambiguous_name): Take WFL wrappers into account.
15043
15044 1999-08-25 Gregg Townsend <gmt@cs.arizona.edu>
15045
15046 * verify.c (verify_jvm_instructions): Don't check instruction
15047 validity beyond end of method.
15048
15049 1999-08-25 Tom Tromey <tromey@cygnus.com>
15050
15051 * jvspec.c (lang_specific_driver): Correctly handle --help again.
15052
15053 1999-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15054
15055 * gjavah.c (print_name, print_base_classname, utf8_cmp,
15056 cxx_keyword_subst, generate_access, name_is_method_p,
15057 get_field_name, print_field_name, super_class_name, print_include,
15058 decode_signature_piece, print_class_decls, usage, help,
15059 java_no_argument, version, add_namelet, print_namelet): Add static
15060 prototype.
15061 (print_base_classname, utf8_cmp, cxx_keyword_subst,
15062 name_is_method_p): Constify a char*.
15063 (get_field_name): Likewise. Prefer xstrdup over malloc/strcpy.
15064 Provide a final else clause in an if-else-if.
15065 (print_field_info): Add missing final arg in function call to
15066 `print_field_name'.
15067 (print_method_info, decompile_method, decode_signature_piece,
15068 print_c_decl, print_full_cxx_name, print_stub,
15069 print_mangled_classname, super_class_name, print_include,
15070 add_namelet, add_class_decl, print_class_decls, process_file,
15071 help): Constify a char*.
15072
15073 * jcf-write.c (jcf_handler, push_constant1, push_constant2,
15074 push_int_const, find_constant_wide, find_constant_index,
15075 push_long_const, field_op, maybe_wide, emit_dup, emit_pop,
15076 emit_iinc, emit_load_or_store, emit_load, emit_store, emit_unop,
15077 emit_binop, emit_reloc, emit_switch_reloc, emit_case_reloc,
15078 emit_if, emit_goto, emit_jsr, call_cleanups,
15079 make_class_file_name): Add static prototypes.
15080 (generate_bytecode_return, generate_bytecode_insns): Pass a
15081 NULL_PTR, not a NULL_TREE.
15082
15083 * jv-scan.c: Include "jcf.h".
15084 (main): Declare using DEFUN macro.
15085
15086 * jvspec.c (find_spec_file, lang_specific_pre_link,
15087 lang_specific_driver): Add prototypes.
15088 (find_spec_file): Constify a char*.
15089
15090 * keyword.gperf (hash, java_keyword): Add prototypes.
15091
15092 * lang.c (lang_print_error): Add static prototype.
15093 (lang_init): Prefer memcpy over bcopy to avoid casts.
15094
15095 * lex.c (yylex): Add static prototype.
15096
15097 * parse-scan.y: Include "lex.c" earlier.
15098
15099 * parse.h: Remove redundant declaration for `yylex'.
15100
15101 * parse.y (java_decl_equiv, binop_compound_p, search_loop,
15102 labeled_block_contains_loop_p): Add static prototypes.
15103 (not_accessible_p): Make static to match prototype.
15104
15105 * verify.c (start_pc_cmp): Don't needlessly cast away const.
15106
15107 1999-08-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
15108
15109 * parse.y (check_method_redefinition): Changed leading comment.
15110 (check_abstract_method_definitions): New function.
15111 (java_check_abstract_method_definitions): New function.
15112 (java_check_regular_methods): Call it.
15113 (verify_constructor_super): Fixed indentation.
15114 (lookup_method_invoke): Likewise.
15115
15116 1999-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
15117
15118 * parse.y (method_header): Return a null pointer if the current
15119 class node is null.
15120 (finish_method_declaration): Return if the current function decl
15121 is null.
15122 (source_start_java_method): Likewise.
15123 (java_method_add_stmt): Likewise.
15124
15125 1999-08-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
15126
15127 * class.c (emit_register_class): Removed unnecessary call to
15128 start_sequence.
15129 * parse.y (labeled_block_contains_loop_p): Removed unused local
15130 variable.
15131
15132 1999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
15133
15134 * parse.y (java_refold): Added prototype.
15135
15136 1999-08-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
15137
15138 * parse.y (BINOP_COMPOUND_CANDIDATES): New macro.
15139 (java_stabilize_reference): Removed unnecessary `else'.
15140 (java_complete_lhs): Set flag to remember boolean. Call
15141 java_refold. Added comments.
15142 (java_decl_equiv): New function.
15143 (binop_compound_p): Likewise.
15144 (java_refold): Likewise.
15145 (patch_unaryop): Striped static field access assigned to decl and
15146 op. Changed promotion scheme for ++/-- operators.
15147 (search_loop): New function.
15148 (labeled_block_contains_loop_p): Likewise.
15149 (patch_loop_statement): Call labeled_block_contains_loop_p. Added
15150 comment.
15151 (patch_bc_statement): Call search_loop. Fixed comment.
15152
15153 1999-08-14 Anthony Green <green@cygnus.com>
15154
15155 * expr.c (java_lang_expand_expr): Mark static array data as
15156 referenced.
15157
15158 1999-08-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
15159
15160 * jvgenmain.c (main): NUL-terminate name_obstack.
15161
15162 1999-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15163
15164 * check-init.c (check_bool2_init, done_alternative): Add static
15165 prototypes.
15166
15167 * class.c (add_interface_do, maybe_layout_super_class): Likewise.
15168 (add_method, build_utf8_ref, build_class_ref,
15169 append_gpp_mangled_type, layout_class_method): Constify a char*.
15170
15171 * decl.c (push_promoted_type, make_binding_level): Add static
15172 prototypes.
15173 (push_promoted_type, pushdecl): Constify a char*.
15174
15175 * except.c (find_handler_in_range, link_handler,
15176 check_start_handlers): Add static prototypes.
15177
15178 * expr.c (process_jvm_instruction): Constify a char*.
15179
15180 * gjavah.c (main): Constify a char*.
15181
15182 * java-tree.h (verify_jvm_instructions, process_jvm_instruction):
15183 Constify a char*.
15184
15185 * jcf-depend.c (free_entry, add_entry, munge, print_ents): Add
15186 static prototypes.
15187 (add_entry, jcf_dependency_set_target, jcf_dependency_add_target,
15188 munge, print_ents): Constify a char*.
15189
15190 * jcf-dump.c (disassemble_method): Constify a char*.
15191 (print_constant_pool, print_exception_table): Add static prototypes.
15192 (print_constant, print_exception_table, main, disassemble_method):
15193 Constify a char*.
15194
15195 * jcf-io.c (find_classfile, find_class): Likewise.
15196
15197 * jcf-parse.c (JPOOL_UTF_DATA, find_in_current_zip): Likewise.
15198 (set_source_filename, predefined_filename_p): Add static prototypes.
15199 (set_source_filename, get_constant, get_class_constant,
15200 find_in_current_zip): Constify a char*.
15201
15202 * jcf-path.c (free_entry, append_entry, add_entry, add_path): Add
15203 static prototypes.
15204 (add_entry, add_path, jcf_path_classpath_arg,
15205 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
15206
15207 * jcf-reader.c (get_attribute, jcf_parse_preamble,
15208 jcf_parse_constant_pool, jcf_parse_class, jcf_parse_fields,
15209 jcf_parse_one_method, jcf_parse_methods,
15210 jcf_parse_final_attributes): Add static prototypes.
15211 (get_attribute): Constify a char*.
15212
15213 * jcf.h (find_class, find_classfile, jcf_dependency_set_target,
15214 jcf_dependency_add_target, jcf_path_classpath_arg,
15215 jcf_path_CLASSPATH_arg, jcf_path_include_arg): Constify a char*.
15216
15217 * jv-scan.c (main): Constify a char*.
15218 (gcc_obstack_init): Add prototype arguments.
15219
15220 * jvgenmain.c (gcc_obstack_init): Likewise.
15221 (main): Constify a char*.
15222
15223 * lang.c (put_decl_string, put_decl_node, java_dummy_print): Add
15224 static prototypes.
15225 (put_decl_string, lang_print_error): Constify a char*.
15226 (lang_init): Remove redundant extern prototype.
15227
15228 * mangle.c (emit_unicode_mangled_name): Constify a char*.
15229
15230 * typeck.c (convert_ieee_real_to_integer, parse_signature_type):
15231 Add static prototypes.
15232 (get_type_from_signature): Constify a char*.
15233
15234 * verify.c (check_pending_block, type_stack_dup, start_pc_cmp ):
15235 Add static prototypes.
15236 (start_pc_cmp): Prefer PTR over GENERIC_PTR.
15237 (verify_jvm_instructions): Constify a char*.
15238
15239 * xref.c (xref_flag_value): Likewise.
15240
15241 * xref.h (xref_flag_value): Likewise.
15242
15243 * zextract.c (makeword, makelong): Add static prototypes.
15244 (makeword, makelong): Constify a uch*.
15245
15246 1999-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15247
15248 * lang.c (java_dummy_print): Constify a char*.
15249 (lang_print_error): Likewise.
15250 (lang_init): Remove redundant prototype for `print_error_function'.
15251 (lang_init_source): Likewise.
15252 (lang_identify): Constify a char*.
15253
15254 1999-08-09 Tom Tromey <tromey@cygnus.com>
15255
15256 * javaop.h (WORD_TO_FLOAT): only inline if building with gcc.
15257 (WORDS_TO_LONG): Likewise.
15258 (WORDS_TO_DOUBLE): Likewise.
15259
15260 1999-08-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15261
15262 * Makefile.in (lang.o): Depend on $(RTL_H) $(EXPR_H).
15263
15264 * expr.c (java_stack_pop, java_array_data_offset,
15265 build_java_throw_out_of_bounds_exception, case_identity,
15266 build_java_check_indexed_type): Add static prototypes.
15267 (linenumber_table, expand_invoke, expand_java_field_op,
15268 build_primtype_type_ref, expand_byte_code): Constify a char*.
15269
15270 * java-tree.h (build_primtype_type_ref, linenumber_table):
15271 Constify a char*.
15272 (java_lang_expand_expr): Add prototype.
15273
15274 * lang.c: Include rtl.h and expr.h. Remove extern prototype for
15275 `java_lang_expand_expr'.
15276
15277 * lex.c (java_lex_error): Constify a char*.
15278 (java_get_unicode, java_read_char, java_allocate_new_line,
15279 java_unget_unicode, java_sneak_unicode): Prototype.
15280
15281 * parse-scan.y (current_class, package_name, method_declarator,
15282 report_class_declaration, yyerror): Constify a char*.
15283
15284 * parse.h (java_report_errors): Prototype.
15285 (yyerror): Constify a char*.
15286
15287 * parse.y (classitf_redefinition_error, check_modifiers,
15288 parse_jdk1_1_error, lookup_package_type,
15289 lookup_package_type_and_set_next, get_printable_method_name,
15290 purify_type_name): Constify a char*.
15291 (build_super_invocation, maybe_generate_finit,
15292 verify_constructor_super, parser_add_interface,
15293 add_superinterfaces, jdep_resolve_class, note_possible_classname,
15294 java_complete_expand_methods, java_expand_finals,
15295 cut_identifier_in_qualified, java_stabilize_reference,
15296 do_unary_numeric_promotion, operator_string, do_merge_string_cste,
15297 merge_string_cste): Prototype.
15298 (single_type_import_declaration, yyerror,
15299 variable_redefinition_error, build_array_from_name,
15300 build_unresolved_array_type, check_class_interface_creation,
15301 resolve_class, complete_class_report_errors,
15302 note_possible_classname, read_import_dir,
15303 find_in_imports_on_demand, resolve_package, fix_constructors,
15304 check_deprecation, lookup_method_invoke,
15305 maybe_build_primttype_type_ref, array_constructor_check_entry):
15306 Constify a char*.
15307 (java_complete_expand_methods, java_expand_finals): Make static.
15308 (convert_narrow): Remove static prototype.
15309
15310 1999-08-03 J"orn Rennecke <amylaar@cygnus.co.uk>
15311
15312 * Makefile.in (decl.o): Depends on $(srcdir)/../defaults.h.
15313
15314 1999-08-02 Richard Henderson <rth@cygnus.com>
15315
15316 * decl.c: Include defaults.h instead of expr.h.
15317 * parse.y: Likewise.
15318
15319 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
15320
15321 * java/decl.c (start_java_method): Change all uses of
15322 PROMOTE_PROTOTYPES, so that it tests it as a C expression.
15323 Ensure expr.h is included.
15324 * java/expr.c (pop_arguments): Ditto.
15325 * java/parse.y (expand_start_java_method): Ditto.
15326
15327 1999-08-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15328
15329 * Makefile.in (ALL_CFLAGS): Add '-W -Wall'.
15330
15331 1999-07-31 Bernd Schmidt <bernds@cygnus.co.uk>
15332
15333 * decl.c: Include "function.h".
15334 * except.c: Likewise.
15335 * parse.y: Likewise.
15336 * Makefile.in: Update dependencies.
15337
15338 1999-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15339
15340 * expr.c (build_java_soft_divmod): Provide a default case in switch.
15341 (java_lang_expand_expr): Mark parameters `target', `tmode' and
15342 `modifier' with ATTRIBUTE_UNUSED.
15343
15344 * gjavah.c (process_file): Add braces around ambiguous `else'.
15345
15346 * jcf-dump.c (print_access_flags, localvar_free): Change return
15347 type to void.
15348
15349 * parse.y (java_complete_expand_method): Initialize variable
15350 `exception_copy'.
15351 (resolve_qualified_expression_name): Likewise for `field_decl'.
15352 (patch_method_invocation): Likewise for `class_to_search'.
15353 (qualify_ambiguous_name): Likewise for `name' and `ptr_type'.
15354 (patch_assignment): Likewise for `lhs_type'.
15355
15356 * verify.c (verify_jvm_instructions): Remove unused variable
15357 `caller'.
15358
15359 1999-07-25 Richard Henderson <rth@cygnus.com>
15360
15361 * decl.c (va_list_type_node): New.
15362
15363 1999-07-25 Anthony Green <green@cygnus.com>
15364
15365 * gjavah.c (print_stub): New function.
15366 (METHOD_IS_NATIVE): New macro.
15367 (print_mangled_classname): Make static.
15368 (HANDLE_END_FIELD): Don't emit fields during stub generation.
15369 (process_file): Perform stub generation.
15370 (HANDLE_METHOD): Don't emit class decls during stub
15371 generation.
15372 (HANDLE_END_METHOD): Take into account stub generation.
15373 (print_method_info): Handle stub generation.
15374 (print_stub): New function.
15375 (print_cxx_classname): Make signature consistant with others.
15376 (help): Describe -stubs option.
15377 (main): Create stub file.
15378 (version): Use version.c.
15379 (print_full_cxx_name): New function.
15380 (print_c_decl): Use print_full_cxx_name.
15381
15382 1999-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
15383
15384 * check-init.c (check_init): Handle MAX_EXPR.
15385
15386 1999-07-15 Andrew Haley <aph@cygnus.com>
15387
15388 * lang.c (flag_use_divide_subroutine): New variable.
15389 * typeck.c: (convert_ieee_real_to_integer): Bounds check
15390 fp-to-integer conversion.
15391 (convert): Call convert_ieee_real_to_integer when flag_fast_math
15392 is not set.
15393
15394 * expr.c (build_java_soft_divmod): New function.
15395 (build_java_binop): Call build_java_soft_divmod if
15396 flag_use_divide_subroutine is set.
15397 * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
15398 soft_lrem_node: new builtin functions.
15399 (init_decl_processing) Initialize the new builtins.
15400 * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree
15401 soft_lrem_node: new builtin functions.
15402 (build_java_soft_divmod): New function.
15403 * parse.y: Call build_java_soft_divmod if
15404 flag_use_divide_subroutine is set.
15405 * parse.c: Rebuilt.
15406
15407 * jvspec.c (lang_specific_driver): Always allow an extra arg (for
15408 a --specs= arg) even if not linking.
15409 * lang-options.h (DEFINE_LANG_NAME ("Java")): Add
15410 -fuse-divide-subroutine
15411
15412 1999-07-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
15413
15414 * parse.y (resolve_and_layout): Check methods only once.
15415 (resolve_qualified_expression_name): Verify thrown exceptions
15416 compatibility.
15417 (check_thrown_exceptions): Reject exceptions thrown in
15418 initializer. Error message tuned.
15419
15420 1999-07-14 Andrew Haley <aph@cygnus.com>
15421
15422 * expr.c (expand_expr): Do not return the last statement in a
15423 block as the block's value.
15424
15425 1999-07-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
15426
15427 * expr.c (force_evaluation_order): Save the COMPOUND_EXPR'ed
15428 CALL_EXPR, to avoid order of evaluation changes.
15429
15430 1999-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
15431
15432 * parse.y (qualify_ambiguous_name): Do not use
15433 IDENTIFIER_LOCAL_VALUE when name is a STRING_CST.
15434
15435 1999-07-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
15436
15437 * check-init.c (check_init): Handle MAX_EXPR.
15438 * expr.c (force_evaluation_order): Force method call arguments to
15439 be evaluated in left-to-right order.
15440 * parse.y (qualify_ambiguous_name): Loop again to qualify
15441 NEW_ARRAY_EXPR properly.
15442
15443 1999-06-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
15444
15445 * parse.y (patch_invoke): Resolve unresolved invoked method
15446 returned type.
15447 (qualify_ambiguous_name): STRING_CST to qualify expression for
15448 type name resolution.
15449
15450 1999-06-24 Andrew Haley <aph@cygnus.com>
15451
15452 * class.c (finish_class): Whenever a deferred method is
15453 output, rescan the list of methods to see if a new candidate for
15454 output can be found.
15455
15456 1999-06-28 Tom Tromey <tromey@cygnus.com>
15457
15458 * jvspec.c (lang_specific_driver): Recognize --help.
15459
15460 1999-06-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
15461
15462 * parse.y (resolve_package): Fixed bogus return statement.
15463 (patch_method_invocation): Resolve method invocation beginning with
15464 a package name qualifier.
15465
15466 1999-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15467
15468 * Make-lang.in (java.stage1): Depend on stage1-start.
15469 (java.stage2): Likewise for stage2-start.
15470 (java.stage3): Likewise for stage3-start.
15471 (java.stage4): Likewise for stage4-start.
15472
15473 1999-06-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
15474
15475 * parse.y (java_complete_lhs): When doing cross referencing, don't
15476 try to keep file location on a WFL expanded as a CALL_EXPR.
15477
15478 1999-06-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
15479
15480 * parse.y (finish_method_declaration): Insert a RETURN_EXPR when
15481 compiling to class file a void method with an empty method body.
15482 As a side effect, the bytecode backend will generate the
15483 appropriate `return' instruction.
15484
15485 1999-06-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
15486
15487 * parse.y (lookup_package_type_and_set_next): New function prototype.
15488 (resolve_package): Search current and imported packages.
15489 (lookup_package_type_and_set_next): New function.
15490
15491 1999-06-22 Andrew Haley <aph@cygnus.com>
15492
15493 * verify.c (verify_jvm_instructions): Check for pending blocks
15494 before invalid PC test and opcode switch, not after.
15495
15496 1999-06-21 Andrew Haley <aph@cygnus.com>
15497
15498 * except.c (find_handler_in_range): The upper limit for exception
15499 ranges is exclusive, not inclusive: (start <= pc < end).
15500 (link_handler): find child pointer which points to outer by
15501 searching sibling list: previous code incorrectly assumed that
15502 outer->outer->first_child must point to outer.
15503 * verify.c (verify_jvm_instructions): FIXME added to code for
15504 `athrow'.
15505 (verify_jvm_instructions): Do not assume that the last block
15506 processed in a subroutine is a block which ends with a `ret'
15507 instruction. With some control flows it is possible that the last
15508 block ends with an `athrow'.
15509
15510 1999-06-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15511
15512 * parse.y (qualify_ambiguous_name): Reorganized the post
15513 evaluation of non WFL leading expression nodes.
15514
15515 1999-06-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
15516
15517 * parse.y (qualify_ambiguous_name): Handle ARRAY_REF after
15518 CONVERT_EXPR.
15519
15520 1999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
15521
15522 * parse.y (qualify_ambiguous_name): Handle qualified expression
15523 beginning with a STRING_CST.
15524
15525 1999-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
15526
15527 * parse.y (register_fields): Set DECL_INITIAL on both
15528 pre-initialized static and public fields.
15529 (resolve_field_access): Static field access expressions to always
15530 use pointer types.
15531 (qualify_ambiguous_name): Work out buried CALL_EXPR for proper
15532 qualification. CONVERT_EXPR to be resolved as an expression name.
15533 (java_complete_lhs): Identify and access qualified final
15534 initialized field in switch statement case expression.
15535 (fold_constant_for_init): Pre-initialized field decl constant to
15536 be folded.
15537
15538 1999-06-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
15539
15540 * parse.y (note_possible_classname): Mark returned node with
15541 QUALIFIED_P only if the original class name contained a '/'.
15542
15543 1999-06-05 Anthony Green <green@cygnus.com>
15544
15545 * Make-lang.in (gcjh): More parallel build fixes.
15546
15547 1999-06-03 Mike Stump <mrs@wrs.com>
15548
15549 * Make-lang.in (JCF_DUMP_SOURCES, jvgenmain): Fix parallel builds.
15550
15551 1999-06-02 Anthony Green <green@cygnus.com>
15552
15553 * except.c (link_handler): Chain exception handlers in order.
15554
15555 1999-06-02 Anthony Green <green@cygnus.com>
15556
15557 * expr.c (expand_byte_code): Fill unreachable bytecode regions
15558 with nops and process as usual in order to always set correct EH
15559 ranges. Emit detailed warnings about unreachable bytecodes.
15560
15561 1999-06-02 Anthony Green <green@cygnus.com>
15562
15563 * class.c (build_utf8_ref): Mark cinit and utf8 tree nodes as
15564 constant.
15565
15566 1999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
15567
15568 * parse.y (lookup_field_wrapper): Unified returned value to NULL
15569 or the searched field decl.
15570
15571 1999-05-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
15572
15573 * parse.y (fold_constant_for_init): Convert numerical constant
15574 values to the type of the assigned field.
15575
15576 1999-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
15577
15578 * expr.c (lookup_field): Relaxed the test on class loading error
15579 detection.
15580 * parse.y (fold_constant_for_init): Enabeled old code.
15581
15582 1999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
15583
15584 * parse.y (valid_ref_assignconv_cast_p): Let `_Jv_CheckCast'
15585 decide the validity of the cast of a java.lang.Cloneable reference
15586 to an array.
15587 (patch_conditional_expr): Fixed first argument passed to
15588 binary_numeric_promotion.
15589
15590 1999-05-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
15591
15592 * parse.y (qualify_ambiguous_name): Take into account that a
15593 CONVERT_EXPR might specify a type as a WFL.
15594
15595 1999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
15596
15597 * parse.y (patch_assignment): Save the rhs before using it as an
15598 argument to _Jv_CheckArrayStore.
15599
15600 1999-05-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
15601
15602 * lex.c (java_parse_doc_section): Fixed `tag' buffer size.
15603
15604 1999-05-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
15605
15606 * lex.c (java_lex): Accepts `+' or `-' after the beginning of a
15607 floating point literal only when the exponent indicator has been
15608 parsed.
15609
15610 1999-05-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
15611
15612 * parse.y (formal_parameter:): Construct argument tree list
15613 element even if a yet unsupported final parameter was encountered.
15614
15615 1999-05-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
15616
15617 * parse.y (finish_method_declaration): Issue errors for native or
15618 abstract methods declared with a method body, as well as for non
15619 native or non abstract methods with no method body.
15620
15621 1999-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15622
15623 * class.c (build_utf8_ref): Initialize variable `field'.
15624
15625 * decl.c (init_decl_processing): Initialize variable `field'.
15626
15627 * expr.c (build_known_method_ref): Mark parameters `method_type',
15628 `method_signature' and `arg_list' with ATTRIBUTE_UNUSED.
15629 (process_jvm_instruction): Likewise for parameter `length'.
15630
15631 * jvspec.c (lang_specific_driver): Mark variables `saw_math',
15632 `saw_libc', `saw_gc', `saw_threadlib' and `saw_libgcj' with
15633 ATTRIBUTE_UNUSED.
15634
15635 * parse.y (maybe_generate_clinit): Remove unused variable
15636 `has_non_primitive_fields'.
15637 (find_in_imports_on_demand): Initialize variables `node_to_use'
15638 and `cl'.
15639 (patch_binop): Likewise for variable `prom_type'.
15640 (patch_unaryop): Likewise for variable `prom_type'.
15641
15642 * verify.c (verify_jvm_instructions): Likewise for variable `last'.
15643
15644 * xref.c (xref_table): Add missing initializer.
15645
15646 1999-05-14 Tom Tromey <tromey@cygnus.com>
15647
15648 * java-except.h (struct eh_range): Removed unused `next' member.
15649 * verify.c (verify_jvm_instructions): Call check_nested_ranges
15650 after adding all exception handlers. Sort exception ranges in
15651 order of start PC.
15652 (struct pc_index): New structure.
15653 (start_pc_cmp): New function.
15654 * except.c (add_handler): Return `void'. Don't call link_handler;
15655 instead construct an ordinary linked list and do range
15656 coalescing.
15657 (check_nested_ranges): New function.
15658 (link_handler): Changed interface to allow merging of eh_ranges.
15659 Split overlapping ranges. Return `void'.
15660
15661 1999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
15662
15663 * parse.y (constructor_block_end:): New rule, tagged <node>.
15664 (constructor_body:): Use `constructor_block_end' instead of
15665 `block_end'.
15666
15667 1999-05-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
15668
15669 * parse.y (statement_nsi:): Pop `for' statement block.
15670 (java_complete_lhs): Labeled blocks containing no statement are
15671 marked as completing normally.
15672
15673 1999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15674
15675 * xref.c (xref_set_current_fp): New function, defined.
15676 * xref.h (xref_set_current_fp): New function, prototyped.
15677
15678 1999-05-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
15679
15680 * check-init.c (check_init): Take into account that
15681 LABELED_BLOCK_STMT can be empty.
15682
15683 1999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
15684
15685 * parse.y (java_check_regular_methods): Warning check on not
15686 overriding methods with default access in other packages does not
15687 apply to `<clinit>'.
15688 (java_complete_lhs): If block body is an empty_stmt_node, replace
15689 it by NULL_TREE. This prevents gcc from generating an irrelevant
15690 warning.
15691
15692 1999-05-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
15693
15694 * check-init.c (check_init): Removed code accepting to see things
15695 falling through default:, when doing xrefs.
15696 * java-tree.h (do_not_fold): New global variable, declared.
15697 * parse.y (do_not_fold): New global variable, defined.
15698 (java_complete_expand_method): Set `do_not_fold' to the value of
15699 `flag_emit_xref'. When doing xrefs: copy the thrown exceptions,
15700 and reinstall them after them have been purged; do not check for
15701 initializations; do not issue missing return errors.
15702 (java_complete_lhs): Do not attempt to patch INSTANCEOF_EXPR nodes
15703 when doing xrefs.
15704 (patch_binop): Skip the fold part when doing xrefs.
15705 (build_string_concatenation): Skip the concatenation part when
15706 doing xrefs.
15707 (patch_synchronized_statement): Do not generate a try-finally when
15708 doing xrefs.
15709 (patch_throw_statement): When doing xrefs, do not call BUILD_THROW
15710 and keep the location where the throw was seen.
15711 * typeck.c (convert): When `do_not_fold' is set, do not attempt
15712 any treatment on the converted node an simply return a NOP_EXPR of
15713 the targeted type.
15714 * xref.c (xref_get_data): New function, defined.
15715 * xref.h (xref_get_data): New function, declared.
15716 (XREF_GET_DATA): Use xref_get_data.
15717
15718 1999-05-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15719
15720 * gjavah.c (print_include): Cast the result of `strlen' to int
15721 when comparing against a signed value.
15722 (add_namelet): Likewise.
15723
15724 1999-05-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15725
15726 * expr.c (expand_invoke): Mark parameter `nargs' with
15727 ATTRIBUTE_UNUSED.
15728 (PRE_LOOKUP_SWITCH): Likewise for variable `match'.
15729
15730 * jcf-io.c (jcf_unexpected_eof): Mark parameter `count' with
15731 ATTRIBUTE_UNUSED.
15732
15733 * jcf-reader.c (get_attribute): Cast a value to long
15734 when comparing against a signed expression. Likewise.
15735
15736 * lex.h: Never define HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT or
15737 HOST_BITS_PER_CHAR.
15738
15739 1999-05-11 Andrew Haley <aph@cygnus.com>
15740
15741 * parse.y (source_end_java_method): If the current method contains
15742 any exception handlers, force asynchronous_exceptions: this is
15743 necessary because signal handlers in libjava may throw exceptions.
15744 * decl.c (end_java_method): Ditto.
15745
15746 1999-05-11 Tom Tromey <tromey@cygnus.com>
15747
15748 * Make-lang.in (jvspec.o): Don't define WITH_THREAD_x or WITH_GC_x
15749 flags.
15750 * jvspec.c (THREAD_NAME): Removed.
15751 (GC_NAME): Likewise.
15752 (MATHLIB): Likewise.
15753 (WITHLIBC): Likewise.
15754 (GCLIB): Likewise.
15755 (THREADLIB): Likewise.
15756 (MATH_LIBRARY): Likewise.
15757 (lang_specific_driver): Don't add `-l' options to command line.
15758 Instead, add a single --specs option. Recognize `-L' options and
15759 use them to search for spec file.
15760 (find_spec_file): New function.
15761 (SPEC_FILE): New define.
15762
15763 1999-05-11 Dave Brolley <brolley@cygnus.com>
15764
15765 * lang-options.h: -MD, -MMD, -M and -MM not needed here for
15766 cpplib-enabled build.
15767
15768 1999-05-05 Per Bothner <bothner@cygnus.com>
15769
15770 * class.c (make_field_value): DECL_INITIAL may be a string literal;
15771 temporarily zero it while calling rest_of_decl_compilation.
15772
15773 * java-tree.h (string_ptr_type_node): Add declaration.
15774 * decl.c: Define and initialize string_ptr_type_node.
15775 * parse.y (patch_string_cst): Use string_ptr_type_node.
15776
15777 * parse.h (LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P): Removed.
15778 * parse.y (for_statement): Now unconditionally exit_block.
15779 (finish_labeled_statement): No longer exit_block if for-loop.
15780 (patch_loop_statement): Check harder if the loop is already labeled.
15781
15782 * parse.y (patch_initialized_static_field): Removed function.
15783 (maybe_generate_clinit): Removed special handling for interfaces.
15784 (java_complete_expand_methods): Do a preliminary java_complete_tree
15785 on <clinit> to determine if it can be removed.
15786 (java_complete_expand_method): Remove special handling for <clinit>.
15787 (java_complete_lhs): For BLOCK and EXPR_WITH_FILE_LOCATION
15788 optimize if we get back empty_stmt_node.
15789 For MODIFY_EXPR, re-do checking of static initializers.
15790 (fold_constant_for_init): Don't return immediate if VAR_DECL.
15791 For VAR_DECL, pass correct context.
15792
15793 * verify.c (verify_jvm_instructions): Better error messages.
15794
15795 1999-05-03 Tom Tromey <tromey@cygnus.com>
15796
15797 * parse-scan.y (interface_declaration): Call
15798 report_class_declaration for interfaces.
15799
15800 1999-04-30 20:54 -0400 Zack Weinberg <zack@rabi.columbia.edu>
15801
15802 * Makefile.in: Remove -v from bison command lines.
15803
15804 1999-04-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
15805
15806 * check-init.c (check_init): Exclude a case of error when doing
15807 xrefs.
15808 * class.c (layout_class_method): Don't generate the error message
15809 twice when compiling from source.
15810 * lang-options.h: Added `-Wredundant-modifers' and
15811 `-Wunusupported-jdk11' flags and help text.
15812 * lang.c (lang_decode_option): Added support for
15813 `-Wunsupported-jdk11' and `-Wredundant-modifiers'.
15814 flag_static_local_jdk11 and flag_redundant set accordingly.
15815 * lex.c (java_lex): Call BUILD_OPERATOR on CCB_TK.
15816 * parse.h (EXPR_WFL_ADD_COL): New macro.
15817 (DECL_END_SOURCE_LINE): Likewise.
15818 (DECL_INHERITED_SOURCE_LINE): Likewise.
15819 * parse.y (static_ref_err): New function, prototyped.
15820 (CCB_TK): Now tagged <operator>.
15821 (class_body:): Remember the location of the closing '}' of a class
15822 definition when doing xrefs.
15823 (block:): Likewise.
15824 (block_end:): Likewise.
15825 (create_class): Remember the location of the inherited class
15826 identifier when doing xrefs.
15827 (register_fields): Added test on first operand of `init' before
15828 testing it TREE_CODE.
15829 (method_header): Store the location of the class identifier in the
15830 class decl when doing xrefs.
15831 (finish_method_declaration): Don't combine first/last method line
15832 when doing xref.
15833 (java_check_regular_methods): Warning check on not overriding
15834 methods with default access on other packages move before check on
15835 static methods. Initialization of `aflags' also moved up.
15836 (resolve_expression_name): Call static_ref_err to report the error.
15837 (static_ref_err): New function, implemented.
15838 (resolve_field_access): Returned simplified static field access
15839 when doing xrefs.
15840 (resolve_qualified_expression_name): Check for illegal use of
15841 static fields in a non static context. Call static_ref_err to
15842 report error in various places.
15843 (java_complete_tree): Do not fold initialized static fields when
15844 doing xrefs.
15845 (java_complete_lhs): Likewise.
15846
15847 1999-04-29 Anthony Green <green@cygnus.com>
15848
15849 * expr.c (generate_name): Use ASM_GENERATE_INTERNAL_LABEL to
15850 create internal labels.
15851 (lookup_label): Ditto.
15852
15853 1999-04-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
15854
15855 * class.c (layout_class_method): Generate <clinit>'s rtl for
15856 interfaces.
15857 * decl.c (complete_start_java_method): Don't call _Jv_InitClass
15858 for interfaces' <clinit>.
15859 * expr.c (lookup_field): Search for fields in interfaces.
15860 (expand_invoke): Fixed indentation.
15861 (expand_java_field_op): Likewise. Use IS_CLINIT.
15862 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): Macro removed.
15863 (IS_CLINIT): New macro.
15864 * parse.y (type_declaration:): Call maybe_generate_clinit after an
15865 interface was parsed.
15866 (maybe_generate_clinit): Don't generate if the current class is an
15867 interface with only fields of primitive types.
15868 (reset_method_name): Use IS_CLINIT.
15869 (java_complete_expand_method): Expand <clinit> when it exists for
15870 interfaces. Use IS_CLINIT.
15871 (resolve_expression_name): Use DECL_CONTEXT instead of
15872 current_class to build static field references.
15873 (java_complete_lhs): Use IS__CLINIT. Don't use SAVE_EXPR on
15874 ARRAY_REF when doing xreferencing.
15875 (check_final_assignment): Fixed typo in leading comment. Use
15876 IS_CLINIT.
15877 (patch_array_ref): Don't fully expand array references when
15878 xreferencing.
15879 (patch_return): Use IS_CLINIT.
15880 (patch_throw_statement): Likewise.
15881
15882 1999-04-22 Tom Tromey <tromey@cygnus.com>
15883
15884 * Make-lang.in (JAVA_SRCS): Added check-init.c.
15885
15886 1999-04-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
15887
15888 * decl.c (predef_filenames, predef_filenames_size): New globals
15889 (init_decl_processing): predef_filenames and predef_filenames_size
15890 initialized.
15891 * java-tree.h (predef_filenames, predef_filenames_size): Declared
15892 extern.
15893 * jcf-parse.c (predefined_filename_p): New function.
15894 (yyparse): Check that files on the command line are specified only
15895 once and issue a warning otherwise.
15896 * parse.h (JPRIMITIVE_TYPE_OR_VOID_P): New macro.
15897 * parse.y (source_end_java_method): Nullify NOP method bodies, to
15898 avoid a gcc warning with -W -Wall turned on.
15899 (java_expand_classes): Abort if errors were encountered.
15900 (java_complete_lhs): If the cross reference flag is set, wrap
15901 field DECL node around a WFL when resolving expression name.
15902
15903 1999-04-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
15904
15905 * lang.c (lang_decode_option): Fixed returned value when parsing
15906 `-fxref=...' and `-Wall'.
15907 * parse.y (source_end_java_method): Do not generate code when
15908 flag_emit_xref is set.
15909 (resolve_expression_name): Do not build static field access when
15910 flag_emit_xref is set.
15911 (resolve_field_access): No special treatment on `length' when
15912 flag_emit_xref is set. Do not build qualified static field access
15913 when flag_emit_xref is set.
15914 (patch_invoke): Keep the method DECL as operand 0 of the CALL_EXPR
15915 when flag_emit_xref is set.
15916 (patch_assignment): Do not generate array store runtime check when
15917 flag_emit_xref is set.
15918 * xref.c (xref_flag_value): Fixed function declaration
15919 indentation.
15920 (xset_set_data): New function.
15921 * xref.h (xref_set_data): Added prototype for new function.
15922 (typedef struct xref_flag_table): New field data.
15923 (XREF_GET_DATA): New macro.
15924
15925 1999-04-19 Tom Tromey <tromey@cygnus.com>
15926
15927 * xref.h (enum): Removed trailing comma.
15928
15929 * parse.y (resolve_qualified_expression_name): Added missing
15930 `break'.
15931
15932 1999-04-15 Anthony Green <green@cygnus.com>
15933
15934 * gjavah.c: New prototypes for java_float_finite and
15935 java_double_finite.
15936
15937 1999-04-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
15938
15939 * parse.y (patch_unaryop): Fixed ++/-- operator check on array
15940 references.
15941
15942 1999-04-06 Jeffrey A Law (law@cygnus.com)
15943
15944 * Makefile.in (TREE_H): Add tree-check.h.
15945 (RTL_H): Add genrtl.h.
15946
15947 1999-04-06 Alexandre Petit-Bianco <apbianco@cygnus.com>
15948
15949 * parse.y (patch_assignment): Added ArrayStoreException runtime
15950 check.
15951
15952 1999-04-06 Per Bothner <bothner@cygnus.com>
15953
15954 * expr.c (pop_type_0): New function.
15955 (pop_type): Use pop_type_0.
15956 * java-tree.h (pop_type_0): New declaration.
15957 * verify.c (verify_jvm_instructions): Check return instructions.
15958
15959 * parse.y (patch_binop): Don't fold if non-constant and emiting
15960 class files.
15961
15962 1999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15963
15964 * Makefile.in (gjavah.o): Depend on $(JAVA_TREE_H).
15965
15966 * gjavah.c: Include math.h earlier. Include tree.h/java-tree.h.
15967 (main_jcf): Don't define.
15968 (process_file): Don't set `main_jcf'.
15969
15970 * java-tree.h (main_jcf): Don't declare.
15971
15972 * jcf-parse.c (main_jcf): Add static definition.
15973
15974 * lang.c (main_jcf): Don't define.
15975
15976 1999-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15977
15978 * class.c (add_method_1): Cast the argument of `bzero' to PTR.
15979
15980 * decl.c (copy_lang_decl): Likewise for `bcopy'.
15981
15982 * jcf-depend.c: Include "config.h", not <config.h>.
15983
15984 * jcf-parse.c (jcf_figure_file_type): Cast the arguments of
15985 `bcopy' to PTR.
15986
15987 * jcf-path.c: Include "config.h", not <config.h>.
15988
15989 * lex.c: Don't include various system header files.
15990 (java_init_lex): Cast the argument of `bzero' to PTR
15991
15992 * parse-scan.y (java_push_parser_context): Likewise.
15993
15994 * parse.y (java_push_parser_context): Likewise.
15995 (patch_bc_statement): Match format specifier to variable argument.
15996
15997 * xref.c: Don't include <stdio.h>.
15998
15999 1999-04-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
16000
16001 * parse.y (struct parser_ctxt *ctxp): Now global.
16002 (declare_local_variables): Use WFL compound value for the
16003 declaration source line value, when doing cross-referencing.
16004
16005 1999-03-31 Tom Tromey <tromey@cygnus.com>
16006
16007 * gjavah.c (print_field_info): Allow constants of other types.
16008 (print_include): Generate include when new name is proper prefix
16009 of already printed name.
16010 (add_namelet): Likewise.
16011 (cxx_keyword_subst): New function.
16012 (print_method_info): Use it.
16013 (print_field_name): New function.
16014 (get_field_name): New function.
16015 (print_field_info): Use get_field_name and print_field_name.
16016
16017 1999-03-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16018
16019 * Makefile.in (keyword.h): Generate using gperf language 'C', not
16020 'KR-C', so gperf uses the `const' keyword on strings.
16021
16022 * keyword.gperf (java_keyword): Const-ify a char*.
16023
16024 1999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
16025
16026 * parse.y (patch_bc_statement): Fixed identation and a bogus
16027 `printf' format.
16028
16029 1999-03-30 Alexandre Petit-Bianco <apbianco@cygnus.com>
16030
16031 * parse.y (patch_assignment): Allow static variables in other
16032 classes to be assigned.
16033
16034 1999-03-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16035
16036 * class.c (maybe_add_interface): Remove unused variable
16037 `interface_binfo'.
16038 (make_class_data): Use = for assignment, not ==. Likewise.
16039 (emit_register_classes): Remove unused variable `decl'.
16040
16041 * lex.c: Fix comment so as not to contain an embedded `/*'.
16042
16043 * verify.c (verify_jvm_instructions): Remove unused variable
16044 `self_type'.
16045
16046 1999-03-27 Per Bothner <bothner@cygnus.com>
16047
16048 * parse.y (complete_loop_body): Rename to finish_loop_body.
16049 (complete_labeled_statement): Rename to finish_labeled_statement.
16050 (complete_for_loop): Rename to finish_for_loop.
16051 (complete_method_declaration): Rename to finish_method_declaration.
16052
16053 * java-tree.h (continue_identifier_node): New global node.
16054 * decl.c: Define and initialize continue_identifier_node.
16055 * parse.y (generate_labeled_block): Remove - no longer needed.
16056 (build_loop_body): Use continue_identifier_node for continue block.
16057 (finish_labeled_statement): Also do pop_labeled_block actions.
16058 (java_complete_lhs): POP_LOOP even if error.
16059 (build_labeled_block): Special handling for continue_identifier_node.
16060 (patch_loop_statement): Re-organize.
16061 (patch_bc_statement): Re-write.
16062
16063 1999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
16064
16065 * parse.h (EXPR_WFL_GET_LINECOL): Set a line and column count
16066 using a WFL compound value.
16067 * parse.y (xref.h): Include.
16068 (maybe_create_class_interface_decl): Set DECL_SOURCE_LINE to the
16069 WFL compound value.
16070 (register_fields): Set WFL compound value to lineno if doing
16071 xrefs.
16072 (java_complete_expand_method): Call expand_xref if flag_emit_xref
16073 is set.
16074 * xref.c (system.h, jcf.h, parse.h, obstack.h): Include.
16075 * xref.h (expand_xref): Prototype renamed from xref_generate.
16076
16077 1999-03-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
16078
16079 * parse.h (BLOCK_CHAIN_DECL): New use GET_CURRENT_BLOCK.
16080 (GET_CURRENT_BLOCK): New macro.
16081 * parse.y (current_static_block): New global variable.
16082 (method_body:): Define action.
16083 (complete_method_declaration): Set current_function_decl to NULL
16084 when work on the current method is done.
16085 (declare_local_variables): Use GET_CURRENT_BLOCK.
16086 (java_method_add_stmt): Likewise.
16087 (java_complete_expand_method): Disable the use of `this' when
16088 expanding <clinit>.
16089 (enter_a_block): If no current method exist, use
16090 current_static_block to link static initializer blocks.
16091 (exit_block): Rewritten to use current_static_block when no current
16092 method decl exists.
16093 (lookup_name_in_blocks): Use GET_CURRENT_BLOCK.
16094 (patch_return): Forbid the use of `return' in static initializers.
16095 (patch_throw_statement): Fixed indentation. Issue specific error
16096 for uncaught thrown checked exception in static initializer
16097 blocks. Removed FIXME.
16098
16099 1999-03-25 Zack Weinberg <zack@rabi.columbia.edu>
16100
16101 * java/Make-lang.in: Remove all references to gcj.o/gcj.c.
16102 Link gcj from gcc.o.
16103
16104 1999-03-23 Alexandre Petit-Bianco <apbianco@cygnus.com>
16105
16106 * parse.y (find_applicable_accessible_methods_list): When dealing
16107 with interface: ensure that a given interface or java.lang.Object
16108 are searched only once.
16109
16110 1999-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16111
16112 * gjavah.c (print_c_decl): Remove unused argument `flags'.
16113
16114 * jcf-dump.c (print_access_flags): Add braces around if-else.
16115
16116 * jvspec.c (lang_specific_driver): Wrap variable `len' in macro
16117 COMBINE_INPUTS.
16118
16119 * lex.c (build_wfl_node): Add static prototype.
16120
16121 * lex.h (build_wfl_node): Remove static prototype.
16122
16123 * parse.y: Include lex.c early enough to declare everything needed.
16124 Ensure calls to `build_wfl_node' pass the proper arguments.
16125 (create_class): Remove unused variable `super_decl'.
16126 (get_printable_method_name): Initialize variable `name'.
16127
16128 1999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16129
16130 * Changelog: Fixed 1999-03-22 typos.
16131 * lang.c (lang_decode_option): Fixed typo in error string in the
16132 XARG section.
16133
16134 1999-03-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
16135
16136 * Makefile.in (JAVA_OBJS): Added entry xref.o.
16137 (xref.o): New rule.
16138 * java-tree.h (flag_emit_xref): Declared extern.
16139 * lang.c (xref.h): Included.
16140 (flag_emit_xref): New global variable.
16141 (lang_decode_option): Added support for -fxref.
16142 * xref.c: Created.
16143 * xref.h: Likewise.
16144
16145 1999-03-21 Manfred Hollstein <manfred@s-direktnet.de>
16146
16147 * Make-lang.in ($(GCJ)$(exeext)): Add intl.o to list of files to be
16148 linked with.
16149
16150 1999-03-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16151
16152 * Makefile.in (jcf-dump.o): Depend on $(CONFIG_H)
16153 $(srcdir)/../system.h and $(JAVA_TREE_H).
16154 (jcf-io.o): Depend on $(JAVA_TREE_H).
16155 (mangle.o): Likewise.
16156
16157 * check-init.c (check_cond_init): Add static prototype.
16158
16159 * class.c (build_java_method_type, hashUtf8String,
16160 make_field_value, get_dispatch_vector, get_dispatch_table,
16161 append_gpp_mangled_type, mangle_static_field): Likewise.
16162 (strLengthUtf8): Hide unused definition.
16163 (hashUtf8String): Const-ify.
16164 (make_field_value): Un-ANSI-fy.
16165
16166 * constants.c: Move inclusion of jcf.h above java-tree.h.
16167 (set_constant_entry, find_class_or_string_constant,
16168 find_name_and_type_constant, get_tag_node,
16169 build_constant_data_ref): Add static prototype.
16170
16171 * decl.c (push_jvm_slot, builtin_function,
16172 lookup_name_current_level): Likewise.
16173 (builtin_function): Const-ify.
16174
16175 * except.c (expand_start_java_handler, expand_end_java_handler):
16176 Add static prototype.
16177
16178 * expr.c (flush_quick_stack, push_value, pop_value,
16179 java_stack_swap, java_stack_dup, build_java_athrow,
16180 build_java_jsr, build_java_ret, expand_java_multianewarray,
16181 expand_java_arraystore, expand_java_arrayload,
16182 expand_java_array_length, build_java_monitor, expand_java_pushc,
16183 expand_java_return, expand_java_NEW, expand_java_INSTANCEOF,
16184 expand_java_CHECKCAST, expand_iinc, expand_java_binop, note_label,
16185 expand_compare, expand_test, expand_cond, expand_java_goto,
16186 expand_java_call, expand_java_ret, pop_arguments, expand_invoke,
16187 expand_java_field_op, java_push_constant_from_pool): Likewise.
16188
16189 (decode_newarray_type, expand_iinc): Un-ANSI-fy.
16190 (build_java_arraynull_check): Mark parameters `node' and `type'
16191 with ATTRIBUTE_UNUSED.
16192 (note_label): Likewise for parameter `current_pc'.
16193 (expand_java_call, expand_java_ret): Hide unused definition.
16194
16195 * java-tree.h (make_class, build_constants_constructor,
16196 java_set_exception_lang_code, pop_labeled_block, emit_handlers,
16197 init_outgoing_cpool, register_class, emit_register_classes,
16198 java_layout_seen_class_methods): Prototype.
16199 (unicode_mangling_length): Const-ify.
16200 (append_gpp_mangled_name, append_gpp_mangled_classtype,
16201 emit_unicode_mangled_name, format_int, format_uint,
16202 jcf_trim_old_input, jcf_print_utf8, jcf_print_char,
16203 jcf_print_utf8_replace, open_class): Prototype.
16204
16205 * jcf-dump.c: Include "config.h", not <config.h>. Don't include
16206 <stdio.h>. Include tree.h/java-tree.h.
16207 (utf8_equal_string usage, process_class): Add static prototype.
16208 (open_class): Don't prototype this here.
16209 (utf8_equal_string): Match arguments to format specifiers.
16210 (HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH,
16211 TABLE_SWITCH, disassemble_method): Likewise.
16212
16213 * jcf-io.c: Include tree.h/java-tree.h.
16214 (open_class, find_classfile, jcf_print_utf8,
16215 jcf_print_utf8_replace): Const-ify.
16216
16217 * jcf-parse.c (parse_zip_file_entries, process_zip_dir,
16218 parse_class_file): Add static prototype.
16219 (find_in_current_zip): Match definition to existing static
16220 prototype.
16221
16222 * jcf-write.c: Include jcf.h before tree.h/java-tree.h.
16223 (alloc_chunk, append_chunk, append_chunk_copy, gen_jcf_label,
16224 finish_jcf_block, define_jcf_label, get_jcf_label_here,
16225 put_linenumber, localvar_alloc, localvar_free, get_access_flags,
16226 write_chunks, adjust_typed_op, generate_bytecode_conditional,
16227 generate_bytecode_return, perform_relocations, init_jcf_state,
16228 init_jcf_method, release_jcf_state, generate_classfile):
16229 Add static prototype.
16230 (emit_unop): Mark parameter `type' with ATTRIBUTE_UNUSED.
16231 (make_class_file_name): Const-ify.
16232
16233 * jcf.h (find_classfile): Const-ify.
16234
16235 * jv-scan.c (reset_report): Remove prototype.
16236
16237 * jvgenmain.c: Include jcf.h/tree.h/java-tree.h.
16238 (error): Rewrite to allow varargs.
16239
16240 * lang.c (lang_f_options): Const-ify.
16241
16242 * lex.c (java_parse_escape_sequence): Add static prototype.
16243 (java_allocate_new_line): Match definition to existing static
16244 prototype.
16245
16246 * mangle.c Include tree.h/java-tree.h.
16247 (unicode_mangling_length, emit_unicode_mangled_name,
16248 append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify.
16249
16250 * parse.h (jdep_code): Remove trailing comma in enumeration.
16251 (java_get_line_col): Move prototype outside of !JC1_LITE test.
16252 (reset_report): Add prototype.
16253
16254 * verify.c (push_pending_label, merge_types): Add static
16255 prototypes.
16256
16257 * zipfile.h (opendir_in_zip, open_in_zip): Prototype.
16258
16259 1999-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
16260
16261 * parse.y (find_applicable_accessible_methods_list): Extend the
16262 search to superinterfaces when relevant.
16263 (search_applicable_methods_list): New function.
16264
16265 1999-03-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
16266
16267 * class.c (unmangle_classname): Implemented stricter testing
16268 before setting the QUALIFIED_P flag on an identifier.
16269
16270 1999-03-16 Per Bothner <bothner@cygnus.com>
16271
16272 * parse.y (java_complete_lhs): Call force_evaluation_order
16273 after patch_newarray.
16274 (patch_binop): Don't call fold if there are side effects.
16275
16276 1999-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
16277
16278 * parse.y (java_stabilize_reference): Use save_expr instead of
16279 building a SAVE_EXPR node.
16280 (java_complete_lhs): Patch the resulting string of the `+='
16281 operator (if necessary) and complete the RHS after having built
16282 the cast.
16283
16284 1999-03-15 Per Bothner <bothner@cygnus.com>
16285
16286 * class.c (make_class): Don't set CLASS_P here (because
16287 this function is also called by build_java_array_type).
16288 (push_class): Set CLASS_P here instead.
16289 * parse.h (TYPE_CLASS_P): Check for TYPE_ARRAY_P is redundant.
16290
16291 * jcf-dump.c (print_access_flags): Take extra parameter to indicate
16292 context. If the context is class, perfer "super" over "synchronized".
16293 * jcf-write.c (generate_classfile): Don't add ACC_SUPER if interface.
16294
16295 * parse.y (create_class): Don't call parser_check_super here;
16296 it is not robust. Always wait until later.
16297
16298 * parse.y (method_header): For interfaces, set ACC_ABSTRACT (to
16299 match what JDK 1.2 does), but don't set ACC_PUBLIC.
16300
16301 1999-03-13 Per Bothner <bothner@cygnus.com>
16302
16303 * lex.c (java_read_char): UNGET invalid non-initial utf8 character.
16304 * lex.h (UNGETC): Change misleading macro.
16305
16306 1999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
16307
16308 * parse.y (java_stabilize_reference): Return NODE when patching a
16309 COMPOUND_EXPR.
16310 (java_complete_lhs): Put parenthesis around truth values.
16311
16312 1999-03-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
16313
16314 * class.c (layout_class_method): Don't make rtl for interface
16315 methods.
16316 * parse.h (GET_TYPE_NAME): New macro.
16317 * parse.y (if_then_statement:): Fixed indentation.
16318 (if_then_else_statement:): Likewise.
16319 (for_statement:): Fixed spacing.
16320 (try_statement:): Fixed indentation.
16321 (create_interface): Don't force interfaces to be abstract.
16322 (method_header): Abstract methods are OK in interfaces.
16323 (declare_local_variables): Fixed typo in comment.
16324 (java_complete_expand_method): Fixed indentation.
16325 (resolve_qualified_expression_name): Use GET_TYPE_NAME to report
16326 non accessible fields.
16327 (java_stabilize_reference): New function.
16328 (java_complete_lhs): Fixed indentation. Use
16329 java_stabilize_reference in compound assignment. Insert the
16330 cast. If not processing `+' fix string constants before processing
16331 binop.
16332
16333 1999-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16334
16335 * constants.c (find_class_or_string_constant): Cast variable `j'
16336 to a `jword' when comparing against one.
16337
16338 * expr.c (java_lang_expand_expr): Remove unused variables
16339 `has_finally_p' and `op0'.
16340
16341 * gjavah.c (print_field_info): Cast a value to jint when comparing
16342 against one. Likewise for a jlong.
16343 (add_namelet): Likewise cast a `sizeof' to an int when comparing
16344 against a signed quantity.
16345
16346 * jcf-dump.c (print_signature_type): Remove unused variable `digit'.
16347 (print_signature): Don't needlessly dereference variable `str'
16348
16349 * jcf-reader.c (get_attribute): Mark variables `max_stack' and
16350 `max_locals' with ATTRIBUTE_UNUSED.
16351 (jcf_parse_class): Likewise for variable `index'.
16352
16353 * parse.h (reverse_jdep_list): Remove static prototype.
16354
16355 * parse.y (build_jump_to_finally): Remove prototype and definition.
16356 (reverse_jdep_list): Add static prototype.
16357
16358 * typeck.c (convert_ieee_real_to_integer): Remove unused variables
16359 `assignment' and `expr_decl'.
16360
16361 * verify.c (verify_jvm_instructions): Remove unused label `bad_ldc'.
16362
16363 1999-03-12 Andrew Haley <aph@cygnus.com>
16364
16365 * jcf-path.c (add_entry): alloca len+2 rather than len+1 bytes;
16366 we'll need a directory separator and a null character.
16367
16368 1999-03-10 Per Bothner <bothner@cygnus.com>
16369
16370 * jcf-write.c (generate_bytecode_insns): Handle __builtin_fmod, for %.
16371
16372 Tue Mar 9 11:52:08 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
16373
16374 * parse.y (method_header): Don't set ACC_ABSTRACT flags on
16375 interfaces.
16376
16377 1999-03-05 Per Bothner <bothner@cygnus.com>
16378
16379 * lex.c (java_parse_end_comment): Take extra parameter (next char).
16380
16381 * class.c (build_utf8_ref): Fix possible name class/ambiguity.
16382
16383 * class.c (layout_class_method): A static method in a base class
16384 is never overridden, so treat it like it doesn't exist.
16385 However, do complain about private non-static method overriding
16386 public static method.
16387
16388 * parse.y: Don't set unused INITIALIZED_P flag.
16389 * java-tree.h (INITIALIZED_P): Removed no-longer needed flag.
16390
16391 * parse.y (find_expr_with_wfl): Optimize tail-calls.
16392 (build_array_from_name): Re-order &index[string] to &string[index].
16393
16394 * parse.y (java_complete_lhs): Don't call patch_assignment if rhs is
16395 error_mark (it might catch more errors, but it is more likely to lose).
16396
16397 1999-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16398
16399 * Makefile.in (jcf-parse.o): Depend on $(PARSE_H).
16400 (parse-scan.o): Depend on toplev.h.
16401
16402 * class.c (make_method_value): Add prototype. Make it static.
16403 Remove unused second argument, caller changed.
16404
16405 * expr.c (java_lang_expand_expr): Remove unused variable
16406 `return_label'.
16407
16408 * java-tree.h: Don't prototype find_in_current_zip.
16409 Add prototypes for verify_constant_pool, start_java_method,
16410 end_java_method, give_name_to_locals, expand_byte_code,
16411 open_in_zip, set_constant_value, find_constant1, find_constant2,
16412 find_utf8_constant, find_string_constant, find_class_constant,
16413 find_fieldref_index, find_methodref_index, write_constant_pool,
16414 count_constant_pool_bytes and encode_newarray_type.
16415
16416 * jcf-dump.c: Remove unused variable `LONG_temp'.
16417
16418 * jcf-parse.c: Include parse.h.
16419 (jcf_parse_source): Remove unused parameter, all callers changed.
16420 (jcf_figure_file_type): Add static prototype.
16421 (find_in_current_zip): Likewise. Also remove unused parameter,
16422 all callers changed.
16423 (read_class): Initialize variable `saved_pos'.
16424
16425 * jcf-reader.c (jcf_parse_preamble): Mark variables
16426 `minor_version' and `major_version' with ATTRIBUTE_UNUSED.
16427
16428 * lex.c (java_is_eol): Wrap prototype and definition in !JC1_LITE.
16429 (java_init_lex): Wrap variable `java_lang_imported' in !JC1_LITE.
16430 (java_parse_doc_section): Initialize variable `seen_star'.
16431 (java_lex): Wrap variable `number_beginning' in !JC1_LITE.
16432 (java_lex_error): Mark parameters `msg' and `forward' with
16433 ATTRIBUTE_UNUSED.
16434 (java_get_line_col): Mark parameters `filename' and `line' with
16435 ATTRIBUTE_UNUSED.
16436
16437 * parse-scan.y: Include toplev.h.
16438 (yyerror): Mark parameter `msg' with ATTRIBUTE_UNUSED.
16439
16440 * parse.h: use `struct JCF', not plain `JCF'.
16441 (java_parser_context_save_global, java_expand_classes
16442 java_parser_context_restore_global, java_parse): Add prototypes.
16443
16444 * typeck.c (convert_ieee_real_to_integer): Remove unused variable
16445 `node'.
16446
16447 1999-02-24 Per Bothner <bothner@deneb.cygnus.com>
16448
16449 * check-init.c (check_init): COPYN takes word count, not bit count.
16450
16451 1999-02-26 Per Bothner <bothner@cygnus.com>
16452
16453 * typeck.c (convert_ieee_real_to_integer): Use save_expr instead of
16454 explicit build_decl. (Avoids crash in reload when optimizing.)
16455
16456 1999-02-25 Per Bothner <bothner@cygnus.com>
16457
16458 * decl.c (complete_start_java_method): Handle synchronized method
16459 even when compiling from bytecode.
16460
16461 1999-02-26 Tom Tromey <tromey@cygnus.com>
16462
16463 * gjavah.c (add_class_decl): Only generate `#include' if outer
16464 class is not the name of the class we are processing. Correctly
16465 append `.h' in #include.
16466 (process_file): Clean up newlines around generated `#include's.
16467 (decode_signature_piece): Correctly handle inner classes.
16468 (struct include): New structure.
16469 (all_includes): New global.
16470 (print_include): New function.
16471 (add_class_decl): Use it.
16472 (process_file): Likewise.
16473 (add_class_decl): Generate include for java-array.h if array
16474 seen.
16475 (process_file): Don't generate java-array.h include.
16476
16477 * gjavah.c (add_namelet): Check for standard package names here.
16478 (add_class_decl): Don't check for standard package names here.
16479
16480 1999-02-25 Tom Tromey <tromey@cygnus.com>
16481
16482 * parse.y (read_import_dir): Use `|=', not `+=', to set `found'.
16483 When reading a zip file, only use strncmp if both strings are
16484 bigger than the buffer length. Initialize `k' when looping
16485 through zip file.
16486
16487 1999-02-24 Tom Tromey <tromey@cygnus.com>
16488
16489 * gjavah.c (struct namelet): New structure.
16490 (add_namelet): New function.
16491 (print_namelet): New function.
16492 (print_class_decls): Use add_namelet and print_namelet to generate
16493 namespaces and not classes.
16494 (method_printed): New global.
16495 (HANDLE_END_METHOD): Examine method_printed.
16496 (print_method_info): Set method_printed when required. Print
16497 error if function to be ignored is marked virtual. Handle $finit$
16498 method.
16499 (METHOD_IS_FINAL): New macro.
16500 (print_field_info): Use it.
16501 (HANDLE_METHOD): Clear method_printed.
16502 (method_pass): New global.
16503 (HANDLE_END_FIELD): Call add_class_decl on the first pass.
16504 (process_file): Do two passes over both fields and methods.
16505 (HANDLE_METHOD): Examine method_pass.
16506 (root): New global.
16507 (add_class_decl): New function.
16508 (print_class_decls): Don't scan over entire constant pool.
16509
16510 1999-02-23 Tom Tromey <tromey@cygnus.com>
16511
16512 * jvspec.c (lang_specific_driver): Recognize -fsyntax-only and
16513 disable linking in that case.
16514
16515 1999-02-20 Tom Tromey <tromey@cygnus.com>
16516
16517 * jcf.h (UTF8_GET): Mask first byte of 3-byte encoding with 0x0f,
16518 not 0x1f.
16519
16520 1999-02-21 Per Bothner <bothner@cygnus.com>
16521
16522 * decl.c (build_result_decl), java-tree.h: New method.
16523 (complete_start_java_method): Handle synchronized methods.
16524 Don't build DECL_RESULT here. (Ordering dependency problem.)
16525 (start_java_method): Call build_result_decl here instead ...
16526 * parse.y (java_complete_expand_method): ... and here.
16527 (expand_start_java_method): Don't call complete_start_java_method here.
16528 (java_complete_expand_method): Call it here instead.
16529 * parse.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Moved to ..
16530 * java-tree.h: ... here.
16531
16532 * expr.c (force_evaluation_order): Fix typo, don't handle ARRAY_REF.
16533 * parse.y (java_complete_lhs): Don't call force_evaluation_order
16534 for ARRAY_REF - it doesn't work when array bounds are checked.
16535 (patch_array_ref): Handle it here instead.
16536
16537 * jcf-write.c (generate_classfile): Emit "Exceptions" attribute.
16538
16539 1999-02-19 Per Bothner <bothner@cygnus.com>
16540
16541 Force left-to-right evaluation of binary operations etc.
16542 * expr.c (force_evaluation_order), java-tree.h: New function.
16543 * parse.y (java_complete_lhs): Pass binary operations, procedure
16544 calls, and ARRAY_REFs to force_evaluation_order.
16545 (various): Set TREE_SIDE_EFFECTS more carefully.
16546
16547 Tolerate random (non-UTF8) encoding in comments without complaining.
16548 * lex.c (java_read_char): Return 0xFFFE if bad UTF8 encoding.
16549 (java_is_eol): Handle '\r' followed by '\n' instead of vice versa.
16550
16551 * parse.y (resolve_qualified_expression_name): Handle error_mark.
16552 (java_complete_node case EXPR_WITH_FILE_LOCATION): Likewise.
16553
16554 * parse.y (java_complete_lhs): Ignore an empty statement in a
16555 COMPOUND_EXPR. Don't complain about empty statement after return.
16556
16557 1999-02-19 Per Bothner <bothner@cygnus.com>
16558
16559 * parse.y (obtain_incomplete_type): Don't wrap unknown types
16560 in TREE_LIST - just chain the POINTER_TYPEs together.
16561 (resolve_class): If type already resolved, return decl.
16562 After resolving, update TREE_TYPE(class_type), and name (if array).
16563 * parse.h (do_resolve_class), parse.y: Make non-static.
16564 * class.c (maybe_layout_super_class): Take this_class argument.
16565 Do do_resolve_class if necessary.
16566 (layout_class, layout_class_methods): Adjust calls appropriately.
16567 * parse.h (JDEP_TO_RESOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
16568 JDEP_RESOLVED_P): Redefined for new TREE_LIST-less convention.
16569 * typeck.c (build_java_array_type): Don't call layout_class.
16570
16571 1999-02-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16572
16573 * parse.y (check_pkg_class_access): Allow private class access
16574 within the same package.
16575 (strip_out_static_field_access_decl): New function.
16576 (patch_unaryop): Call strip_out_static_field_access_decl on ++/--
16577 operator argument before testing its nature.
16578
16579 1999-02-03 Per Bothner <bothner@cygnus.com>
16580
16581 * java-tree.def (FINALLY_EXPR): Removed. (Now uses TRY_FINALLY_EXPR.)
16582 (TRY_EXPR): Simplify - it no longer has a finally clause.
16583 * check-init.c (check_init): Handle TRY_FINALLY_EXPR.
16584 Simpler handling of TRY_EXPR, which no longer has a finally clause.
16585 * expr.c (java_lang_expand_expr): Likewise.
16586 * java-tree.h (CATCH_EXPR_GET_EXPR): Removed - no longer needed.
16587 * parse.h (java_get_catch_block), parse.y: Removed - no longer needed.
16588 * parse.y (java_complete_lhs): Add support for TRY_FIANLLY_EXPR.
16589 (build_try_statement): Remove finally parameter and handling.
16590 (build_try_finally_statement): New function.
16591 (patch_try_statement): No longer need to support finally clause.
16592 (try_statement): Update grammar action rules.
16593 * jcf-write.c (generate_bytecode_insns): Handle TRY_FINALLY_EXPR.
16594 Simpler handling of TRY_EXPR, which no longer has a finally clause.
16595
16596 1998-11-26 Andrew Haley <aph@viagra.cygnus.co.uk>
16597
16598 * jcf-parse.c (get_constant): Add braces around computation of 'd'
16599 when REAL_ARITHMETIC is not defined. [Oct 26 fix got overwritten -PB]
16600
16601 1999-02-17 Andrew Haley <aph@cygnus.com>
16602
16603 * class.c (build_utf8_ref): Back out broken patch which was
16604 intended to to output signatures using '.' as a separator.
16605
16606 * class.c (make_class_data): Output signatures using '.' as a
16607 separator, rather than '/'.
16608 (mangled_classname): Likewise.
16609 (make_field_value): Likewise.
16610 (make_method_value): Likewise.
16611 * constants.c (alloc_class_constant): Likewise.
16612 * expr.c (build_invokeinterface): Likewise.
16613
16614 1999-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
16615
16616 * parse.y (valid_builtin_assignconv_identity_widening_p): Got rid
16617 of an ancient workaround.
16618
16619 1999-02-10 Jeffrey A Law (law@cygnus.com)
16620
16621 * jvspec.c (xmalloc): Kill the prototype. It does not belong
16622 here anymore.
16623
16624 1999-02-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
16625
16626 * lex.c (yylex): Encode \0 as UTF8.
16627
16628 1999-02-10 Tom Tromey <tromey@cygnus.com>
16629
16630 * jvspec.c (lang_specific_driver): Use libgcj, not libjava.
16631 * Makefile.in (jcf-path.o): Define LIBGCJ_ZIP_FILE.
16632 (libgcj_zip): Renamed.
16633 * jcf-path.c (add_entry): Use LIBGCJ_ZIP_FILE, not
16634 LIBJAVA_ZIP_FILE.
16635 (jcf_path_init): Use LIBGCJ_ZIP_FILE.
16636
16637 * jvspec.c (THREAD_NAME): Renamed -lqthreads to -lgcjcoop.
16638 (GC_NAME): Renamed -lgc to -lgcjgc.
16639
16640 1999-02-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
16641
16642 * lex.c (java_lang_cloneable): Initialize.
16643 * parse.y (java_lang_cloneable): New static variable.
16644 (qualify_ambiguous_name): Take CONVERT_EXPR into account when
16645 doing one more qualification round.
16646 (valid_ref_assignconv_cast_p): Reject null source or
16647 destination. Allow an array to be cast into java.lang.Cloneable.
16648 (patch_cast): Swapped two first arguments to first call to
16649 valid_ref_assignconv_cast_p.
16650
16651 1999-02-08 Alexandre Petit-Bianco <apbianco@cygnus.com>
16652
16653 * parse.h: DECL_P renamed JDECL_P.
16654 * parse.y: DECL_P replaced by JDECL_P.
16655 (build_array_from_name): Always use pointer's type.
16656 (patch_bc_statement): Extra code to search continue target in a
16657 for loop. Fixed comments. Continue target is current loop when
16658 unlabeled.
16659
16660 1999-02-05 Andrew Haley <aph@cygnus.com>
16661
16662 * class.c (make_class_data): The superclass of an interface should
16663 be null, not class Object.
16664
16665 * lex.c (java_lex): Sign extend hex literals.
16666
16667 1999-02-04 Andrew Haley <aph@cygnus.com>
16668
16669 * class.c (build_utf8_ref): Output signatures using '.' as a
16670 separator, rather than '/'.
16671 (make_class_data): Likewise.
16672
16673 1999-02-03 Marc Espie <Marc.Espie@liafa.jussieu.fr>
16674
16675 * Make-lang.in ($(GCJ)(exeext)): Remove choose-temp.o, pexecute.o and
16676 mkstemp.o. Get them from libiberty now.
16677
16678 1999-02-02 Jeffrey A Law (law@cygnus.com)
16679
16680 * jcf-io.c: Do not include sys/stat.h or sys/wait.h
16681
16682 1999-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16683
16684 * jvspec.c (xmalloc): Fix the prototype to match the one obtained
16685 from libiberty.h
16686
16687 1999-02-02 Per Bothner <bothner@cygnus.com>
16688
16689 Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'.
16690 * jcf-write.c (generate_bytecode_return): New function.
16691 (generate_bytecode_insns): Use it, for RETURN_EXPR.
16692
16693 * jcf-write.c (generate_bytecode_insns): For REAL_CST that is 0 or 1,
16694 generate special [fd]const_[01] instructions.
16695
16696 * jcf-parse.c (yyparse): Don't emit_register_classes if -fsyntax-only.
16697
16698 * verify.c (verify_jvm_instructions): Do INVALIDATE_PC after
16699 handling OPCODE_lookupswitch or OPCODE_tableswitch.
16700
16701 1999-02-01 Per Bothner <bothner@cygnus.com>
16702
16703 * parse.y (patch_method_invocation): Handle calling static methods,
16704 even in the form EXPR.METHOD(ARGS), not just TYPE.METHOD(ARGS).
16705
16706 * parse.y (java_complete_lhs): Don't complain about unreachable
16707 exit condition in a do-while statement.
16708
16709 1999-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
16710
16711 * lex.c (java_read_char): Fixed utf8 decoding.
16712 (java_unicode_2_utf8): Fixed utf8 encoding in the 0x800-0xffff
16713 range.
16714 * parse.y (valid_builtin_assignconv_identity_widening_p): Fixed
16715 comments. Local variable `all_primitive' is gone. Broadened
16716 acceptance of `0' to floating point targets. `long' can now be
16717 widened to `double' or `float'.
16718 (valid_method_invocation_conversion_p): Added leading
16719 comment. Fixed tabulation.
16720 (build_string_concatenation): Optimize out left or right empty
16721 string constants.
16722
16723 1999-01-28 Per Bothner <bothner@cygnus.com>
16724
16725 * jcf-write.c (localvar_alloc): Only emit entry for
16726 LocalVariableTable if debug_info_level > DINFO_LEVEL_TERSE.
16727 (generate_bytecode_insns): Only call put_linenumber if
16728 debug_info_level > DINFO_LEVEL_NONE.
16729 * jvspec.c (lang_specific_driver): If no -O* or -g* option
16730 is specified, add -g1 (for compatibility wih javac).
16731
16732 1999-01-28 Hans-Peter Nilsson <hp@axis.se>
16733
16734 * java/Makefile.in: Add missing dependencies for jcf-dump.o,
16735 gjavah.o, check-init.o, jv-scan.o
16736
16737 1999-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16738
16739 * Makefile.in (gjavah.o): Depend on $(CONFIG_H) and system.h.
16740
16741 * gjavah.c: Include config.h and system.h.
16742
16743 * javaop.h (inline): Don't define, its handled by system.h.
16744 (WORD_TO_FLOAT, WORDS_TO_LONG, WORDS_TO_DOUBLE): Change these
16745 from `inline' to `static inline'.
16746
16747 * jcf.h (inline): Don't define, its handled by system.h.
16748
16749 * lex.c (inline): Likewise.
16750
16751 1999-01-31 Zack Weinberg <zack@rabi.columbia.edu>
16752
16753 * lang-specs.h: Map -Qn to -fno-ident.
16754
16755 1999-01-29 Richard Henderson <rth@cygnus.com>
16756
16757 * check-init.c (check_init): Fix CLEANUP_POINT_EXPR typo.
16758
16759 1999-01-29 Tom Tromey <tromey@cygnus.com>
16760
16761 * parse.h (BUILD_APPEND): If ARG is a non-String object reference,
16762 then cast it to Object before calling `append' method.
16763
16764 1999-01-28 Per Bothner <bothner@cygnus.com>
16765
16766 * check-init.c (check_bool2_init, check_bool_init, check_init):
16767 Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
16768 * jcf-write.c (generate_bytecode_insns): Likewise.
16769
16770 1999-01-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
16771
16772 * jcf-parse.c (jcf_parse): Don't parse the same class file twice.
16773 * parse.y (patch_cast): Allow a boolean to be cast into a
16774 boolean.
16775
16776 1999-01-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
16777
16778 * parse.y: (class_declaration:): Fixed indentation.
16779 (class_member_declaration:): Extra `;' after field declaration now
16780 accepted.
16781 (interface_declaration:): Removed debug messages in error reports.
16782 (patch_binop): Nodes created and returned inherit the orignal
16783 node's COMPOUND_ASSIGN_P flag value.
16784 (patch_cast): Fix cast from char to floating point.
16785
16786 1999-01-25 Andrew Haley <aph@cygnus.com>
16787
16788 * except.c, java-except.h (expand_resume_after_catch): new
16789 function.
16790 * expr.c (java_lang_expand_expr): call expand_resume_after_catch
16791 to branch back to main flow of control after a catch block.
16792
16793 1999-01-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16794
16795 * Makefile.in (parse.o): Depend on $(CONFIG_H) and
16796 $(srcdir)/../system.h.
16797 (class.o): Depend on $(PARSE_H) and $(srcdir)/../output.h.
16798 (jcf-parse.o): Depend on $(srcdir)/../toplev.h.
16799 (jcf-write.o): Likewise.
16800 (jv-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
16801 (mangle.o): Depend on $(srcdir)/../toplev.h.
16802 (parse-scan.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
16803 (zextract.o): Depend on $(CONFIG_H) and $(srcdir)/../system.h.
16804
16805 * class.c: Include output.h and parse.h.
16806 (mangled_classname): Add the `const' keyword to a char*.
16807 (find_named_method): Hide unused function definition.
16808 (build_utf8_ref): Change type of variable `c' to unsigned char.
16809 Use ISALPHA/ISDIGIT instead of isalpha/isdigit.
16810 (build_class_ref): Add the `const' keyword to a char*.
16811 (layout_class_method): Remove unused variable `buf'.
16812
16813 * decl.c (find_local_variable): Remove unused variable `rtl'.
16814 (pushdecl): Likewise for variables `different_binding_level' and
16815 `oldglobal'.
16816 (pushlevel): Mark parameter `unused' with ATTRIBUTE_UNUSED.
16817 (maybe_build_cleanup): Likewise for parameter `decl'.
16818
16819 * except.c (expand_start_java_handler): Mark parameter `range'
16820 with ATTRIBUTE_UNUSED.
16821
16822 * expr.c: Include except.h.
16823 (pop_type): Remove unused variable `i'.
16824 (pop_value): Likewise for variables `n_words' and `i'.
16825 (expand_java_arrayload): Likewise for variable `convert'.
16826 (java_lang_expand_expr): Likewise for variables `op0', `type',
16827 `mode', `unsignedp', `node' and `elements'.
16828 (expand_byte_code): Likewise for variables `prev_eh_ranges' and
16829 `eh_ranges'.
16830 (process_jvm_instruction): Add a `const' qualifier to a char*.
16831
16832 * gjavah.c (output_directory): Add the `const' keyword to a char*.
16833 (temp_directory): Likewise.
16834 (print_c_decl): Likewise.
16835 (print_method_info): Likewise.
16836 (decode_signature_piece): Likewise.
16837 (print_mangled_classname): Likewise.
16838
16839 * java-except.h: Provide prototypes for maybe_start_try,
16840 maybe_end_try and add_handler.
16841
16842 * java-tree.h (mangled_classname): Add the `const' keyword to a char*.
16843 (parse_error_context): Likewise. Also add ATTRIBUTE_PRINTF_2.
16844 (pushdecl_top_level, alloc_class_constant, unicode_mangling_length,
16845 init_expr_processing, push_super_field, init_class_processing,
16846 can_widen_reference_to, class_depth, verify_jvm_instructions,
16847 maybe_pushlevels, maybe_poplevels, process_jvm_instruction,
16848 set_local_type, merge_type_state, push_type, load_type_state,
16849 add_interface, find_in_current_zip, append_gpp_mangled_classtype,
16850 emit_unicode_mangled_name): Add prototypes.
16851
16852 * jcf-dump.c (print_constant): Add the `const' keyword to a char*.
16853 (print_signature_type): Use ISDIGIT, not isdigit.
16854 (print_signature): Remove unused variable `j'.
16855
16856 * jcf-io.c (jcf_filbuf_from_stdio): Cast the result of `fread' to
16857 int when comparing against one.
16858
16859 * jcf-parse.c: Include toplev.h.
16860
16861 * jcf-write.c: Likewise. Don't include <string.h> or <sys/stat.h>.
16862 (localvar_free): Remove unused variable `i'.
16863 (generate_bytecode_conditional): Likewise for variable `kind'.
16864
16865 * jv-scan.c: Include config.h and system.h. Remove redundant
16866 OS header and gansidecl.h includes.
16867 (warning): Add the `const' keyword to a char*. Also add
16868 ATTRIBUTE_PRINTF_1 to the prototype. Check ANSI_PROTOTYPES, not
16869 __STDC__, when determining whether to use ANSI-isms.
16870 (fatal): Likewise. Also add ATTRIBUTE_UNUSED.
16871 (xmalloc): Don't redundantly prototype here.
16872 (main): Remove unused parameter `envp'. Also fix the arguments
16873 passed to function `fatal' to match the format specifier.
16874
16875 * lang.c (java_tree_code_name): Add the `const' keyword to a char*.
16876
16877 * mangle.c: Include toplev.h.
16878 (emit_unicode_mangled_name): Declare parameter `len'.
16879
16880 * parse.y (parse_warning_context): Add the `const' keyword to a
16881 char*. Also add ATTRIBUTE_PRINTF_2 to the prototype. Check
16882 `ANSI_PROTOTYPES' not `__STDC__' for whether to use ANSI-isms.
16883 (issue_warning_error_from_context): Add the `const' keyword to
16884 a char*.
16885 (parse_error_context): Likewise. Also check `ANSI_PROTOTYPES'
16886 not `__STDC__' for whether to use ANSI-isms.
16887
16888 * typeck.c (incomplete_type_error): Mark parameters `value' and
16889 `type' with ATTRIBUTE_UNUSED.
16890 (parse_signature_type): Use ISDIGIT, not isdigit.
16891
16892 * verify.c (check_pending_block): Add the `const' keyword to a char*.
16893 (verify_jvm_instructions): Likewise. Remove unused variables
16894 `field_name' and `default_val'.
16895
16896 * zextract.c: Include config.h and system.h. Remove redundant
16897 OS header includes.
16898
16899 * zipfile.h: Prototype `read_zip_archive'.
16900
16901 1999-01-21 Andrew Haley <aph@cygnus.com>
16902
16903 * typeck.c (convert): Allow conversions to void type: some
16904 optimizations in gcc do this.
16905
16906 1999-01-21 Andrew Haley <aph@cygnus.com>
16907
16908 * typeck.c (convert_ieee_real_to_integer): New function.
16909 (convert): When not using fast-math and using hardware fp, convert
16910 an IEEE NaN to zero.
16911
16912 1999-01-18 Andrew Haley <aph@cygnus.com>
16913
16914 * parse.y (patch_binop): Do a type conversion from signed to
16915 unsigned and then back to signed when a ">>>" is found.
16916
16917 1999-01-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
16918
16919 * java-tree.h: (check_for_initialization): Added prototype.
16920 * lex.c (java_parse_doc_section): `\n' breaks the `*/' string.
16921 * parse.y (do_resolve_class): Removed unused locals.
16922 (read_import_dir): Likewise.
16923 (resolve_qualified_expression_name): Array creation
16924 expressions are valid primary expressions.
16925 (qualify_ambiguous_name): Likewise.
16926 (patch_synchronized_statement): Removed unused local.
16927
16928 1999-01-17 Jeffrey A Law (law@cygnus.com)
16929
16930 * Makefile.in (zextract.o): Add dependencies.
16931
16932 * Makefile.in: Do not put ^Ls at the start of a line.
16933
16934 1999-01-15 Per Bothner <bothner@cygnus.com>
16935
16936 * expr.c (process_jvm_instruction): Coerce to correct Throwable
16937 sub-type the result of the call that gets the exception value.
16938
16939 * parse.y (java_complete_expand_methods): If flags_syntax_only,
16940 don't call finish_class.
16941
16942 * parse.y (java_check_regular_methods): If METHOD_PRIVATE,
16943 clear found before continuing.
16944
16945 * verify.c (verify_jvm_instructions): On an array load, allow
16946 and handle top of stack to be TYPE_NULL.
16947
16948 * gjavah.c (generate_access): Translate Java package private or
16949 protected access to C++ public, but with a comment.
16950
16951 1999-01-13 Andrew Haley <aph@cygnus.com>
16952
16953 * expr.c (generate_name): Name prefix changed to avoid clashes
16954 with assembler temp labels.
16955
16956 * parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on
16957 MODIFY_EXPR. Without this, code for the assignment may not be
16958 generated at all and the synchronized statement will read an
16959 uninitialized variable.
16960
16961 1999-01-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
16962
16963 * class.c (maybe_layout_super_class): Fixed returned value.
16964 * lex.c: Added 1999 to the copyright.
16965 (java_init_lex): Initialize java_lang_imported.
16966 * lex.h: Added 1999 to the copyright.
16967 * parse.h: Added 1999 to the copyright.
16968 (REGISTER_IMPORT): Fixed typo in trailing macro.
16969 (CURRENT_OSB): New macro.
16970 (struct parser_ctxt): New fields osb_depth, osb_limit.
16971 * parse.y (java_lang_id): New global variable.
16972 (type_import_on_demand_declaration): Don't import java.lang.* twice.
16973 (array_creation_expression:): Use CURRENT_OSB.
16974 (dims:): Uses a stack to keep track of array dimensions.
16975 (cast_expression:): Use CURRENT_OSB.
16976 (find_expr_with_wfl): Return NULL if node found doesn't meet the
16977 conditions.
16978 (register_fields): Fixed typos in comment.
16979 (check_method_redefinition): Fixed comment indentation.
16980 (java_check_regular_methods): Set saved found wfl to NULL after
16981 having reinstalled it in the previously found DECL_NAME.
16982
16983 1999-01-10 Richard Henderson <rth@cygnus.com>
16984
16985 * gjavah.c (java_float_finite): Use a union to do type punning.
16986 (java_double_finite): Likewise.
16987
16988 1999-01-09 Per Bothner <bothner@cygnus.com>
16989
16990 * parse.y (build_new_array_init): Don't set EXPR_WFL_LINECOL
16991 on CONSTRUCTOR (since that trashes TREE_CST_RTL).
16992 (patch_new_array_init): Clear TREE_CONSTANT also if INDIRECT_REF.
16993 (register_fields): Set TREE_STATIC on NEW_ARRAY_INIT, not on
16994 CONSTRUCTOR (which causes expand_expr to call output_constant_def).
16995 * expr.c (java_lang_expand_expr): Check TREE_STATIC of NEW_ARRAY_INIT.
16996
16997 1999-01-08 Per Bothner <bothner@cygnus.com>
16998
16999 * check-init.c (check_init): If compiling to native, we don't
17000 see THROW_EXPR. Instead, look for a call to throw_node (_Jv_Throw).
17001
17002 1999-01-08 Tom Tromey <tromey@cygnus.com>
17003
17004 * parse-scan.y (variable_declarator_id): Set or increment
17005 bracket_count.
17006 (bracket_count): New global.
17007 (formal_parameter): Handle case where bracket pairs trail variable
17008 declarator id.
17009
17010 1999-01-07 Andrew Haley <aph@viagra.cygnus.co.uk>
17011
17012 * jcf-parse.c (yyparse): variable len changed from a char to an
17013 int to prevent overflow.
17014
17015 1999-01-06 Per Bothner <bothner@cygnus.com>
17016
17017 * java-tree.h: Declare read_class.
17018 * jcf-parse.c (read_class): New function.
17019 (load_class): Now just call read_class.
17020
17021 * java-tree.h (java_parse_abort_on_error): Only return if new errors.
17022 * jcf-parse.c (parse_source_file): Declare save_error_count,
17023 which is needed by java_parse_abort_on_error macro,
17024 * parse.y (java_layout_classes, java_expand_classes): Likewise.
17025
17026 * parse.y (register_fields): Set TREE_STATIC flag of NEW_ARRAY_INIT
17027 constructor, if initializing a static field.
17028 (patch_new_array_init): Set TREE_CONSTANT if it is.
17029 * expr.c (java_lang_expand_expr): For a static array constructor
17030 of primitive elements, allocate the array itself statically.
17031 Disabled until we can set the vtable field statically.
17032
17033 * check-init.c: New file. Checks for definite assignment.
17034 * Makefile.in (JAVA_OBJS): Add check-init.o.
17035 * parse.y (java_complete_expand_method): Call check_for_initialization.
17036 * parse.h (BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY): Moved to java-tree.h.
17037
17038 1999-01-06 Graham <grahams@rcp.co.uk>
17039
17040 * parse.y : include system.h instead of including
17041 standard headers directly with the exception of <dirent.h>.
17042
17043 1999-01-06 Per Bothner <bothner@cygnus.com>
17044
17045 * lex.h: Moved static function declarations to lex.c,
17046 to shut up some -Wall warnings.
17047 * lex.c: Static function declarations moved here.
17048 * jcf-dump.c: Small fixes to shut up -Wall warnings.
17049
17050 1999-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17051
17052 * Make-lang.in ($(GCJ).o): Depend on prefix.h.
17053
17054 1998-12-22 Per Bothner <bothner@cygnus.com>
17055
17056 * expr.c (process_jvm_instruction): Do load_type_state after JSR.
17057 * verify.c (verify_jvm_instructions): Fix off-by-one error.
17058
17059 * jcf-write.c (CHECK_PUT): Add (void) cast to avoid -Wall warnings.
17060 (localvar_alloc): Change return type to void,
17061 (emit_unop): Remove unused variable size.
17062
17063 * jcf-write.c (struct jcf_block): Add new union.
17064 (PENDING_CLEANUP_PC, PENDING_EXIT_PC, UNDEFINED_PC): New macros.
17065 (call_cleanups): New functions.
17066 (struct jcf_partial): New fields num_finalizers and return_value_decl.
17067 (generate_bytecode_insns): Support CLEANUP_POINT_EXPR and
17068 WITH_CLEANUP_EXPR. Handle cleanups in RETURN_EXPR and EXIT_BLOCK_EXPR.
17069 * lang.c (lang_init): Call using_eh_for_cleanups.
17070 * parse.y (java_complete_lhs): For SYNCHRONIZED_EXPR, defer
17071 completing operands to patch_synchronized_statement.
17072 Support CLEANUP_POINT_EXPR, WITH_CLEANUP_EXPR.
17073 (patch_synchronized_statement): Re-write suing CLEANUP_POINT_EXPR and
17074 WITH_CLEANUP_EXPR instead of TRY_EXPR.
17075
17076 1998-12-20 John F. Carr <jfc@mit.edu>
17077
17078 * Make-lang.in: Comment out control-Ls; they upset some makes.
17079
17080 1998-12-18 Tom Tromey <tromey@cygnus.com>
17081
17082 * parse.y (check_class_interface_creation): Use DIR_SEPARATOR
17083 consistently.
17084
17085 1998-12-17 Tom Tromey <tromey@cygnus.com>
17086
17087 * parse.y (DIR_SEPARATOR): New define.
17088 (check_class_interface_creation): Use it.
17089
17090 * parse-scan.y (report_main_declaration): Recognize
17091 `java.lang.String' in argument to main.
17092
17093 1998-12-16 Per Bothner <bothner@cygnus.com>
17094
17095 * parse.y (create_interface): Remove bogus test.
17096
17097 1998-12-16 Per Bothner <bothner@cygnus.com>
17098
17099 * jcf-parse.c (get_constant): Set TREE_TYPE for string constants.
17100 (HANDLE_CONSTANTVALUE): If flag_emit_class_files, call get_constant.
17101
17102 1998-12-16 Tom Tromey <tromey@cygnus.com>
17103
17104 * parse-scan.y (qualified_name): Use correct sprintf format.
17105
17106 1998-12-15 Tom Tromey <tromey@cygnus.com>
17107
17108 * gjavah.c (print_field_info): Changed how most negative number is
17109 printed.
17110
17111 1998-12-14 Per Bothner <bothner@cygnus.com>
17112
17113 * parse.y (fold_constant_for_init): New function.
17114 (resolve_expression_name): Don't replace static final
17115 constant-initialized fields by its value.
17116 (java_complete_lhs): New. Same as java_complete_tree, except does
17117 not replace static final constant-initialized fields by their values.
17118 (register_fields): If there is an initializer, set DECL_INITIAL and
17119 MODIFY_EXPR_FROM_INITIALIZATION_P.
17120 (java_complete_tree): For MODIFY_EXPR, use java_complete_lhs for lhs.
17121 Only call patch_initialized_static_field if
17122 MODIFY_EXPR_FROM_INITIALIZATION_P.
17123 (patch_initialized_static_field): If not valid constant, clear
17124 DECL_INITIAL.
17125
17126 * parse.y (lookup_field_wrapper): Fix thinko.
17127
17128 * parse.y (java_complete_tree): In EXPR_WITH_FILE_LOCATION,
17129 set and restore global lineno.
17130
17131 1998-12-14 Tom Tromey <tromey@cygnus.com>
17132
17133 * gjavah.c (print_field_info): If value to print is the smallest
17134 value of its size, then print as hex to avoid later warnings from
17135 C++ compiler.
17136
17137 1998-12-14 Tom Tromey <tromey@cygnus.com>
17138
17139 * gjavah.c (decompile_method): Decompile `return null'.
17140 (process_file): Generate `#pragma interface'.
17141 (method_declared): New global.
17142 (print_method_info): Set it.
17143 (HANDLE_CODE_ATTRIBUTE): Only print it method_declared set.
17144 (print_method_info): Handle abstract methods.
17145
17146 1998-12-13 Per Bothner <bothner@cygnus.com>
17147
17148 * parse.y (patch_method_invocation): If class_decl is null
17149 (e.g. an array type), use original type.
17150
17151 * parse.y (check_thrown_exceptions): Temporary hack to suppress
17152 errors about uncaught exception from clone (of array, specifically).
17153
17154 1998-12-13 Tom Tromey <tromey@cygnus.com>
17155
17156 * gjavah.c (decompile_method): Handle all types of `return'
17157 opcode. Decompile `return this' and `return'.
17158 (method_access): New global.
17159 (print_method_info): Set it.
17160 (decompile_method): Don't decompile a synchronized method.
17161
17162 1998-12-13 Tom Tromey <tromey@cygnus.com>
17163
17164 * jcf-reader.c (jcf_parse_one_method): Recognize
17165 HANDLE_END_METHOD.
17166 * gjavah.c (HANDLE_END_METHOD): New macro.
17167 (HANDLE_CODE_ATTRIBUTE): New macro.
17168 (decompile_method): New function.
17169 (print_method_info): Don't print `;\n' at end of function decl.
17170 Include java-opcodes.h.
17171 (decompiled): New global.
17172
17173 1998-12-12 Per Bothner <bothner@cygnus.com>
17174
17175 * class.c (build_class_ref): Handle PRIMTYPE.class if
17176 flag_emit_class_files.
17177 * expr.c (expand_java_field_op): Don't optimize java.lang.XXX.TYPE
17178 if flag_emit_class_files.
17179 * parse.y (java_complete_tree): Pre-liminary support for
17180 COMPONENT_REF - only to handle PRIMCLASS.TYPE.
17181
17182 * parse.y (patch_synchronized_statement): Don't call monitorexit
17183 unless block CAN_COMPLETE_NORMALLY. Propagate that flag properly.
17184
17185 * java-tree.h (DECL_LOCAL_STATIC_VALUE): Removed - no longer used.
17186
17187 * zipfile.h (opendir_in_zip): New declaration.
17188 * jcf-io.c (saw_java_source): Moved to jcf-parse.c.
17189 (opendir_in_zip): New function, using code from open_in_zip.
17190 (open_in_zip): Call opendir_in_zip.
17191 (find_class): Remove no-longer-used do_class_file parameter,
17192 but add source_ok parameter. Change logic so if we find a .java file,
17193 we don't look for .class in later classpath emtries.
17194 * jcf-parse.c (load_class): Pass saw_java_source to find_class.
17195 (jcf_figure_file_type): Only call open_in_zip if correct magic number.
17196 * gjavah.c: Update call to find_class.
17197 * jcf-dump.c: Likewise.
17198
17199 * jcf-write.c (put_linenumber): Handle duplicate line numbers.
17200 (generate_bytecode_insns): For EXPR_WITH_FILE_LOCATION, do
17201 nothing if body is empty_stmt_node.
17202 Various little fixes so SP gets correctly adjusted.
17203 For NEW_ARRAY_INIT, handle IGNORE_TARGET.
17204 For CALL_EXPR, test if static first.
17205 (generate_classfile): Ignore fields that are DECL_ARTIFICIAL,
17206 such as the ones we create for Object and Class.
17207 Set and restore current_function_decl.
17208 * parse.y: Check/set IS_AN_IMPORT_ON_DEMAND_P in read_import_dir.
17209 (note_possible_classname): New function.
17210 (read_import_entry): Removed. Merged with read_import_dir.
17211 (read_import_dir): Don't call find_class - that only gives us
17212 the first classpath entry having the needed package.
17213 Use the struct buffer data structure from buffer.h.
17214 (read_import_dir, find_in_imports_on_demand): The remembered
17215 class names now use '.' (not '/') as package separator.
17216
17217 * parse.y (java_complete_expand_methods): Call write_classfile
17218 here, and not in java_expand_classes (which only gets first class).
17219
17220 1998-12-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
17221
17222 * parse.y (<type_declaration>): Do maybe_generate_clinit last.
17223 (register_fields): If a static fields has an initializer, just
17224 chain it on ctxp->static_initialized, and handle later.
17225 (java_complete_expand_methods): Force <clinit> first.
17226 (resolve_expression_name, resolve_field_access): Just get DECL_INITIAL
17227 - it's already been completed.
17228 (patch_initialized_static_field): New function.
17229 (java_complete_field): Call it.
17230
17231 1998-12-12 Per Bothner <bothner@cygnus.com>
17232
17233 * expr.c (encode_newarray_type, build_new_array): New functions.
17234 * java-tree.h: Declare build_new_array.
17235 * jcf-write.c (patch_newarray): Use build_new_array.
17236
17237 * expr.c (java_lang_expand_exp): Support NEW_ARRAY_INIT.
17238 * jcf-write.c (generate_bytecode_insns): Support NEW_ARRAY_INIT.
17239
17240 * parse.y (patch_new_array_init): Re-organize.
17241 Now is passed the actual array (pointer) type of the value.
17242 Set the type of the CONSTRUCTOR to be an ARRAY_TYPE.
17243 (patch_array_constructor): Removed - merged into patch_new_array_init.
17244 (java_complete_tree): Update patch_new_array_init.
17245
17246 * jcf-write.c (find_constant_index): New function.
17247 (generate_bytecode_insns): Use find_constant_index.
17248 (generate_classfile): Use find_constant_index for ConstantValue.
17249
17250 1998-12-11 Tom Tromey <tromey@cygnus.com>
17251
17252 * expr.c (invoke_build_dtable): Renamed dtable -> vtable.
17253 * decl.c (init_decl_processing): Renamed dtable -> vtable.
17254 * class.c (make_class_data): Renamed dtable -> vtable, and
17255 dtable_method_count -> vtable_method_count.
17256
17257 1998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
17258
17259 * decl.c (long_zero_node, float_zero_node, double_zero_node): New
17260 global variables, initialized.
17261 * java-tree.h (long_zero_node, float_zero_node, double_zero_node):
17262 Declared new global variables.
17263 * lex.c (java_lex): Return long_zero_node, float_zero_node,
17264 double_zero_node, integer_zero_node upon direct matching.
17265 * parse.y (purify_type_name): Added function prototype.
17266 (duplicate_declaration_error_p): Consider new_type as potentially
17267 being a incomplete type. Use purify_type_name on type string.
17268 (method_header): saved_type: unused variable removed. Don't figure
17269 return type if method name is invalid.
17270 (java_complete_tree): Set CAN_COMPLETE_NORMALLY after `node' was
17271 processed by patch_unaryop.
17272 (patch_unaryop): Fixed typo in comment. Re-convert pre/post
17273 increment/decrement node into its original type after binary
17274 numeric promotion on its operands.
17275
17276 1998-12-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
17277
17278 * parse.y (array_initializer:): Array init operand is NULL_TREE
17279 instead of a TREE_LIST of NULL_TREEs when parsing `{}'. `{,}' is
17280 now an error. Fixed indentation problems.
17281 (patch_string): Handle error_mark_node as an argument.
17282 (patch_new_array_init): Fixed indentation problems.
17283 (array_constructor_check_entry): Removed check on null wfl_value.
17284 Return an error if wfl_value's walk returns an error.
17285
17286 1998-12-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
17287
17288 * java-tree.def (NEW_ARRAY_INIT): New Java tree code.
17289 * lex.c (java_lex): Remember column position before advancing one
17290 token. Retain location information on OCB_TK.
17291 * lex.h (typedef struct java_lc): Added new field.
17292 * parse.h (GET_SKIP_TYPE): New macro.
17293 (QUAL_DECL_TYPE): Redefined using GET_SKIP_TYPE.
17294 * parse.y (build_new_array_init, patch_new_array_init,
17295 patch_array_constructor, maybe_build_array_element_wfl,
17296 array_constructor_check_entry): New function prototypes.
17297 (switch_block:): Tagged <node>.
17298 (OCB_TK): Tagged <operator>.
17299 (array_initializer:): Installed actions.
17300 (variable_initializer): Build location information on element if
17301 necessary.
17302 (switch_statement:): Fixed indentation typo.
17303 (switch_block:): Redefined default action.
17304 (java_complete_tree): Handle NEW_ARRAY_INIT in MODIFY_EXPR:.
17305 (patch_assignment): Removed duplicate code.
17306 (maybe_build_array_element_wfl, build_new_array_init,
17307 patch_new_array_init, patch_array_constructor,
17308 array_constructor_check_entry): New functions.
17309
17310 1998-12-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
17311
17312 * parse.y (array_initializer): Tagged <node>.
17313 (variable_initializer:): Use default rule.
17314 (array_initializer:): Defined actions.
17315 (variable_initializers:): Likewise.
17316 (resolve_qualified_expression_name): Use DECL_CONTEXT to build
17317 non-static field accesses.
17318 (patch_invoke): Fixed indentation typo.
17319 (java_complete_tree): Likewise.
17320 (build_labeled_block): Changed leading comment. Generate an error
17321 in case of duplicate loop labels.
17322 (patch_conditional_expr): Patch results of string concatenation
17323 operations.
17324
17325 1998-12-06 Per Bothner <bothner@cygnus.com>
17326
17327 * constants.c (find_methodref_index): When the class is an interface,
17328 generate CONSTANT_InterfaceMethodref instead of a CONSTANT_MethodRef.
17329
17330 * decl.c (finit_identifier_node): Use "$finit$", rather than
17331 "<finit>" (which Sun's verifier rejects).
17332 * parse.y (maybe_generate_finit): Leave out meaningless final flag.
17333 (generate_field_initialization_code): Removed.
17334 (fix_constructors) Don't add call to $finit$ here (wrong order).
17335 (patch_method_invocation): Add $finit$ call here.
17336
17337 * java-tree.h (CALL_USING_SUPER): New macro.
17338 * parse.y (patch_invoke): Remove im local variable.
17339 (patch_method_invocation, patch_invoke): Don't pass super parameter.
17340 (patch_invoke): Use CALL_USING_SUPER instead of from_super parameter.
17341 (resolve_qualified_expression_name): Maybe set CALL_USING_SUPER.
17342
17343 * jcf-write.c (get_access_flags): Fix typo ACC_PUBLIC -> ACC_FINAL.
17344
17345 * parse.y (java_complete_tree): Don't complain about unreachable
17346 statement if it is empty_stmt_node.
17347
17348 * jcf-write.c (find_constant_wide): New function.
17349 (push_long_const): Use find_constant_wide.
17350
17351 * jcf-write.c (generate_bytecode_insn): Fix bug in switch handling.
17352 (generate_bytecode_insn): Use correct dup variant for MODIFY_EXPR.
17353 Add "redundant" NOTE_PUSH/NOTE_POP uses so code_SP_max gets set.
17354 Emit invokeinterface when calling an interface method.
17355 Emit invokespecial also when calling super or private methods.
17356
17357 * jcf-write.c (generate_classfile): Emit ConstantValue attributes.
17358
17359 1998-12-06 Per Bothner <bothner@cygnus.com>
17360
17361 * jcf-dump.c (INVOKE): If invokeinterface, print number of args.
17362
17363 1998-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
17364
17365 * java-tree.h (java_layout_seen_class_methods): New function
17366 prototype.
17367 (LAYOUT_SEEN_CLASS_METHODS): Macro removed.
17368 * jcf-parse.c (parse_class_file): Call java_layout_seen_class_methods.
17369 * parse.h (PROMOTE_RECORD_IF_COMPLETE): New macro.
17370 * parse.y (method_declarator:): Defined action.
17371 (issue_warning_error_from_context): input_filename saved, set to
17372 the appropriate value and restored after java_error is called.
17373 (build_unresolved_array_type): Fixed comment.
17374 (register_fields): Use PROMOTE_RECORD_IF_COMPLETE.
17375 (method_header): Deal with return type the same way type are
17376 handled for fields and method's parameters and local variables
17377 types are handled.
17378 (check_method_redefinition): Removed extra CR.
17379 (declare_local_variables): Use PROMOTE_RECORD_IF_COMPLETE.
17380 (java_layout_seen_class_methods): New function.
17381 (java_layout_classes): Call java_layout_seen_class_methods.
17382
17383 1998-12-03 Per Bothner <bothner@cygnus.com>
17384
17385 * parse,y (patch_synchronized_statement): Set CAN_COMPLETE_NORMALLY.
17386
17387 1998-12-03 Per Bothner <bothner@cygnus.com>
17388
17389 * jcf-dump.c (main): Fix error message.
17390 * jcf-path.c (add_entry): Style fix.
17391
17392 1998-12-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
17393
17394 * class.c (layout_class_method): Call build_java_argument_signature
17395 on constructors too.
17396 * parse.y (check_method_redefinition): Use TYPE_ARGUMENT_SIGNATURE.
17397 (patch_method_invocation): Define a primary when resolving an
17398 expression name. Augmented comment on code checking illegal `this'
17399 usage. Loosened it test by accepting NEW_CLASS_EXPR.
17400
17401 1998-12-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
17402
17403 * class.c (layout_class_method): Don't report error on non-static
17404 overriding static if the method is private.
17405 * java-tree.h (finish_class): Prototype added.
17406 * lex.c (java_get_line_col): Handle col argument -2 value.
17407 * parse.h: All static method declarations moved to parse.y.
17408 * parse.y: Now contains all static method declarations previously
17409 found in parse.h.
17410 (find_expr_with_wfl, missing_return_error,
17411 unreachable_stmt_error): New functions.
17412 (java_get_real_method_name): Identify constructors bearing class
17413 names in source code compiled classes only.
17414 (java_complete_expand_methods): Call missing_return_error.
17415 (invocation_mode): Private methods invoked as static methods.
17416 (java_complete_tree): Call unreachable_stmt_error.
17417
17418 1998-12-01 Tom Tromey <tromey@cygnus.com>
17419
17420 * Makefile.in (+target): Removed.
17421 (+xmake_file): Likewise.
17422 (+tmake_file): Likewise.
17423 (.NOEXPORT): Removed duplicate.
17424
17425 1998-11-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17426
17427 * Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK).
17428
17429 * jv-scan.c: Fix xmalloc prototype. Provide an xmalloc definition.
17430
17431 * jvgenmain.c: Remove the xmalloc prototype, we get it from
17432 libiberty.h. Provide an xmalloc definition.
17433
17434 * jvspec.c: Remove the xmalloc prototype.
17435
17436 * parse-scan.y: Include config.h and system.h. Don't include
17437 OS headers or gansidecl.h. Don't prototype xmalloc/xstrdup.
17438 Provide an xstrdup definition.
17439
17440 1998-11-26 Alexandre Oliva <oliva@dcc.unicamp.br>
17441
17442 * jcf-path.c (add_entry): Recognize ".jar" too.
17443 * lang-specs.h: Likewise.
17444
17445 1998-11-26 Per Bothner <bothner@cygnus.com>
17446
17447 * jcf-write.c (generate_bytecode_insns): In Call_EXPR, handle
17448 soft_monitorenter_node, soft_monitorexit_node, throw_node.
17449
17450 * jcf-write.c (generate_bytecode_insns):
17451 Handle pre/post-increment/decrement of long.
17452
17453 * jcf-write.c (generate_bytecode_insns):
17454 Handle missing exception handler (finally for synchronized).
17455
17456 1998-11-25 Per Bothner <bothner@cygnus.com>
17457
17458 * java-tree.h (end_params_node): Declare global.
17459 * decl.c (end_params_node): New global.
17460 (init_decl_processing, start_java_method): Use end_params_node for
17461 end of list of parameter types. Follows correct gcc conventions.
17462 * expr.c (pop_argument_types, pop_arguments): Likewise.
17463 * lang.c (put_decl_node): Likewise.
17464 * typeck.c (various places): Likewise.
17465 * class.y (various places): Likewise.
17466 * parse.y (various places): Likewise.
17467
17468 * parse.y (java_complete_tree): Move CAN_COMPLETE_NORMALLY.
17469 (build_jump_to_finally): Add missing CAN_COMPLETE_NORMALLY.
17470
17471 * class.c: Add #include flags.h, remove no-longer needed declaration.
17472
17473 * class.c (layout_class_method): Remove commented-out code, re-format.
17474 Don't add vtable entry (or index) for private methods.
17475 * expr.c (expand_invoke): A private method is implicitly final.
17476 * class.c (make_class_data): If inlining or optimizing,
17477 skip private methods.
17478
17479 * class.c (finish_class): New function. Calls existing methods,
17480 but alls emits deferred inline functions.
17481 * jcf-parse.c (parse_class_file): Call finish_class.
17482 * parse.y (java_complete_expand_methods): Likewise.
17483
17484 * expr.c (build_java_binop): Explicit default, to silence -Wall.
17485
17486 * expr.c (CHECK_PC_IN_RANGE): Add void cast to kill warnings.
17487
17488 1998-11-25 Marc Espie <espie@quatramaran.ens.fr>
17489
17490 * jcf-write.c (generate_bytecode_conditional): Fix typo.
17491
17492 1998-11-24 Per Bothner <bothner@cygnus.com>
17493
17494 * (generate_classfile): Always write class access flag with
17495 ACC_SUPER set.
17496
17497 1998-11-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
17498
17499 * class.c (maybe_layout_super_class): New function.
17500 (layout_class): Reorganized. Loop on class methods dispatched into
17501 a new function. Call maybe_layout_super_class.
17502 (layout_class_methods, layout_class_method): New functions.
17503 * expr.c (expand_java_NEW): Call layout_class_methods on loaded
17504 class.
17505 (expand_invoke): Likewise.
17506 * java-tree.h (all_class_list): New global variable declared.
17507 (layout_class_methods, layout_class_method): New function
17508 prototypes.
17509 (LAYOUT_SEEN_CLASS_METHODS): New macro.
17510 * jcf-parse.c (all_class_list): New global variable.
17511 (load_class): Extended what class_or_name can be. Use parser
17512 context mechanism to save globals before calling jcf_parse.
17513 (jcf_parse_source): Don't parse twice if HAS_BEEN_ALREADY_PARSED_P
17514 is set on the file name.
17515 (jcf_parse): Layout class methods when Object is loaded, otherwise
17516 record class in all_class_list for delayed method layout.
17517 (parse_class_file): Use LAYOUT_SEEN_CLASS_METHODS.
17518 * lang.c (put_decl_node): Decode <init> into the decl context
17519 class name.
17520 * lex.c (java_allocate_new_line): Use xmalloc.
17521 * parse.h (INCOMPLETE_TYPE_P): Redefined to work with incomplete
17522 pointers, not TREE_LIST elements.
17523 (struct parser_ctxt): Fixed comment indentations, added comments
17524 and reordered some fields.
17525 (java_check_methods): Function prototype removed.
17526 * parse.y (java_push_parser_context): Use xmalloc.
17527 (java_parser_context_restore_global): Pop extra pushed ctxp only
17528 when there's nothing next.
17529 (maybe_create_class_interface_decl): Fixed comment, add new
17530 created class decl to all_class_list.
17531 (method_header): Use GET_REAL_TYPE on argument's types.
17532 (method_declarator): Use GET_REAL_TYPE, change type to the real
17533 type in TREE_LIST dependency node. Build argument list with the
17534 real type.
17535 (create_jdep_list): Use xmalloc. Removed allocation error message.
17536 (obtain_incomplete_type): Fixed leading comment. Broadened
17537 incoming argument meaning.
17538 (register_incomplete_type): Use xmalloc. Removed allocation error
17539 message.
17540 (safe_layout_class): Fixed leading comment.
17541 (jdep_resolve_class): Reversed if statement condition and switch
17542 if and else bodies.
17543 (resolve_and_layout): Fixed leading comment. Broadened incoming
17544 argument meaning.
17545 (complete_class_report_errors): New local variable name, for
17546 clarity. purify_type_name used for all error cases.
17547 (java_get_real_method_name): Stricter check on constructors.
17548 (java_check_regular_methods): Reverse methods list only if not
17549 already laid out. Layout artificial constructor.
17550 (java_check_methods): Deleted.
17551 (source_start_java_method): Obtain incomplete type for patchable
17552 method arguments.
17553 (java_layout_classes): Fixed leading comment. Use
17554 LAYOUT_SEEN_CLASS_METHODS, use a loop to check methods. Added else
17555 statement to layout operation, reuse LAYOUT_SEEN_CLASS_METHODS
17556 before returning. Fixed comments.
17557 (java_expand_classes): Check for errors up front.
17558 (patch_method_invocation): Class to search is resolved and laid
17559 out.
17560
17561 1998-11-24 Per Bothner <bothner@cygnus.com>
17562
17563 * expr.c (java_lang_expand_expr): Add missing emit_queue.
17564
17565 * javaop.h (int8): Removed - not used.
17566 (jbyte): Redefine portably with correct signedness.
17567
17568 * jcf-write.c (generate_bytecode_insns): Don't free sw_state.cases.
17569
17570 * jcf-write.c (generate_bytecode_insns): Fix typo
17571 OPCODE_getstatic to OPCODE_getfield.
17572
17573 * java-tree.def (CASE_EXPR, DEFAULT_EXPR): Kind is 'x', not '1'.
17574 * parse.y (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR,
17575 set TREE_SIDE_EFFECTS (otherwise expand_expr may skip them).
17576
17577 1998-11-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
17578
17579 * jcf-parse.c (jcf_parse_source): Function returned type is
17580 void. Added prototype.
17581 (jcf_parse): Function returned type is void.
17582 (yyparse): Remove call to fclose on the last parsed file.
17583
17584 * java-tree.h (jcf_parse): Changed jcf_parse prototype.
17585
17586 1998-11-18 Alexandre Petit-Bianco <apbianco@cygnus.com>
17587
17588 * class.c (unmangle_classname): Set QUALIFIED_P when appropriate.
17589 (layout_class): Cope with methods featuring WFL in decl names.
17590 * decl.c (unqualified_object_id_node): New global variable,
17591 initialized.
17592 (build_decl_no_layout): Removed.
17593 * expr.c (build_primtype_type_ref): Handle Double.
17594 (java_lang_expand_expr): Fixed indentations.
17595 * java-tree.h (CLASS_METHOD_CHECKED_P): Flag deleted.
17596 (flag_wall, flag_redundant, flag_not_overriding,
17597 flag_static_local_jdk1_1, unqualified_object_id_node): Global
17598 variable declarations.
17599 (build_decl_no_layout): Removed prototype.
17600 (java_get_real_method_name): Added prototype.
17601 (IS_UNCHECKED_EXPRESSION_P): Renamed IS_UNCHECKED_EXCEPTION_P.
17602 (java_parse_abort_on_error): Macro now just returns.
17603 * jcf-parse.c (jcf_parse_source): Check fclose returned
17604 value. Call emit_register_classes if java_report_errors returns
17605 zero.
17606 * lanc.c (flag_wall, flag_redundant, flag_not_overriding,
17607 flag_static_local_jdk1_1): New integer flags.
17608 (lang_decode_option): New flags set here.
17609 * parse.h (GET_REAL_TYPE, GET_METHOD_NAME): New macros.
17610 (OBSOLETE_MODIFIER_WARNING): Issue error message conditionally to
17611 the flag_redundant variable.
17612 (SET_TYPE_FOR_RESOLUTION): Consider Object being java.lang.Object
17613 when parsing java.lang.Object class.
17614 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Added terminal
17615 NULL_TREE to build.
17616 (resolve_qualified_expression_name): Fixed indentation.
17617 (patch_array_ref): Changed prototype.
17618 (not_initialized_as_it_should_p): Prototype removed.
17619 (java_report_errors): Added function prototype.
17620 * parse.y (formal_parameter:): Changed error message for not yet
17621 supported final parameters.
17622 (class_type_list:): Set both PURPOSE and VALUE of created
17623 TREE_LIST to be class_type.
17624 (primary_no_new_array:): Handle class literals on primitive types.
17625 (parse_warning_context): Reinstalled correct force_error and
17626 do_warning flags setups.
17627 (java_report_errors): Changed prototype. Return java_error_count
17628 value.
17629 (variable_redefinition_error): Consider treating variable type as
17630 a fake pointer.
17631 (create_interface): Warn about redundant abstract modifier if
17632 flag_redundant is set. Changed error message.
17633 (lookup_field_wrapper): Save/restore globals before/after looking
17634 up field.
17635 (duplicate_declaration_error_p): Consider treating declaration
17636 type as a fake pointer.
17637 (register_fields): Extract real type from dependency node. Check
17638 for duplicate field declaration after type adjustment. Use
17639 DECL_INITIAL to store static final initialized values.
17640 (method_header): Extract real function type from dependency node.
17641 (check_abstract_method_header): Use GET_METHOD_NAME.
17642 (obtain_incomplete_type): Layout fake pointer type.
17643 (safe_layout_class): Don't try to check for methods before layout.
17644 (java_complete_class): Don't check for correct throws clause
17645 elements inheritance here.
17646 (resolve_and_layout): Broadened name parameter meaning.
17647 (reset_method_name): Use GET_METHOD_NAME.
17648 (java_get_real_method_name): New function.
17649 (java_check_regular_methods): Don't check methods in
17650 java.lang.Object. Verify lineage of throws clause elements. Use
17651 flag_no_overriding in warning report.
17652 (check_throws_clauses): Don't check if class was from
17653 bytecode. Use IS_UNCHECKED_EXCEPTION_P macro.
17654 (java_check_methods): Don't set CLASS_METHOD_CHECKED_P flag.
17655 (declare_local_variables): Use flag_static_local_jdk1_1 to report
17656 warning on unsupported final local variables. Use build_decl
17657 instead of build_decl_no_layout. Get real local variable type from
17658 dependency node.
17659 (source_start_java_method): Get real parameter type from
17660 dependency node. Call build_decl instead of build_decl_no_layout.
17661 (java_layout_classes): Reverse tree and layout type and class as
17662 required. Mark class as loaded when done.
17663 (resolve_field_access): Fixed indentation. Restricted condition
17664 leading to static field access code generation. Set field_type
17665 decl's TREE_TYPE if QUAL_DECL_TYPE not available.
17666 (resolve_qualified_expression_name): Initialize type_found to
17667 null. Handle static field resolved during qualification. Fixed
17668 layout on non primitive field decl types.
17669 (not_accessible_p): Fixed typo in comment.
17670 (patch_method_invocation): Resolve and layout class to search from
17671 type.
17672 (lookup_method_invoke): Keep integer constant 0 as is. Resolve and
17673 layout non primitive type, if necessary. Make method node only to
17674 report errors.
17675 (find_applicable_accessible_methods_list): Consider WFL'ed method
17676 decl names. Fixed indentation.
17677 (argument_types_convertible): Resolve and layout target type if
17678 necessary.
17679 (java_complete_tree): Fixed indentation problems. Rewrote
17680 CALL_EXPR thrown exceptions check. Re-installed further processing
17681 of the assignment in certain cases.
17682 (patch_assignment): Call maybe_build_primttype_type_ref to perform
17683 inlining on class literals.
17684 (valid_builtin_assignconv_identity_widening_p): Cope with constant
17685 0 literal.
17686 (valid_method_invocation_conversion_p): Likewise.
17687 (patch_string): Temporary disable forbidden use of `this' in
17688 explicit constructor invocations when doing string concatenation
17689 within their scope.
17690 (patch_unaryop): Added comment. Reinstalled code to disable
17691 further check on assignment operation with cast expression RHS.
17692 (patch_switch_statement): Fixed indentation.
17693 (build_try_statement): Call build_decl instead of
17694 build_decl_no_layout.
17695 (patch_synchronized_statement): Likewise.
17696 (patch_throw_statement): Use IS_UNCHECKED_EXCEPTION_P instead of
17697 IS_UNCHECKED_EXPRESSION_P.
17698 (check_thrown_exceptions_do): Changed leading comment. Resolve and
17699 layout argument exception type.
17700 (purge_unchecked_exceptions): Use IS_UNCHECKED_EXCEPTION_P instead
17701 of IS_UNCHECKED_EXPRESSION_P.
17702
17703 1998-11-18 Anthony Green <green@cygnus.com>
17704
17705 * jcf-parse.c (yyparse): Open class file in binary mode.
17706
17707 1998-11-15 Per Bothner <bothner@cygnus.com>
17708
17709 * jvgenmain.c: Need to #include "gansidecl.h" (to get PROTO).
17710
17711 * jcf-write.c (perform_relocations): Move check out one loop.
17712
17713 1998-11-15 Anthony Green <green@hoser.cygnus.com>
17714
17715 * Make-lang.in: Fix reference to srcdir.
17716 * jv-scan.c: Add missing xmalloc prototype.
17717 * jvgenmain.c: Ditto.
17718
17719 1998-11-15 Per Bothner <bothner@cygnus.com>
17720
17721 * decl.c (error_mark_node), java-tree.h: New global.
17722 * parse.y: Use empty_stmt_node instead of size_zero_node.
17723 (build_if_else_statement): If missing else, use empty_stmt_node.
17724
17725 * parse.y (not_initialized_as_it_should_p): Removed, with its callers.
17726 (java_complete_expand_method): Complain if return is missing.
17727 (java_check_regular_methods): Comment out incorrect error check.
17728 (not_accessible_p): Fix incorrect handling of protected methods.
17729 (patch_method_invocation): Pass correct context to not_accessible_p.
17730 (find_applicable_accessible_methods_list): Likewise.
17731 (qualify_ambiguous_name): If ARRAY_REF, it's an expression name.
17732 (java_complete_tree): For CASE_EXPR and DEFAULT_EXPR, set
17733 TREE_TYPE (to void_type_node); otherwise expand_expr crashes.
17734 (patch_if_else_statement): Fix setting of CAN_COMPLETE_NORMALLY.
17735
17736 * jcf-write.c (CHECK_OP, CHECK_PUT): Add some error checking.
17737 (push_int_const): Remove reundant NOTE_PUSH.
17738 (generate_bytecode_insns - case STRING_CST): Do NOTE_PUSH.
17739 (- case SWITCH_EXPR): Fix code generation bug.
17740 (- case PREDECREMENT_EXPR etc): Remove redundant NOTE_PUSH.
17741 (generate_classfile): More robust for abstract methods.
17742
17743 1998-11-15 Anthony Green <green@cygnus.com>
17744
17745 * Makefile.in: jv-scan and jvgenmain all require libiberty.
17746 * Make-lang.in: Ditto.
17747
17748 * jv-scan.c: Remove xmalloc and xstrdup definitions.
17749 * jvgenmain: Ditto.
17750
17751 1998-11-15 Per Bothner <bothner@cygnus.com>
17752
17753 * jcf-parse.c (HANDLE_EXCEPTIONS_ATTRIBUTE): New macro.
17754
17755 * jcf-io.c (find_class): Simpler/cleaner structure fixes a bug.
17756
17757 1998-11-14 Per Bothner <bothner@cygnus.com>
17758
17759 Allow uses of interface types to verify. This is not really
17760 type-safe, but it matches what Sun does, and is OK as long as
17761 there are appropriate run-time checks.
17762 * verify.c (merge_types): If merging two interface types,
17763 just set the result to java.lang.Object.
17764 * expr.c (pop_type): Any interface is matches by java.lang.Object.
17765
17766 1998-11-13 Tom Tromey <tromey@cygnus.com>
17767
17768 * gjavah.c (main): Handle --output-class-directory argument.
17769 * jvspec.c (lang_specific_driver): Translate `-d' into
17770 -foutput-class-dir.
17771 * jcf.h (jcf_write_base_directory): Declare.
17772 * lang.c (lang_decode_option): Recognize -foutput-class-dir.
17773 * lang-options.h: Mention -foutput-class-dir.
17774 * jcf-write.c (jcf_write_base_directory): New global.
17775 (make_class_file_name): Put generated .class file into `-d'
17776 directory, or into source directory if -d not given. Function now
17777 static.
17778 (write_classfile): Free class file name. Handle case where class
17779 file name is NULL.
17780 (DIR_SEPARATOR): New macro.
17781 Include <sys/stat.h>
17782
17783 * Makefile.in (prefix): New macro.
17784
17785 1998-11-12 Per Bothner <bothner@cygnus.com>
17786
17787 * parse.y (patch_invoke): Do less if flag_emit_class_files.
17788 * expr.c (build_known_method_ref): Don't check flag_emit_class_files
17789 here (done in patch_invoke instead).
17790 (case_identity): Moved here from parse.y.
17791
17792 * java-tree.h (CAN_COMPLETE_NORMALLY): New macro.
17793 * parse.y (java_complete_tree etc): Maybe set CAN_COMPLETE_NORMALLY.
17794 * parse.y (java_complete_tree): Re-order COMPOUND_EXPR in BLOCK
17795 so they can be efficiently scanned without recursion.
17796 Error it ! CAN_COMPLETE_NORMALLY first part of COMPOUND_EXPR.
17797 * expr.c (java_lang_expand_expr): Expand statements of COMPOUND_EXPR
17798 in BLOCK iteratively, rather than recursively.
17799
17800 * parse.y (do_unary_numeric_promotion): New function.
17801 (patch_unaryop, patch_binop, patch_array_ref): Use it.
17802
17803 * parse.y (patch_newarray): Various fixes.
17804
17805 Re-do handling of switch statements (for proper block scoping).
17806 * parse.y: Add just a single block for the enture switch block,
17807 but don't create any "case blocks".
17808 (group_of_labels): Rmeoved unneeded non-terminal.
17809 CASE_EXPR and DEFAULT_EXPR are added to current block.
17810 * expr.c (java_lang_expand_expr): Inline SWITCH_EXPR here.
17811 Now also need to handle CASE_EXPR and DEFAULT_EXPR.
17812 * java-tree.h (SWITCH_HAS_DEFAULT): New macro.
17813 * parse.y (wfl_operator, print_int_node): Make non-static.
17814 (java_complete_tree): CASE_EXPR and DEFAULT_EXPR are now processed
17815 as part of recursive scan of block.
17816 (java_expand_switch ): Removed - inlined into java_lang_expand_expr.
17817 (patch_switch_statement): Most tests move dinto java_complete_tree.
17818
17819 * parse.y: Make various production be non-typed (void).
17820 * parse.y (parse_error): Merged into issue_warning_error_from_context.
17821 * parse.y (add_stmt_to_compound): Don't create/change extra node.
17822 (patch_method_invocation_stmt): Renamed to patch_method_invocation.
17823
17824 * jcf-write.c (struct jcf_handler): New type.
17825 (struct jcf_switch_state): New type.
17826 (SWITCH_ALIGN_RELOC, BLOCK_START_RELOC): New relocation kinds.
17827 (alloc_handler, emit_unop, emit_reloc): New functions.
17828 (adjust_typed_op): Add extra parameter ("max type" offset).
17829 (emit_switch_reloc, emit_case-reloc): New function.
17830 (generate_bytecode_conditional): Handle REAL_TYPE comparisons.
17831 (generate_bytecode_insns): Support REAL_CST, switch statements,
17832 exception handling, method calls, object/array creation, and more.
17833
17834 * class.c: Remove some unused variables.
17835 * constants.c (find_string_constant): New function.
17836 (count_constant_pool_bytes): Fix to correctly handle wide constants.
17837 * decl.c (complete_start_java_method): Don't _Jv_InitClass
17838 if flag_emit_class_files.
17839
17840 1998-11-12 Tom Tromey <tromey@cygnus.com>
17841
17842 * jcf-io.c (find_class): Added explanatory comment.
17843
17844 * jcf-path.c (add_entry): Look for `.zip' at end of filename. Add
17845 trailing slash to `.zip' entries.
17846
17847 * jvspec.c (lang_specific_driver): Correctly handle case where
17848 GC_NAME not defined.
17849
17850 1998-11-11 Tom Tromey <tromey@cygnus.com>
17851
17852 * jvspec.c (GC_NAME): New define.
17853 (lang_specific_driver): Use GC_NAME. Add GC_NAME to command line
17854 if required.
17855 * Make-lang.in (jvspec.o): Define WITH_GC_<name>.
17856
17857 1998-11-11 Per Bothner <bothner@cygnus.com>
17858
17859 * jcf-dump.c (TABLE_SWITCH): Fix typos.
17860
17861 1998-11-11 Tom Tromey <tromey@cygnus.com>
17862
17863 * jcf-dump.c (main): Correctly recognize `--'-style long options.
17864
17865 1998-11-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
17866
17867 * class.c (is_compiled_class): Call safe_layout_class for class
17868 compiled from source.
17869 * conver.h (convert_to_integer, convert_to_real,
17870 convert_to_pointer): Added prototypes.
17871 * decl.c (init_decl_processing): Non longer push the decls of
17872 `methodtable', `constants', `Class', `Field', `dispatchTable'
17873 `jexception' and `Method'.
17874 * expr.c (build_invokeinterface): New function.
17875 (expand_invoke): static variable CLASS_IDENT now in
17876 build_invokeinterface. Use build_invokeinterface.
17877 (expand_java_field_op): Moved code to inline
17878 java.lang.PRIMTYPE.TYPE into a function.
17879 (build_primtype_type_ref): New function.
17880 * java-tree.def (INSTANCEOF_EXPR): New tree code.
17881 * java-tree.h (CLASS_METHOD_CHECKED_P, METHOD_DEPRECATED,
17882 FIELD_DEPRECATED, CLASS_DEPRECATED): New flag macros.
17883 (DECL_CONSTRUCTOR_P): Fixed typo in comment.
17884 (DECL_LOCAL_STATIC_VALUE): New macro.
17885 (build_invokeinterface, build_primtype_type_ref): New function
17886 prototypes.
17887 (java_parse_abort_on_error): Macro rewritten.
17888 * jcf-parse.c (current_method): Add comment to declaration.
17889 (parse_zip_file_entries, process_zip_dir, void parse_source_file):
17890 Function prototypes fixed.
17891 (jcf_parse_source): push/pop parser context. save/restore global.
17892 (parse_source_file): Fixed leading comment. Now take a
17893 IDENTIFIER_NODE as an argument. Doesn't check methods, layout
17894 classes and pop the parser context anymore.
17895 (yyparse): Push parser context, save globals, parse the source
17896 file, restore globals and pop the parser context when processing a
17897 source file.
17898 * jcf.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG define.
17899 * lex.c (java_parse_doc_section): New function.
17900 (java_lex): Call java_parse_doc_section when appropriate. Build an
17901 operator around INSTANCEOF_TK.
17902 * lex.h (java_lineterminator, java_sprint_unicode,
17903 java_unicode_2_utf8, java_lex_error, java_store_unicode):
17904 Prototypes rewritten.
17905 (java_parse_escape_sequence, java_letter_or_digit_p,
17906 java_parse_doc_section, java_parse_end_comment, java_get_unicode,
17907 java_read_unicode, java_store_unicode, java_read_char,
17908 java_allocate_new_line, java_unget_unicode, java_sneak_unicode):
17909 Added function prototypes.
17910 * parse.h (VERBOSE_SKELETON): Replaces SOURCE_FRONTEND_DEBUG
17911 define.
17912 (JNULLP_TYPE_P, CHECK_METHODS, CHECK_DEPRECATED, REGISTER_IMPORT):
17913 New macros
17914 (struct parser_ctxt): New fields: deprecated,
17915 current_parsed_class_un, gclass_list.
17916 (fix_method_argument_names, issue_warning_error_from_context,
17917 resolve_package, lookup_package_type): New function prototypes.
17918 (resolve_expression_name): Fixed function prototype.
17919 (find_applicable_accessible_methods_list): Fixed indentation, added
17920 extra argument in prototype.
17921 (check_final_assignment, build_null_of_type, check_deprecation,
17922 check_method_redefinition, reset_method_name,
17923 java_check_regular_methods, java_check_abstract_methods,
17924 maybe_build_primttype_type_ref): New function prototype.
17925 * parse.y (conver.h): Include.
17926 (INSTANCEOF_TK): Tagged <operator>.
17927 (single_type_import_declaration): Use REGISTER_IMPORT macro.
17928 (relational_expression:): Build binop for instanceof.
17929 (java_push_parser_context): Remember ctxp->gclass_list across
17930 contexts.
17931 (java_pop_parser_context): Simply return if no context
17932 exists. Remember gclass_list across contexts.
17933 (issue_warning_error_from_context): New function.
17934 (parse_error_context): Don't setup ctxp->elc here. Call
17935 issue_warning_error_from_context instead.
17936 (parse_warning_context): Likewise.
17937 (maybe_create_class_interface_decl): Removed DECL_ARTIFICIAL
17938 setup. Link new class/interface to ctxp->gclass_list.
17939 (add_superinterfaces): Register interface as incomplete if not
17940 loaded.
17941 (create_class): Remember class unqualified name in
17942 ctxp->current_parsed_class_un. Check class deprecation.
17943 (register_fields): Check field deprecation. Remember static final
17944 field value in DECL_LOCAL_STATIC_VALUE. Changed comment in part
17945 processing INIT.
17946 (method_header): New local variable ORIG_ARG. Use unqualified
17947 current class name for check on constructor errors. Promote return
17948 type if of record type. Argument list fix moved in
17949 fix_method_argument_names, called here. Check method deprecation.
17950 (fix_method_argument_names): New function.
17951 (method_declarator): Promote record typed arguments.
17952 (safe_layout_class): Check class methods before layout.
17953 (java_complete_class): Compute field layout when patched.
17954 (do_resolve_class): Try to load class after having it renamed
17955 after the package name.
17956 (get_printable_method_name): Use DECL_CONTEXT.
17957 (reset_method_name): New function.
17958 (check_method_redefinition): Use reset_method_name.
17959 (java_check_regular_methods): New local variable
17960 SAVED_FOUND_WFL. Temporarily reinstall overriding/hiding method
17961 names for error report. Check for compile-time error when method
17962 found has default (package) access.
17963 (java_check_abstract_methods): Now takes an interface DECL node as
17964 an argument. Also reinstall real name on unchecked
17965 overriding/hiding methods for error report.
17966 (java_check_methods): Fixed leading comment. Get classes to verify
17967 from ctxp->gclass_list. Use CHECK_METHODS macro and set
17968 CLASS_METHOD_CHECKED_P on class verification.
17969 (lookup_java_method2): Get real method name if necessary.
17970 (find_in_imports): Don't check package class access here.
17971 (resolve_package, lookup_package_type): New functions.
17972 (java_layout_classes): Fixed leading comment. Take classes to be
17973 laid out from ctxp->gclass_list.
17974 (java_complete_expand_methods): Don't expand native and abstract
17975 methods.
17976 (java_expand_classes): New function.
17977 (resolve_expression_name): Use additional argument ORIG. Retrieve
17978 values of static final field of primitive types.
17979 (resolve_field_access): Handles static final field of promotive
17980 type.
17981 (resolve_qualified_expression_name): Handle STRING_CST as
17982 primaries and package name resolution. Check deprecation on found
17983 decls. Set where_found and type_found on non static field resolved
17984 during qualification. Layout non primitive field decl types.
17985 (check_deprecation): New function.
17986 (maybe_access_field): Simplified.
17987 (patch_method_invocation_stmt): Local variable CLASS_TYPE
17988 removed. Reverse method's argument when primary is a type. Don't
17989 use CLASS_TYPE to report problems, use IDENTIFIER_WFL
17990 instead. Include abstract class in the list of class searchable
17991 for constructors. Use DECL_CONTEXT of found method for access
17992 checks. Check method deprecation.
17993 (patch_invoke): Pay extra care to NEW_CLASS_EXPR type call when
17994 converting arguments. Handle INVOKE_INTERFACE.
17995 (lookup_method_invoke): Search constructor using existing
17996 infrastructure (don't rely on lookup_java_constructor anymore).
17997 (find_applicable_accessible_methods_list): Extra argument flag
17998 LC. Now include constructor in the search.
17999 (qualify_ambiguous_name): Conditional expression are primaries.
18000 (not_initialized_as_it_should_p): static final are always
18001 initialized.
18002 (java_complete_tree): Pass extra NULL argument to
18003 resolve_expression_name. Stricter test to carry on patching
18004 assignments. New case for INSTANCEOF_EXPR.
18005 (complete_function_arguments): Inline PRIMTYPE.TYPE read access.
18006 (check_final_assignment, maybe_build_primttype_type_ref): New
18007 functions.
18008 (patch_assignment): Detect resolved static finals and carry normal
18009 assignment error check on them. Inline PRIMTYPE.TYPE read access.
18010 (try_builtin_assignconv): Access constant 0 on all primitive
18011 types.
18012 (valid_builtin_assignconv_identity_widening_p): Accept identical
18013 types. Accept all promoted type on int type.
18014 (valid_ref_assignconv_cast_p): Accept a null pointer to be
18015 assigned to a reference.
18016 (valid_method_invocation_conversion_p): Accept to check null
18017 pointers.
18018 (build_binop): Merge declaration and initialization of local
18019 variable BINOP.
18020 (patch_binop): New case for INSTANCEOF_EXPR. NE_EXPR to accept all
18021 numeric types. Improved validity test for qualify operators on
18022 references.
18023 (patch_unaryop): Broadened rejection test for PREDECREMENT_EXPR
18024 and PREINCREMENT_EXPR. Also detect resolved static finals of a
18025 primitive type and issue the appropriate error message.
18026 (resolve_type_during_patch): Mark class loaded when resolved.
18027 (patch_cast): Allow null to be cased to reference types.
18028 (build_null_of_type): New function.
18029 (patch_array_ref): Handle array on references correctly.
18030 (patch_return): Removed unused local variable MODIFY. Force
18031 boolean to be returned as integers. Allows null to be returned by
18032 a function returning a reference.
18033 * typeck.c (convert_to_integer, convert_to_real,
18034 convert_to_pointer): Prototypes moved to convert.h
18035 (lookup_argument_method): Use method real name, if necessary.
18036
18037 1998-10-30 Tom Tromey <tromey@cygnus.com>
18038
18039 * class.c (build_class_ref): Changed name of primitive classes to
18040 start with `_Jv_'.
18041
18042 * class.c (make_class_data): Renamed fields: nmethods to
18043 method_count, method_count to dtable_method_count. Always set
18044 `state' field to 0.
18045 * decl.c (init_decl_processing): Likewise.
18046
18047 1998-10-28 Alexandre Petit-Bianco <apbianco@cygnus.com>
18048
18049 * class.c (layout_class): Don't mangle <finit>, produce
18050 __finit<class> instead. Don't verify artificial methods.
18051 * decl.c (finit_identifier_node): New declared global.
18052 (init_decl_processing): finit_identifier_node initialized.
18053 * java-tree.def (CONDITIONAL_EXPR): New Java tree code.
18054 * java-tree.h (finit_identifier_node): Declared as extern.
18055 (struct lang_decl): New field called_constructor.
18056 (DECL_CONSTRUCTOR_CALLS): Access macro to called_constructor.
18057 (CLASS_HAS_FINIT_P): New macro.
18058 (CALL_CONSTRUCTOR_P): Leading comment changed. Macro now checks
18059 explicit constructor invocation.
18060 (CALL_EXPLICIT_CONSTRUCTOR_P, CALL_THIS_CONSTRUCTOR_P,
18061 CALL_SUPER_CONSTRUCTOR_P): New macros.
18062 (write_classfile): Added prototype.
18063 * jcf-parse.c (jcf_parse_source): Parse and remember for
18064 generation if the file was seen on the command line.
18065 (parse_source_file): Don't write the class file here.
18066 (yyparse): Loop on files rewritten. Set current_jcf.
18067 (parse_zip_file_entries): Parse class file only if it was found.
18068 * lang.c (init_parse): Don't open command line provided filename
18069 here.
18070 (lang_parse): Don't set main_jcf anymore.
18071 * parse.h (ABSTRAC_CHECK): Capitalized arguments.
18072 (JCONSTRUCTOR_CHECK): New macro.
18073 (JBSC_TYPE_P): New macro.
18074 (IN_TRY_BLOCK_P, EXCEPTIONS_P): Fixed leading comment.
18075 (COMPLETE_CHECK_OP_2): New macro.
18076 (struct parse_ctxt): New field explicit_constructor_p.
18077 (check_class_interface_creation): Fixed prototype indentation.
18078 (patch_method_invocation_stmt): Prototype reflects added argument.
18079 (patch_invoke): Likewise.
18080 (complete_method_declaration, build_super_invocation,
18081 verify_constructor_circularity,
18082 build_this_super_qualified_invocation, get_printable_method_name,
18083 patch_conditional_expr, maybe_generate_finit, fix_constructors,
18084 verify_constructor_super, create_artificial_method,
18085 start_artificial_method_body, end_artificial_method_body,
18086 generate_field_initialization_code): New function prototypes.
18087 * parse.y: Fixed leading comment
18088 (constructor_header:, constructor_body:, block_end:): Rules tagged
18089 <node>.
18090 (type_declaration:): Call maybe_generate_finit.
18091 (method_declaration:): Action for method_body: placed in new
18092 function complete_method_declaration, called here.
18093 (constructor_declaration:): Defined actions. Removed leading
18094 FIXME.
18095 (constructor_header:): New rule with action.
18096 (constructor_body:): Rule rewritten using block_begin: and
18097 block_end:. Defined actions.
18098 (constructor_declarator:, explicit_constructor_invocation:):
18099 Defined actions.
18100 (block:): Use new rules block_begin: block_end:.
18101 (block_begin:, block_end:): New rules and actions.
18102 (block_statements:): Fixed error message for explicit
18103 constructors.
18104 (method_invocation:): Call build_this_super_qualified_invocation
18105 if primary is `this' or `super' was seen.
18106 (conditional_expression:): Action defined.
18107 (extra_ctxp_pushed_p): New static global flag.
18108 (java_parser_context_save_global): Create parser context if
18109 necessary. Use extra_ctxp_pushed_p to remember it.
18110 (java_parser_context_restore_global): Pop extra parser context if
18111 one exists.
18112 (build_array_from_name): Array on primitive types are marked
18113 loaded.
18114 (register_fields): Restore new name in field initializer
18115 expression if type was altered. Non static fields initialized upon
18116 declaration marked initialized.
18117 (maybe_generate_finit): New function.
18118 (maybe_generate_clinit): Use create_artificial_method,
18119 start_artificial_method_body, end_artificial_method_body. Generate
18120 debug info for enclosed initialization statements.
18121 (method_header): Fixed leading comment. Check constructor
18122 flags. Detect constructor declarations and set DECL_CONSTRUCTOR_P
18123 accordingly.
18124 (complete_method_declaration, constructor_circularity_msg,
18125 verify_constructor_circularity): New functions.
18126 (get_printable_method_name): New function.
18127 (check_method_redefinition): Don't rename <finit> methods. Fix
18128 declared constructor names. Error message for
18129 constructors modified.
18130 (java_check_regular_methods): Local variable seen_constructor
18131 renamed saw_constructor. Skip verification on constructors. Create
18132 default constructor with create_artificial_method.
18133 (java_check_methods): Removed unnecessary empty line.
18134 (create_artificial_method, start_artificial_method_body,
18135 end_artificial_method_body): New functions.
18136 (java_layout_classes): Changed leading comment. Reverse fields
18137 list if necessary. Always layout java.lang.Object if being
18138 defined.
18139 (java_complete_expand_methods): Verify constructor circularity.
18140 (java_complete_expand_method): Call fix_constructor on
18141 constructors. Local variable no_ac_found removed. Restore
18142 bindings if method body expansion failed.
18143 (fix_constructors, verify_constructor_super,
18144 generate_field_initialization_code): New function.
18145 (java_expand_classes): Fixed leading comment. Write class file
18146 here.
18147 (resolve_expression_name): Check for illegal instance variable
18148 usage within the argument scope of an explicit constructor
18149 invocation.
18150 (resolve_qualified_expression_name): Pass extra from_super flag
18151 when invoking patch_method_invocation_stmt. New case for
18152 conditional expression when used as a primary. Check for error
18153 when acquiring super.
18154 (patch_method_invocation_stmt): Added extra argument super. New
18155 local variable is_static_flag. Set class_to_search according to
18156 the nature of the constructor invocation. Don't add `this'
18157 argument when expanding NEW_CLASS_EXPR. Check for illegal method
18158 invocation within the argument scope of explicit constructor
18159 invocation. Set is_static according to is_static_flag. Provide
18160 extra `super' argument to patch_invoke invocation.
18161 (patch_invoke): New argument from_super. Loop on arguments
18162 indentation fixed. Pass from_super to invocation_mode. New switch
18163 case INVOKE_SUPER. Fixed error message in switch default case.
18164 Don't use CALL_CONSTRUCTOR_P but rather a test on the tree node
18165 value.
18166 (invocation_mode): Return INVOKE_SUPER mode when appropriate.
18167 (lookup_method_invoke): Fixed prototypes in candidates list. Error
18168 message takes constructors into account.
18169 (find_applicable_accessible_methods_list): Fixed indentation.
18170 (qualify_ambiguous_name): Take explicit constructor invocation
18171 into account. Deal with a conditional expression as a primary to
18172 a method call.
18173 (java_complete_tree): Added local wfl_op3. New CONDITIONAL_EXPR
18174 case. Added extra argument to patch_method_invocation_stmt.
18175 Register calls made to explicit constructor `this'. Don't call
18176 save_expr in ARRAY_REF case when emitting class files. Check for
18177 illegal use of this when expanding explicit constructor invocation
18178 arguments.
18179 (complete_function_arguments): Set and reset parser context
18180 explicit_constructor_p field value when appropriate.
18181 (build_super_invocation, build_this_super_qualified_invocation):
18182 New functions.
18183 (patch_assignment): Fixed typo.
18184 (patch_unaryop): Check on final fields occurs only when a decl
18185 exits.
18186 (patch_return): Take constructors into account.
18187 (patch_conditional_expr): New function.
18188 * typeck.c (build_java_signature): Removed unnecessary empty line.
18189
18190 1998-10-28 Jeffrey A Law (law@cygnus.com)
18191
18192 * Makefile.in (jcf-dump, gcjh): Link in $(LIBS) too.
18193
18194 1998-10-28 Tom Tromey <tromey@cygnus.com>
18195
18196 * decl.c (init_decl_processing): Renamed fields.
18197 * class.c (make_class_data): Renamed bfsize, nfields, nsfields,
18198 interface_len, msize fields.
18199
18200 * class.c (make_class_data): Removed subclass_head and
18201 subclass_next fields.
18202 * decl.c (init_decl_processing): Removed subclass_head and
18203 subclass_next fields.
18204
18205 1998-10-28 Jeffrey A Law (law@cygnus.com)
18206
18207 * jcf-write.c (emit_load_or_store): Avoid implicit int arguments.
18208 * mangle.c (emit_unicode_mangled_name): Similarly.
18209
18210 1998-10-26 Nick Clifton <nickc@cygnus.com>
18211
18212 * jcf-parse.c (get_constant): Place braces around code to compute
18213 'd' when REAL_ARITHMETIC is not defined.
18214
18215 1998-10-25 H.J. Lu (hjl@gnu.org)
18216
18217 * Make-lang.in (jv-scan$(exeext)): Add stamp-objlist to
18218 dependency.
18219
18220 1998-10-23 Tom Tromey <tromey@cygnus.com>
18221
18222 * lang-specs.h: `.zip' files are input to jc1.
18223
18224 1998-10-22 Per Bothner <bothner@cygnus.com>
18225
18226 * jvspecs.c: Add (but don't enable) support for combining multiple
18227 .class and .java input filenames to a single jc1 invocation.
18228 Add support for -C flag (copile to .class files).
18229 Translate -classpath and -CLASSPATH arguments.
18230 * lang-specs.h: Don't set %2 spec.
18231
18232 1998-10-22 Tom Tromey <tromey@cygnus.com>
18233
18234 * jcf-path.c (add_entry): Don't add trailing separator if entry is
18235 a .zip file.
18236 (add_path): Don't add trailing separator to non-empty path
18237 elements.
18238
18239 * lang.c (lang_decode_option): Check for -fclasspath and
18240 -fCLASSPATH before examining other `-f' options.
18241
18242 * java-tree.h (finalize_identifier_node): Don't declare.
18243 * class.c (make_class_data): Don't push "final" field.
18244 * decl.c (init_decl_processing): Don't push "final" field.
18245 (finalize_identifier_node): Removed.
18246 (init_decl_processing): Don't set finalize_identifier_node.
18247
18248 * config-lang.in (stagestuff): Added jcf-dump and jv-scan.
18249
18250 1998-10-11 Anthony Green <green@cygnus.com>
18251
18252 * Make-lang.in (java): Depend on jcf-dump and jv-scan.
18253 (JV_SCAN_SOURCES): New macro.
18254 (JCF_DUMP_SOURCES): Likewise.
18255 (jcf-dump$(exeext)): New target.
18256 (jv-scan$(exeext)): New target.
18257
18258 1998-10-22 Tom Tromey <tromey@cygnus.com>
18259
18260 * Makefile.in (LEX): Removed.
18261 (LEXFLAGS): Likewise.
18262 (SET_BISON): New macro.
18263 (BISON): Removed.
18264 ($(PARSE_C)): Use SET_BISON. Run bison from srcdir to avoid
18265 spurious diffs in parse.c.
18266 ($(PARSE_SCAN_C)): Likewise.
18267 (PARSE_DIR): New macro.
18268 (PARSE_C): Use it.
18269 (PARSE_SCAN_C): Likewise.
18270 (PARSE_RELDIR): New macro.
18271
18272 * jcf-io.c (saw_java_source): Define here, not in jcf-parse.c.
18273
18274 * jcf-io.c (find_class): Use saw_java_source to determine when to
18275 look for `.java' file.
18276 * jcf-parse.c (saw_java_source): New global.
18277 (yyparse): Set it if `.java' file seen.
18278
18279 * Make-lang.in (JAVA_SRCS): Added jcf-path.c.
18280 (GCJH_SOURCES): Likewise.
18281 * Makefile.in (datadir): New macro.
18282 (libjava_zip): Likewise.
18283 (JAVA_OBJS): Added jcf-path.o.
18284 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
18285 (../gcjh$(exeext)): Likewise.
18286 (jcf-path.o): New target.
18287 * java-tree.h (fix_classpath): Removed decl.
18288 * jcf-parse.c (fix_classpath): Removed.
18289 (load_class): Don't call fix_classpath.
18290 * parse.y (read_import_dir): Don't call fix_classpath.
18291 * lex.h: Don't mention classpath.
18292 * lex.c (java_init_lex): Don't initialize classpath.
18293 * jcf-io.c (classpath): Removed global.
18294 (find_class): Use jcf_path iteration functions. Correctly search
18295 class path for .java file.
18296 (open_in_zip): New argument `is_system'.
18297 * jcf-dump.c (main): Call jcf_path_init. Recognize all new
18298 classpath-related options.
18299 * lang.c (lang_decode_option): Handle -fclasspath, -fCLASSPATH,
18300 and -I.
18301 (lang_init): Call jcf_path_init.
18302 * lang-options.h: Mention -I, -fclasspath, and -fCLASSPATH.
18303 * lang-specs.h: Handle -I. Minor cleanup to -M options.
18304 Correctly put braces around second string in each entry.
18305 * gjavah.c (main): Call jcf_path_init. Recognize all the new
18306 classpath-related options.
18307 (help): Updated for new options.
18308 * jcf.h: Declare functions from jcf-path.c. Don't mention
18309 `classpath' global.
18310 * jcf-path.c: New file.
18311
18312 * jcf-depend.c: Include jcf.h.
18313
18314 * jcf-write.c (localvar_alloc): Returns `void'.
18315 (localvar_free): Removed unused variable.
18316
18317 * lang.c (OBJECT_SUFFIX): Define if not already defined.
18318 (init_parse): Use OBJECT_SUFFIX, not ".o".
18319
18320 1998-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
18321
18322 * class.c (emit_register_classes): Renamed from
18323 emit_register_class.
18324 * java-tree.h (emit_register_classes): Prototype renamed from
18325 emit_register_class.
18326 * jcf-parse.c (yyparse): Call emit_register_classes once before
18327 returning.
18328 * parse.y (java_expand_classes): No longer register classes.
18329
18330 1998-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
18331
18332 * class.c (is_compiled_class): New local variable
18333 seen_in_zip. Identify classes found in currently compiled source
18334 file(s).
18335 * decl.c (complete_start_java_method): Fixed typo.
18336 * java-tree.h (CLASS_FROM_CURRENTLY_COMPILED_SOURCE_P,
18337 HAS_BEEN_ALREADY_PARSED_P, IS_A_COMMAND_LINE_FILENAME_P): New macros.
18338 (CLASS_P): Moved around.
18339 (java_parse_abort_on_error): Macro moved from jcf-parse.c
18340 * jcf-parse.c (java_parse_abort_on_error): Macro moved to
18341 java-tree.h
18342 (jcf_parse_source): Changed leading comment. Removed unnecessary
18343 fclose and CLASS_FROM_SOURCE_P marking.
18344 (parse_source_file): New local variables remember_for_generation
18345 and filename. Mark parsed file name identifier node. Removed block
18346 executed when parse_only was null. Set remember_for_generation.
18347 Use it as an argument to java_pop_parser_context.
18348 (yyparse): New local variables several_files, list, next node and
18349 current_file_list. Split ampersand separated file names into
18350 current_file_list. Iterate through the list and parse accordingly.
18351 * parse.h (java_pop_parser_context): New function prototype.
18352 * parse.y (ctxp_for_generation): New static global variable.
18353 (java_pop_parser_context): New argument generate. Link popped ctxp
18354 to ctxp_for_generation list accordingly.
18355 (java_complete_expand_methods): Fixed indentation.
18356 (java_expand_classes): New function.
18357
18358 1998-10-17 Per Bothner <bothner@cygnus.com>
18359
18360 * Makefile.in: Link with libiberty.a instead of memmove.o.
18361
18362 1998-10-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
18363
18364 * lex.c (setjmp.h): No longer included.
18365 * lex.h (setjmp.h): Included.
18366 * parse.h (SET_TYPE_FOR_RESOLUTION): New macro.
18367 (duplicate_declaration_error_p): Renamed from
18368 duplicate_declaration_error.
18369 (build_array_from_name): New function prototype.
18370 * parse.y (setjmp.h): No longer included.
18371 (variable_declarator_id): Define action.
18372 (build_array_from_name): New function.
18373 (duplicate_declaration_error_p): Renamed from
18374 duplicate_declaration_error. Fixed leading comment.
18375 (register_fields): Main `for' loop reorganized. Uses
18376 SET_TYPE_FOR_RESOLUTION and build_array_from_name.
18377 (method_declarator): Uses SET_TYPE_FOR_RESOLUTION and call
18378 build_array_from_name.
18379 (resolve_class): Set CLASS_LOADED_P on newly build array dimension
18380 types.
18381 (read_import_dir): Don't try to skip `.' and `..'.
18382 (declare_local_variables): Uses SET_TYPE_FOR_RESOLUTION and
18383 build_array_from_name. Main `for' loop reorganized.
18384 (resolve_qualified_expression_name): When building access to a
18385 field, use the type where the field was found, not its own type.
18386 (maybe_access_field): Use field DECL_CONTEXT if the type where the
18387 field was found is null.
18388 (qualify_ambiguous_name): Sweep through all successive array
18389 dimensions.
18390
18391 1998-10-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
18392
18393 * java-tree.h (pop_labeled_block, lang_printable_name,
18394 maybe_add_interface, set_super_info, get_access_flags_from_decl,
18395 interface_of_p, inherits_from_p, fix_classpath,
18396 complete_start_java_method, emit_handlers, init_outgoing_cpool,
18397 make_class_data, register_class, alloc_name_constant): New
18398 function prototypes.
18399 * lang.c (lang_decode_option): Set argc argument unused. Fixed
18400 indentation. Added cast to remove warning.
18401 (lang_printable_name): Set v argument unused.
18402 (lang_print_error): Added argument to lang_printable_name call.
18403 (java_dummy_print, print_lang_decl, print_lang_type,
18404 print_lang_identifier, lang_print_xnode): All argument marked
18405 unused.
18406 * lex.c (java_unget_unicode): Removed unnecessary argument.
18407 (java_allocate_new_line): Unused local variable is gone.
18408 (java_read_char): Added parenthesis in expressions to remove
18409 warnings. Added final return statement.
18410 (java_read_unicode): Added parenthesis in expression to remove
18411 warning.
18412 (java_parse_end_comment): Fixed java_unget_unicode invocation.
18413 (java_parse_escape_sequence): Likewise.
18414 (java_lex): Unused local variables are gone. Fixed
18415 java_unget_unicode invocation.
18416 * lex.h (set_float_handler): Prototype added when JC1_LITE not
18417 defined.
18418 * parse.h (ERROR_CANT_CONVERT_TO_BOOLEAN): Fixed
18419 lang_printable_name invocation in macro.
18420 (ERROR_CANT_CONVERT_TO_NUMERIC, ERROR_CAST_NEEDED_TO_INTEGRAL):
18421 Likewise.
18422 (duplicate_declaration_error): Suppressed unused argument in
18423 prototype.
18424 (identical_subpath_p): Function declaration is gone.
18425 (patch_invoke): Suppressed unused argument in prototype.
18426 (patch_cast, build_labeled_block, check_thrown_exceptions):
18427 Likewise.
18428 * parse.y (setjmp.h): Included
18429 (toplev.h): Likewise.
18430 (field_declaration:): Suppressed unused local
18431 (label_decl:): Fixed build_labeled_block invocation.
18432 (java_pop_parser_context): Put extra parenthesis around assignment
18433 in if.
18434 (yyerror): Suppressed unused local variables.
18435 (variable_redefinition_error): Fixed lang_printable_name
18436 invocation.
18437 (create_interface): Suppressed unused local variables.
18438 (create_class): Likewise.
18439 (duplicate_declaration_error): Suppressed unused argument. Fixed
18440 lang_printable_name invocation.
18441 (register_fields): Suppressed unused local variable. Fixed
18442 duplicate_declaration_error invocation.
18443 (method_header): Suppressed unused local variable.
18444 (method_declarator, parser_check_super): Likewise.
18445 (java_complete_class): Suppressed unused local variable. Fixed
18446 fatal error message.
18447 (complete_class_report_errors): Added default: in switch.
18448 (java_check_regular_methods): Fixed lang_printable_name
18449 invocations.
18450 (check_throws_clauses): Likewise.
18451 (java_check_abstract_methods): Suppressed unused local
18452 variable. Fixed lang_printable_name invocation.
18453 (read_import_entry): Added supplemental return statement.
18454 (read_import_dir): Suppressed unused local variables.
18455 (check_pkg_class_access, declare_local_variables): Likewise.
18456 (source_start_java_method): Suppressed unused extern variable
18457 declarations
18458 (expand_start_java_method): Suppressed unused extern and local
18459 variable declarations.
18460 (java_complete_expand_methods): Likewise.
18461 (java_complete_expand_method): Suppressed unused local variables.
18462 (make_qualified_name): Likewise.
18463 (resolve_qualified_expression_name): Added default: in
18464 switch. Fixed lang_printable_name invocation.
18465 (class_instance_creation_expression): Added parenthesis around
18466 expressions.
18467 (patch_method_invocation_stmt): Fixed lang_printable_name and
18468 patch_invoke invocations.
18469 (check_for_static_method_reference): Fixed lang_printable_name
18470 invocation.
18471 (patch_invoke): Suppressed unused arguments and local variables.
18472 (lookup_method_invoke): Suppressed unused local variables.
18473 (qualify_ambiguous_name): Added default: in switch.
18474 (identical_subpath_p): Function removed.
18475 (patch_assignment): Suppressed unused local variables. Suppressed
18476 unnecessary if statement. Fixed lang_printable_name invocations.
18477 (try_builtin_assignconv): Fixed lang_printable_name invocations.
18478 (valid_ref_assignconv_cast_p): Parenthesis around
18479 expression. Suppressed unused local variables.
18480 (build_binop): Suppressed unused local variables. fixed
18481 lang_printable_name invocations.
18482 (string_constant_concatenation): Suppressed unused local
18483 variables.
18484 (patch_unaryop): Fixed lang_printable_name invocation.
18485 (patch_cast): Suppressed unnecessary argument. Fixed
18486 lang_printable_name invocation.
18487 (patch_array_ref): Fixed lang_printable_name invocation.
18488 (patch_newarray, patch_return, patch_if_else_statement): Likewise.
18489 (build_labeled_block): Suppressed unused argument.
18490 (generate_labeled_block): Fixed build_labeled_block invocation.
18491 (build_loop_body): Suppressed unused local variables.
18492 (patch_loop_statement): Likewise.
18493 (patch_exit): Fixed lang_printable_name invocation.
18494 (patch_switch_statement): Likewise.
18495 (case_identity): First argument marked unused.
18496 (patch_try_statement): Fixed lang_printable_name invocations.
18497 (patch_synchronized_statement, patch_throw_statement): Likewise.
18498 (check_thrown_exceptions): Fixed check_thrown_exceptions and
18499 lang_printable_name invocations.
18500 (check_thrown_exceptions_do): Suppressed unused argument.
18501
18502 1998-10-14 Tom Tromey <tromey@cygnus.com>
18503
18504 * jcf-write.c (write_classfile): Add output class file as target.
18505 * lang-options.h: Added -MD, -MMD, -M, and -MM.
18506 * jcf.h: Added declarations for dependency-tracking functions.
18507 * lang-specs.h: Handle -M, -MM, MD, and -MMD.
18508 * lang.c (lang_decode_option): Recognize -MD and -MMD.
18509 (finish_parse): Call jcf_dependency_write.
18510 (dependency_tracking): New global.
18511 (DEPEND_SET_FILE): New define.
18512 (DEPEND_ENABLE): New define.
18513 (init_parse): Enable dependency tracking if required.
18514 Include "flags.h".
18515 * Makefile.in (JAVA_OBJS): Added jcf-depend.o.
18516 (../jcf-dump$(exeext)): Depend on and link with jcf-depend.o.
18517 (../gcjh$(exeext)): Likewise.
18518 (jcf-depend.o): New target.
18519 * Make-lang.in (JAVA_SRCS): Added jcf-depend.c.
18520 (GCJH_SOURCES): Likewise.
18521 * jcf-io.c (open_class): Call jcf_dependency_add_file. Added
18522 dep_name argument.
18523 (find_classfile): Added dep_name argument.
18524 (find_class): Compute name of dependency.
18525 (open_in_zip): Call jcf_dependency_add_file.
18526 * gjavah.c (output_file): No longer global.
18527 (usage): Don't mention "gjavah".
18528 (help): Likewise.
18529 (java_no_argument): Likewise.
18530 (version): Likewise.
18531 (main): Recognize and handle -M family of options.
18532 (print_mangled_classname): Return is void.
18533 (process_file): Handle case where output is suppressed.
18534 (HANDLE_END_FIELD): Likewise.
18535 (HANDLE_METHOD): Likewise.
18536 * jcf-depend.c: New file.
18537
18538 1998-10-13 Jeffrey A Law (law@cygnus.com)
18539
18540 * java-tree.def: Add missing newline at EOF.
18541
18542 1998-10-13 Tom Tromey <tromey@cygnus.com>
18543
18544 * jcf-dump.c (process_class): Use FATAL_EXIT_CODE, not -1.
18545 (main): Likewise. Exit with SUCCESS_EXIT_CODE at end of
18546 function.
18547 Include <config.h> and "system.h".
18548 (disassemble_method): Undefine RET to avoid clash with
18549 config/i386/i386.h.
18550
18551 1998-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
18552
18553 * decl.c (runtime_exception_type_node, error_exception_type_node):
18554 New global variables.
18555 (init_decl_processing): Initialized.
18556 * expr.c (java_lang_expand_expr): Set caught exception type to
18557 null if catch handler argument doesn't exit.
18558 * java-tree.def (SYNCHRONIZED_EXPR, THROW_EXPR): New Java specific
18559 tree codes.
18560 * java-tree.h (runtime_exception_type_node,
18561 error_exception_type_node): Global variables declared.
18562 (DECL_FUNCTION_THROWS): New macro.
18563 (DECL_FUNCTION_BODY): Modified comment.
18564 (DECL_SPECIFIC_COUNT): Likewise.
18565 (struct lang_decl): New field throws_list.
18566 (IS_UNCHECKED_EXPRESSION_P): New macro.
18567 * lex.c (java_lex): Generate location information for THROW_TK.
18568 * parse.h (PUSH_EXCEPTIONS, POP_EXCEPTIONS, IN_TRY_BLOCK_P,
18569 EXCEPTIONS_P): New macros.
18570 (enum jdep_code): New value JDEP_EXCEPTION.
18571 (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT,
18572 BUILD_ASSIGN_EXCEPTION_INFO, BUILD_THROW, SET_WFL_OPERATOR,
18573 PATCH_METHOD_RETURN_ERROR): New macros.
18574 (patch_method_invocation_stmt): Added new argument to prototype.
18575 (patch_synchronized_statement, patch_throw_statement,
18576 check_thrown_exceptions, check_thrown_exceptions_do,
18577 purge_unchecked_exceptions, check_throws_clauses): New function
18578 prototypes.
18579 * parse.y Fixed typo in keyword section.
18580 (throw:): Rule tagged <node>.
18581 (THROW_TK): Keyword tagged <operator>.
18582 (method_header:): Last argument to call to method_header passed
18583 from throws: rule.
18584 (throws:, class_type_list:, throw_statement:,
18585 synchronized_statement:, synchronized:): Defined actions.
18586 (method_header): New local variable current. Register exceptions
18587 from throws clause.
18588 (java_complete_tree): Complete and verify exceptions from throws
18589 clause.
18590 (complete_class_report_errors): Error message on exceptions not
18591 found
18592 (java_check_regular_methods): Fixed typo. Shortcut on private
18593 overriding methods. Changed error message on method
18594 redefinition. Check for throws clause compatibility.
18595 (check_throws_clauses): New function.
18596 (java_check_abstract_methods): Use DECL_NAME for wfl or current
18597 method. Changed error message on method redefinition.
18598 (currently_caught_type_list): New static variable.
18599 (java_complete_expand_methods): Purge unchecked exceptions from
18600 throws clause list. Call PUSH_EXCEPTIONS before walk and
18601 POP_EXCEPTIONS after.
18602 (resolve_qualified_expression_name): Pass new argument as NULL to
18603 patch_method_invocation_stmt.
18604 (patch_method_invocation_stmt): New argument ref_decl. Invoke
18605 PATCH_METHOD_RETURN_ERROR when returning with error. Reverse
18606 argument list when appropriate. Use new argument if non null to
18607 store selected method decl.
18608 (patch_invoke): Convert if necessary args of builtin types before
18609 forming CALL_EXPR. Argument list no longer reversed here.
18610 (invocation_mode): Treat final methods as static methods.
18611 (java_complete_tree): New cases for THROW_EXPR: and
18612 SYNCHRONIZED_EXPR:. Check thrown exceptions when completing
18613 function call.
18614 (complete_function_arguments): No more RECORD_TYPE
18615 conversion. Function parameter nodes no longer saved.
18616 (valid_ref_assignconv_cast_p): Avoid handling null type.
18617 (patch_binop): Fixed null constant reference handling.
18618 (build_try_statement): Use BUILD_ASSIGN_EXCEPTION_INFO and
18619 BUILD_THROW macros.
18620 (patch_try_statement): Fixed comments. Record caught types in
18621 list, push the list, expand try block and pop the list.
18622 (patch_synchronized_statement, patch_throw_statement,
18623 check_thrown_exceptions, check_thrown_exceptions_do,
18624 purge_unchecked_exceptions): New functions.
18625 * typeck.c (lookup_argument_method): Allow WFL in place of method
18626 DECL_NAME during method definition check
18627
18628 1998-10-09 Tom Tromey <tromey@cygnus.com>
18629
18630 * gjavah.c (decode_signature_piece): New function.
18631 (print_c_decl): Use it. Added `name_override' argument.
18632 (print_method_info): Use name_override argument to print_c_decl.
18633 (seen_fields): Removed.
18634 (print_field_info): Don't update seen_fields.
18635 (struct method_name): New structure.
18636 (method_name_list): New global.
18637 (print_method_info): Add new method to list of methods.
18638 (name_is_method_p): New function.
18639 (print_field_info): If field name has same name as method, then
18640 change field name.
18641 (process_file): Parse methods before fields.
18642 (field_pass): New global.
18643 (HANDLE_END_FIELD): Take field_pass into account.
18644
18645 1998-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18646
18647 * Makefile.in (keyword.h): Add -L KR-C -F ', 0' flags to gperf.
18648 (keyword.h): Regenerate using gperf 2.7.1 (19981006 egcs).
18649
18650 1998-10-03 Anthony Green <green@cygnus.com>
18651
18652 * jvspec.c: Fix bug in jvgenmain_spec patch.
18653
18654 1998-10-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
18655
18656 * Makefile.in (lang.o:): Install dependency on java-tree.def.
18657 * decl.c (soft_exceptioninfo_call_node): New global variable.
18658 (init_decl_processing): Fixed indentation. soft_badarrayindex_node
18659 takes extra integer argument. soft_exceptioninfo_call_node
18660 initialized.
18661 * except.c (java_set_exception_lang_code): New function
18662 (method_init_exceptions): Called here.
18663 (prepare_eh_table_type): New function.
18664 (expand_end_java_handler): Called here.
18665 * expr.c (build_java_throw_out_of_bounds_exception): Now features
18666 one argument. Modified generation of call to
18667 soft_badarrayindex_node to use new argument.
18668 (build_java_arrayaccess): Pass faulty index value to
18669 build_java_throw_out_of_bounds_exception.
18670 (generate_name): New function.
18671 (java_lang_expand_expr): New local variables node, current,
18672 has_finally_p. Expand TRY_EXPR node.
18673 (process_jvm_instruction): Replace top of the stack with thrown
18674 object reference when entering exception handler.
18675 * java-tree.def (TRY_EXPR, CATCH_EXPR, FINALLY_EXPR): New Java
18676 specific tree codes.
18677 * java-tree.h (soft_exceptioninfo_call_node): Declaration of new
18678 global.
18679 (DECL_SPECIFIC_COUNT): New macro.
18680 (prepare_eh_table_type, java_set_exception_lang_code,
18681 generate_name): New function declarations.
18682 (match_java_method): Declaration deleted.
18683 (FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, CATCH_EXPR_GET_EXPR): New
18684 macros.
18685 * lex.c (TRY_TK, CATCH_TK): Generate location information.
18686 * parse.h (redefinition_error, refine_accessible_methods_list,
18687 can_cast_to_p): Function declaration removed.
18688 (classitf_redefinition_error, variable_redefinition_error,
18689 parse_jdk1_1_error, find_applicable_accessible_methods_list,
18690 find_most_specific_methods_list, argument_types_convertible,
18691 enter_a_block, valid_builtin_assignconv_identity_widening_p,
18692 valid_cast_to_p, valid_method_invocation_conversion_p,
18693 try_reference_assignconv, add_stmt_to_compound,
18694 build_jump_to_finally, build_tree_list, patch_try_statement,
18695 java_get_catch_block): New function declarations.
18696 * parse.y (string_buffer_type): Global variable deleted.
18697 (group_of_labels, catches, catch_clause, catch_clause_parameter,
18698 finally): Rules tagged <node>.
18699 (TRY_TK, CATCH_TK): Token tagged <operator>.
18700 (class_body_declaration:, class_member_declaration:,
18701 formal_parameter:, explicit_constructor_invocation:,
18702 interface_member_declaration:, constant_declaration:,
18703 primary_no_new_array:, class_instance_creation_expression:,
18704 array_creation_expression:): Issue error on unsuported JDK1.1
18705 features.
18706 (try_statement:, catches:, finally:): Define actions.
18707 (catch_clause_parameter): New rule.
18708 (catch_clause:): Use new rule catch_clause_parameter.
18709 (parse_jdk1_1_error): New function.
18710 (redefinition_error): Renamed classitf_redefinition_error.
18711 (variable_redefinition_error): New function.
18712 (check_class_interface_creation): Call
18713 classitf_redefinition_error.
18714 (java_complete_tree): Added error message on JDEP_TYPE: case.
18715 (complete_class_report_errors): Fixed indentation.
18716 (declare_local_variables): Call variable_redefinition_error.
18717 (source_end_java_method): Call java_set_exception_lang_code and
18718 emit_handlers where appropriate.
18719 (java_method_add_stmt): Call add_stmt_to_block.
18720 (add_stmt_to_block): New function.
18721 (lookup_method_invoke): Fixed outside comment. new local variable
18722 candicates. Call find_applicable_accessible_methods_list and
18723 find_most_specific_methods_list when searching for a
18724 method. Modified error report to list possible candidates when
18725 applicable.
18726 (find_applicable_accessible_methods_list,
18727 find_most_specific_methods_list, argument_types_convertible): New
18728 function.
18729 (refine_accessible_methods_list): Function deleted.
18730 (java_complete_tree): Handle TRY_EXPR. ARRAY_REF handling: save
18731 expr (if applicable) before calling patch_array_ref.
18732 (build_expr_block): Fixed BLOCK_EXPR_BODY assignment.
18733 (enter_block): Fixed comment.
18734 (enter_a_block): New function.
18735 (patch_assignment): Reorganized. Call try_reference_assignconv for
18736 references. Call valid_cast_to_p instead of can_cast_to_p.
18737 (try_reference_assignconv,
18738 valid_builtin_assignconv_identity_widening_p): New functions.
18739 (valid_ref_assignconv_cast_p): Fixed inverted test on CLASS_FINAL.
18740 (valid_cast_to_p, valid_method_invocation_conversion_p): New
18741 functions.
18742 (build_string_concatenation): Don't resolve StringBuffer.
18743 (patch_cast): Fixed inverted arguments.
18744 (patch_array_ref): Code to save array expr deleted. Call
18745 valid_cast_to_p instead of can_cast_to_p.
18746 (generate_labeled_block): Call generate_name.
18747 (build_jump_to_finally, build_try_statement, java_get_catch_block,
18748 patch_try_statement): New functions.
18749 * typeck.c (match_java_method): Function deleted.
18750
18751 1998-10-02 Anthony Green <green@cygnus.com>
18752
18753 * jvspec.c: jvgenmain_spec uses different temporary file names.
18754
18755 1998-10-02 Anthony Green <green@cygnus.com>
18756
18757 * jvspec.c (lang_specific_driver): Fail if user specifies
18758 --main= when not linking.
18759
18760 1998-09-28 Tom Tromey <tromey@cygnus.com>
18761
18762 * class.c (make_class_data): Push value for `thread' field.
18763 * decl.c (init_decl_processing): Added `thread' field to class.
18764
18765 * class.c (add_field): Always make static fields externally
18766 visible.
18767
18768 1998-09-26 Anthony Green <green@cygnus.com>
18769
18770 * expr.c (build_java_athrow,
18771 build_java_throw_out_of_bounds_exception, expand_invoke,
18772 build_newarray, expand_java_multianewarray, build_java_monitor):
18773 Update comments to reflect _Jv_* function names.
18774
18775 1998-09-25 Per Bothner <bothner@cygnus.com>
18776
18777 * decl.c (complete_start_java_method): DECL_RESULT is always promoted.
18778 * decl.c (start_java_method): Handle PROMOTE_PROTOTYPES target macro.
18779 * parse.y (expand_start_java_method): Likewise.
18780
18781 1998-09-24 Per Bothner <bothner@cygnus.com>
18782
18783 * expr.c (pop_arguments): Handle PROMOTE_PROTOTYPES target macro.
18784
18785 * class.c (push_class): IDENTIFIER_SIGNATURE_TYPE is now POINTER_TYPE.
18786 (add_field): No longer need to convert from RECORD_TYPE to pointer,
18787 * expr.c: Remove no-longer-needed calls to promote_type.
18788 * decl.c (give_name_to_locals): Liekwise.
18789 * jcf-parse.c (get_class_constant): Compensate for new signatures.
18790 * parse.y: Add/remove promote_type calls as appropriate.
18791 * typeck.c (parse_signature_type): Returns POINTER_TYPE for objects.
18792 (parse_signature_string): Likewise.
18793 (build_java_array_type): Fix for now signature convenions.
18794
18795 * lex.c (java_lex): Fix (from Alex) for JC1_LITE problem.
18796
18797 1998-09-23 Tom Tromey <tromey@cygnus.com>
18798
18799 * class.c (init_class_processing): libjava function renamed to
18800 _Jv_RegisterClass.
18801
18802 1998-09-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
18803
18804 * expr.c (java_lang_expand_expr): New case for SWITCH_EXPR.
18805 * java-tree.def: Fixed DEFTREECODE third argument.
18806 (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
18807 CASE_EXPR, DEFAULT_EXPR): New tree codes for Java.
18808 * java-tree.h: (IS_CRAFTED_STRING_BUFFER_P): New macro.
18809 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
18810 JAVA_THIS_EXPR): Now replaced by tree code definitions.
18811 (CALL_CONSTRUCTOR_P): Now uses NEW_CLASS_EXPR.
18812 * lang.c (java_tree_code_type, java_tree_code_length,
18813 java_tree_code_name): New arrays.
18814 (lang_init): Append Java tree node definitions to Gcc ones.
18815 * lex.c (expression_obstack): Declared as extern when JC1_LITE
18816 defined.
18817 (java_init_lex): Initialize wfl_append, wfl_string_buffer,
18818 wfl_to_string.
18819 (java_lex): Allow declaration of empty string constants. Retain
18820 location information on CASE_TK and DEFAULT_TK.
18821 * parse.h (JFLOAT_TYPE_P, JINTEGRAL_TYPE_P, JNUMERIC_TYPE_P,
18822 JPRIMITIVE_TYPE_P, JSTRING_TYPE_P, JSTRING_P, JREFERENCE_TYPE_P):
18823 Modified to be more robust.
18824 (BUILD_APPEND, BUILD_STRING_BUFFER): New macros.
18825 (build_new_invocation, try_builtin_assignconv,
18826 patch_switch_statement, string_constant_concatenation,
18827 build_string_concatenation, patch_string_cst, patch_string,
18828 java_expand_switch): New function declarations.
18829 * parse.y: Rules related to switch and EH tagged <node>.
18830 (label_id): Set to NULL_TREE
18831 (wfl_string_buffer, wfl_append, wfl_to_string): New static global
18832 tree nodes.
18833 (this_or_super:): Fixed indentation.
18834 (statement:, statement_nsi:, statement_without_trailing_substatement:,
18835 statement_expression:): Removed call to RULE on all sub-rules.
18836 (switch_expression:, switch_labels:): New rules.
18837 (switch_statement:, switch_block:, switch_block_statement_groups:,
18838 switch_block_statement_group:, switch_labels:, switch_label:):
18839 Defined actions.
18840 (throw_statement:, synchronized_statement:, try_statement:):
18841 Defined temporary actions.
18842 (class_instance_creation_expression:): Call
18843 build_new_invocation. Fixed indentation.
18844 (field_access): Fixed indentation.
18845 (method_invocation): Likewise.
18846 (make_qualified_primary): Use THIS_EXPR.
18847 (resolve_qualified_expression_name): Use NEW_CLASS_EXPR. When
18848 resolving from SUPER, set *type_found.
18849 (qualify_ambiguous_name): Use NEW_CLASS_EXPR.
18850 (java_complete_tree): Removed unused local variable `location'. Case
18851 for SWITCH_EXPR, sharing code with LOOP_EXPR. Use NEW_ARRAY_EXPR,
18852 NEW_CLASS_EXPR, UNARY_PLUS_EXPR and THIS_EXPR. New string handling
18853 on MODIFY_EXPR: and all binary operator tree code cases. Removed
18854 STRING_CST: case. default: checks for patchable strings.
18855 (complete_function_arguments): Transform string constant or
18856 crafted StringBuffer if necessary.
18857 (build_method_invocation): Fixed comments.
18858 (build_new_invocation): New function.
18859 (patch_assignment): Call try_builtin_assignconv to figure a valid
18860 assignment conversion between builtin types.
18861 (try_builtin_assignconv): New function.
18862 (build_binop): Use URSHIFT_EXPR directly to call build.
18863 (operator_string): Use UNARY_PLUS_EXPR.
18864 (patch_binop): Use UNARY_PLUS_EXPR. Handle string concatenation
18865 operator.
18866 (do_merge_string_cste, merge_string_cste,
18867 string_constant_concatenation, build_string_concatenation,
18868 patch_string, patch_string_cst): New function.
18869 (build_unary_op): Use UNARY_PLUS_EXPR and CONVERT_EXPR.
18870 (patch_unaryop): Likewise. New test of valid ++/-- operands.
18871 (build_newarray_node): Use NEW_ARRAY_EXPR.
18872 (build_this): Use THIS_EXPR.
18873 (build_return): Enable debug information on return statement.
18874 (build_if_else_statement): Likewise.
18875 (complete_labeled_statement): Fixed related comment.
18876 (build_loop_body): Fixed comment.
18877 (build_bc_statement): Enable debug information on break/continue
18878 statements.
18879 (patch_bc_statement): Fixed typos. Handle SWITCH statement
18880 context.
18881 (patch_switch_statement, case_identity, java_expand_switch): New
18882 functions.
18883
18884 1998-09-21 Per Bothner <bothner@cygnus.com>
18885
18886 * buffer.h (BUFFER_INIT): New macro.
18887 * jcf-write.c (struct jcf_partial): New type. Put global stuff here.
18888 Pass (struct jcf_partial *state) to most functions.
18889 (jcf_block, jcf_relocation): New types.
18890 Support labels, branches, conditionals, loops.
18891
18892 1998-09-21 Tom Tromey <tromey@cygnus.com>
18893
18894 * decl.c (INT_TYPE_SIZE): Define as BITS_PER_WORD if not defined.
18895
18896 1998-09-21 Per Bothner <bothner@cygnus.com>
18897
18898 * decl.c (integer_type_node): Make it have INT_TYPE_SIZE.
18899 * verify.c (verify_jvm_instructions): Use int_type_not (32 bits),
18900 not integer_type_node (INT_TYPE_SIZ bits).
18901
18902 * parse.y (patch_if_else_statement): Accept promoted_boolean_type_node.
18903
18904 * jcf-reader.c (get_attribute): New HANDLE_EXCEPTION_TABLE hook.
18905 * jcf-dump.c (print_exception_table): New function.
18906 (disassemble_method): Better handling of wide instructions.
18907 Make more robust for bad input.
18908
18909 1998-09-30 Jeffrey A Law (law@cygnus.com)
18910
18911 * jcf-write.c (OP2, OP4): Use "_i", not "_I" to avoid problems on
18912 FreeBSD.
18913
18914 1998-09-17 Jeffrey A Law (law@cygnus.com)
18915
18916 * Makefile.in (jcf-dump, jvgenmain): Link in memmove.o too.
18917
18918 1998-09-17 Tom Tromey <tromey@cygnus.com>
18919
18920 * Makefile.in ($(PARSE_H)): Removed target.
18921
18922 1998-09-17 Jeffrey A Law (law@cygnus.com)
18923
18924 * Makefile.in (JAVA_OBJS): Add memmove.o
18925 (memmove.o): New target & rules.
18926
18927 1998-09-15 Tom Tromey <tromey@cygnus.com>
18928
18929 * expr.c (expand_invoke): Don't generate a call to the class init
18930 code.
18931
18932 1998-09-14 Jeffrey A Law (law@cygnus.com)
18933
18934 * Makefile.in: Add many missing dependencies.
18935 * buffer.c, class.c, constants.c, decl.c: Use system.h and toplev.h
18936 as appropriate.
18937 * except.c, expr.c, jcf-io.c jcf-parse.c, jcf-write.c: Likewise.
18938 * jvgenmain.c lang.c mangle.c typeck.c verify.c: Likewise.
18939
18940 1998-09-11 Per Bothner <bothner@cygnus.com>
18941
18942 * decl.c (complete_start_java_method): If method is static (and
18943 not private) call _Jv_InitClass.
18944 * expr.c (expand_invoke): Don't call build_class_init.
18945
18946 * jvspec.c (jvgenmain_spec): Fix spec for generated .o file.
18947
18948 1998-09-10 Jeffrey A Law (law@cygnus.com)
18949
18950 * Make-lang.in (GCJ): Define before using.
18951
18952 1998-09-09 Jeffrey A Law (law@cygnus.com)
18953
18954 * gjavah.c (java_no_argument): Renamed from no_argument to avoid
18955 losing due to namespace pollution in GNU getopt.h
18956
18957 1998-09-09 Tom Tromey <tromey@cygnus.com>
18958
18959 * Make-lang.in (java.all.build): Don't mention jvgenmain or gcjh.
18960 (java.all.cross): Likewise.
18961 (java.rest.encap): Likewise.
18962
18963 1998-09-08 Jeffrey A Law (law@cygnus.com)
18964
18965 * gjavah.c (print_class_decls): Fix thinko in arglist
18966 * jcv-io.c (find_classfile): Similarly.
18967
18968 1998-09-07 Jeffrey A Law (law@cygnus.com)
18969
18970 * Makefile.in (INCLUDES): Update for recent toplevel gcc changes.
18971
18972 1998-09-05 Tom Tromey <tromey@cygnus.com>
18973
18974 * Make-lang.in (java.maintainer-clean): Don't remove parse.h.
18975 (java.mostlyclean): Remove parse.c and parse-scan.c, not parse.h.
18976 * Makefile.in (PARSE_C): New macro.
18977 (PARSE_H): Likewise.
18978 (PARSE_SCAN_C): Likewise.
18979 ($(PARSE_C)): Target renamed from parse.c.
18980 ($(PARSE_SCAN_C)): Target renamed from parse-scan.c.
18981 (clean): Remove parse-scan.c as well.
18982 (parse.o): Depend on $(PARSE_C).
18983
18984 1998-09-05 Anthony Green <green@cygnus.com>
18985
18986 * README, license.terms: Removed.
18987
18988 * Make-lang.in, Makefile.in, class.c, config-lang.in, constants.c,
18989 decl.c, except.c, expr.c, gjavah.c, java-except.h, java-tree.h,
18990 javaop.def, javaop.h, jcf-dump.c, jcf-io.c, jcf-parse.c,
18991 jcf-reader.c, jcf-write.c, jcf.h, jvgenmain.c, jvspec.c,
18992 keyword.gperf, keyword.h, lang-options.h, lang-specs.h, lang.c,
18993 lex.c, lex.h, mangle.c, parse-scan.y, parse.h, parse.y, typeck.c,
18994 verify.c, zextract.c, zipfile.h: Fixed copyright assignment,
18995 and Java trademark attribution.
18996
18997 1998-09-04 Tom Tromey <tromey@cygnus.com>
18998
18999 * Makefile.in: Use gcjh, not gjavah.
19000 * config-lang.in (stagestuff): Use gcjh, not gjavah.
19001 * Make-lang.in: Changed gjavah to gcjh everywhere.
19002
19003 1998-09-03 Per Bothner <bothner@cygnus.com>
19004
19005 * gjavah.c: Support new -prepend -add -append flags.
19006 (print_method_info): Method is not virtual if class is final.
19007
19008 1998-09-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
19009
19010 * jv-scan.c: Fixed copyright assignment.
19011 * keyword.gperf: Likewise.
19012 * keyword.h: Likewise.
19013 * lex.c: Fixed copyright assignment.
19014 (java_lex): Push unicode back when parsing '<'.
19015 * lex.h: Fixed copyright assignment.
19016 * parse-scan.y: Likewise.
19017 * parse.h: Fixed copyright assignment.
19018 (build_debugable_stmt, complete_for_loop): New function prototypes.
19019 * parse.y: Fixed copyright assignment.
19020 (for_statement:): Call complete_for_loop. Set EXIT_EXPR to be
19021 size_zero_node when completing a loop with no exit condition.
19022 (for_statement_nsi:): Define action.
19023 (for_init:, for_update:): Return size_zero_node when empty.
19024 (declare_local_variables): Call build_debugable_stmt.
19025 (build_debugable_stmt): New function.
19026 (build_loop_body): Build debugable statement around loop
19027 condition part.
19028 (complete_loop_body): Take into account the debugable statement
19029 around the EXIT_EXPR.
19030 (complete_loop_body): New function.
19031 (patch_exit_expr): Fixed condition inversion.
19032
19033 1998-09-02 Tom Tromey <tromey@cygnus.com>
19034
19035 * Make-lang.in (jvspec.o): Use GCC_THREAD_FILE to compute correct
19036 name of thread define.
19037 * jvspec.c (THREAD_NAME): New macro.
19038 (GCLIB): Likewise.
19039 (THREADLIB): Likewise.
19040 (lang_specific_driver): Recognize attempt to link with thread
19041 library or gc library. Recognize -ljava on command line so it
19042 isn't linked against more than once.
19043
19044 1998-09-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
19045
19046 * parse-scan.y (report_main_declaration): Name of the class
19047 containing `main' can be a qualified name.
19048
19049 1998-08-31 Tom Tromey <tromey@cygnus.com>
19050
19051 * config-lang.in: Changed gjavac to gjc everywhere.
19052 * Make-lang.in: Changed gjavac to gjc everywhere.
19053
19054 1998-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
19055
19056 * Make-lang.in (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): New variable.
19057 (java.install-common:): Loop over JAVA_TARGET_INDEPENDENT_BIN_TOOLS
19058 and install the files.
19059 * Makefile.in (JAVA_OBJS_LITE): New variable.
19060 (compiler:): Now include jv-scan as a dependency.
19061 (../jv-scan$(exeext), parse-scan.c): New targets.
19062 (../jcf-dump$(exeext)): Was jcf-dump$(exeext) before.
19063 * config-lang.in (compilers): Removed gcj, gjavah from the list.
19064 * jcf-parse.c (parse_source_file): Call java_layout_classes and
19065 check for errors even if parse_only.
19066 * lex.c (java_init_lex): Reorganized and skip parts if JC1_LITE is
19067 defined.
19068 (yylex): New function. Uses java_lex body.
19069 (java_lex): Removed commented out statement. Remove local variable
19070 literal. Use SET_LVAL_NODE_TYPE and SET_LVAL_NODE where
19071 appropriate. Use macros FLOAT_TYPE_NODE, DOUBLE_TYPE_NODE,
19072 DCONST0, SET_FLOAT_HANDLER, SET_REAL_VALUE_ATOF,
19073 SET_LVAL_NODE_TYPE and GET_TYPE_PRECISION. Don't create STRING_CST
19074 if JC1_LITE is defined. Use BUILD_ID_WFL to build identifiers. Use
19075 SET_MODIFIER_CTX, SET_LVAL_NODE, BUILD_ID_WFL and GET_IDENTIFIER
19076 where appropriate.
19077 (java_lex_error): Empty if JC1_LITE is defined.
19078 (java_get_line_col): Return 0 if JC1_LITE is defined.
19079 * lex.h (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR,
19080 SET_MODIFIER_CTX): Moved into the section containing the macros
19081 conditionally defined by JC1_LITE.
19082 (BUILD_OPERATOR,BUILD_OPERATOR2): Just return the TOKEN
19083 argument if JC1_LITE is defined.
19084 (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, REAL_VALUE_ATOF,
19085 REAL_VALUE_ISINF, REAL_VALUE_ISNAN): Preset to values if JC1_LITE
19086 is defined.
19087 (DCONST0, SET_FLOAT_HANDLER, GET_IDENTIFIER, SET_REAL_VALUE_ATOF,
19088 FLOAT_TYPE, DOUBLE_TYPE, SET_MODIFIER_CTX, GET_TYPE_PRECISION,
19089 SET_LVAL_NODE, SET_LVAL_NODE_TYPE, BUILD_ID_WFL): New macros, set
19090 to different values according to JC1_LITE.
19091 * parse.h (int_fits_type_p, stabilize_reference): Prototype not
19092 declared if JC1_LITE set.
19093 (jdep_code, typedef struct _jdep, typedef struct _jdeplist): Not
19094 defined if JC1_LITE not set.
19095 (struct parser_ctx): Reorganized and skip the jc1 front end part
19096 if JC1_LITE set.
19097 (java_layout_classes): New function definition.
19098 (java_push_parser_context, java_init_lex, yyparse, yylex,
19099 yyerror): Prototype always declared. All other static function
19100 prototypes declared only if JC1_LITE is not set.
19101 * parse.y (yyparse, yylex, yyerror): No longer declared here. Now
19102 declared in parse.h.
19103 (java_layout_classes): New function.
19104 (java_complete_expand_methods): No longer layout the class here.
19105 * parse-scan.y: New file.
19106 * jv-scan.c: New file.
19107
19108 1998-08-25 Tom Tromey <tromey@cygnus.com>
19109
19110 * gjavah.c (main): Handle -friend option.
19111 (friend_specs): New global.
19112 (generate_access): Handle friend_specs.
19113 (process_file): Likewise.
19114 (MAX_FRIENDS): New macro.
19115 (friend_count): New global.
19116 (print_cxx_classname): Added `prefix' argument. Ignore arrays.
19117 Changed all callers.
19118
19119 1998-08-24 Per Bothner <bothner@cygnus.com>
19120
19121 * jcf-dump.c (process_class): Move JCF_FINISH use to main,
19122 (main): Handle processing all the entries of a named .zip archive.
19123 * jcf-io.c (jcf_trim_old_input): New function.
19124 * jcf.h (GET_u2_le,GET_u4_le,JCF_readu2_le,JCF_readu4_le): New macros.
19125
19126 1998-08-24 Per Bothner <bothner@cygnus.com>
19127
19128 * lang.c (flag_assume_compiled): Make default be on.
19129
19130 1998-08-21 Per Bothner <bothner@cygnus.com>
19131
19132 * jcf-dump.c: Add bunches of flags to control output more.
19133 (process_class): New function; support printing more than one class.
19134 (main): Support new --print-main and --javap flags.
19135 * jcf-reader.c (IGNORE_ATTRIBUTE): New hook.
19136 * jcf.h (CPOOL_INDEX_IN_RANGE): New macro.
19137
19138 1998-08-20 Per Bothner <bothner@cygnus.com>
19139
19140 Change mangling of dispatch table to match C++ vtable (w/thunks).
19141 * class.c (build_dtable_decl), java-tree.h: New function.
19142 (make_class_data): Call it.
19143 * decl.c (init_decl_processing): Likewise.
19144
19145 1998-08-19 Warren Levy <warrenl@cygnus.com>
19146
19147 * decl.c (init_decl_processing): Use _Jv_NewObjectArray, not
19148 soft_anewarray; adjust args passed.
19149 * expr.c (build_anewarray): Adjust args for soft_anewarray_node to
19150 match _Jv_NewObjectArray.
19151
19152 1998-08-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
19153
19154 * decl.c (push_labeled_block, pop_labeled_block): New functions.
19155 * expr.c (loopup_label): Call create_label_decl.
19156 (create_label_decl): New function.
19157 (java_lang_expand_expr): Call expand_start_bindings with argument
19158 set to zero.
19159 * java-tree.h Added space after PROTO in function declarations
19160 when necessary.
19161 (IS_FOR_LOOP_P, IS_BREAK_STMT_P): New macros.
19162 (create_label_decl, push_labeled_block): New function
19163 declarations.
19164 * lex.c (label_id): Initialize.
19165 (SUPER_TK, THIS_TK, RETURN_TK): Merged common actions in final
19166 switch.
19167 * parse.h Added space after PROTO in function declarations when
19168 necessary.
19169 (LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
19170 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
19171 LOOP_EXPR_BODY_BODY_EXPR, LOOP_HAS_LABEL_P, LOOP_HAS_LABEL_SKIP_P,
19172 PUSH_LABELED_BLOCK, POP_LABELED_BLOCK, PUSH_LOOP, POP_LOOP): New
19173 macros.
19174 (struct parser_ctxt): New fields current_loop,
19175 current_labeled_block.
19176 (build_if_else_statement, patch_if_else_statement,
19177 add_stmt_to_compound, patch_exit_expr, build_labeled_block,
19178 generate_labeled_block, complete_labeled_statement,
19179 build_bc_statement, patch_bc_statement, patch_loop_statement,
19180 build_new_loop, build_loop_body, complete_loop_body): New function
19181 declarations.
19182 * parse.y (java_warning_count): New global variable.
19183 (label_id): New static variable.
19184 (BREAK_TK, CONTINUE_TK): Token tagged <operator>.
19185 (block:): Return size_zero_node when block is empty.
19186 (empty_statement:): Return size_zero_node.
19187 (statement:): Implement supplemental action when for_statement: is
19188 reduced.
19189 (label_decl:): New rule.
19190 (labeled_statement:): Rewritten using label_decl. Actions
19191 implemented.
19192 (labeled_statement_nsi:): Likewise.
19193 (if_then_statement): Actions implemented.
19194 (while_expression): New rule.
19195 (while_statement:): Rewritten using while_expression. Actions
19196 implemented.
19197 (while_statement_nsi:): Likewise.
19198 (do_statement_begin:): New rule.
19199 (do_statement:): Rewritten using do_statement_begin. Actions
19200 implemented.
19201 (for_statement:): Rewritten using for_begin. Actions implemented.
19202 (for_statement_nsi:): Likewise.
19203 (for_header:, for_begin:): New rules.
19204 (for_init:): Actions implemented.
19205 (statement_expression_list:, break_statement:,
19206 continue_statement:): Likewise.
19207 (yyerror): Count number of issued warning(s).
19208 (java_report_errors): Report error(s) and/or warning(s).
19209 (java_complete_class): Use build_java_argument_signature to
19210 recompute completed method signature.
19211 (java_check_regular_methods): New locals method_wfl and aflags.
19212 Use method_wfl instead of lookup_cl during error reports. Fixed
19213 indentation and modified some error messages. Use
19214 lang_printable_name in method instead of the DECL_NAME. New code
19215 to issue warnings on methods not overriding corresponding methods
19216 private to a different package.
19217 (java_method_add_stmt): Call add_stmt_to_compound.
19218 (add_stmt_to_compound): New function.
19219 (java_complete_tree): Handle LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR,
19220 LOOP_EXPR, EXIT_EXPR and COND_EXPR.
19221 (build_if_else_statement, patch_if_else_statement,
19222 build_labeled_block, generate_labeled_block,
19223 complete_labeled_statement, build_new_loop, build_loop_body,
19224 complete_loop_body, patch_loop_statement, build_bc_statement,
19225 patch_bc_statement, patch_exit_expr): New functions.
19226 * typeck.c (build_java_signature): Build argument signature before
19227 enclosing it in between parenthesis.
19228
19229 1998-08-17 Warren Levy <warrenl@cygnus.com>
19230
19231 * Make-lang.in (JAVA_SRCS): Created for dependencies * Makefile.in
19232 (JAVA_OBJS): Added reminder comment
19233
19234 1998-08-13 Nick Clifton <nickc@cygnus.com>
19235
19236 * gjavah.c (D_NAN_MASK): Append LL to the constant to force it to
19237 be interpreted as a long long.
19238
19239 1998-08-13 Warren Levy <warrenl@cygnus.com>
19240
19241 * decl.c (init_decl_processing): Use _Jv_InitClass, not
19242 soft_initialise_class. Use _Jv_NewMultiArray, not
19243 soft_multianewarray. Use _Jv_ThrowBadArrayIndex, not
19244 soft_badarrayindex. Use _Jv_CheckCast, not soft_checkcast. Use
19245 _Jv_CheckArrayStore, not soft_checkarraystore. Use
19246 _Jv_LookupInterfaceMethod, not soft_lookupinterfacemethod.
19247
19248 1998-08-12 Per Bothner <bothner@cygnus.com>
19249
19250 * decl.c, java-tree.h (this_identifier_node, super_identifier_node,
19251 length_identifier_node): New global tree node constants.
19252 * parse.y (kw_super, kw_this, kw_length): Removed globals.
19253 Replace uses by super_identifier_node etc.
19254 * lex.c (kw_super, kw_this, kw_length): Don't initialize.
19255
19256 * parse.y (resolve_field_access): Don't special-case ".length" if
19257 flag_emit_class_files.
19258 (patch_array_ref): Leave as ARRAY_REF if flag_emit_class_files.
19259 * jcf-write.c (generate_bytecode_insns): Handle ARRAY_REF opcode
19260 and ARRAY.length.
19261
19262 1998-08-11 Per Bothner <bothner@cygnus.com>
19263
19264 * decl.c (init_decl_processing): Remove unused method_type_node fields.
19265 * class.c (make_method_value): Remove init for removed fields.
19266
19267 * class.c (layout_class): Use build_java_argument_signature.
19268 * java-tree.h (TYPE_ARGUMENT_SIGNATURE): New macro.
19269
19270 * typeck.c (push_java_argument_signature): Removed. Merged into ...
19271 (build_java_argument_signature): Use TYPE_ARGUMENT_SIGNATURE cache.
19272 (build_java_signature): Don't use push_java_argument_signature.
19273
19274 * typeck.c (lookup_argument_method): New function.
19275 * parse.y (java_check_regular_methods): Use lookup_argument_method
19276 instead of lookup_java_method2 followed by lookup_java_method.
19277
19278 * parse.y (check_method_redefinition): Minor optimization.
19279
19280 * jcf-write.c (generate_bytecode_insns): Handle RETURN_EXPR,
19281 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, and RDIV_EXPR.
19282
19283 1998-08-10 Tom Tromey <tromey@cygnus.com>
19284
19285 * Make-lang.in (jc1$(exeext)): Don't depend on c-common.o or
19286 c-pragma.o.
19287
19288 * gjavah.c (java_float_finite): Use K&R-style definition.
19289 (java_double_finite): Likewise.
19290 (generate_access): Now returns void. Changed all callers.
19291 (last_access_generated): Removed.
19292 (process_file): Only make a single pass over the .class file.
19293
19294 1998-07-29 Per Bothner <bothner@cygnus.com>
19295
19296 * class.c (get_dispatch_table): Add extra dummy vtable entry,
19297 for compatibility for G++ (with -fvtable-thunks).
19298 * expr.c (build_invokevirtual): Add one for extra dummy vtable entry.
19299
19300 * gjavah.c (process_file): Use public inheritance for super-class.
19301
19302 1998-07-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
19303
19304 * lex.c (java_init_lex): Initialize ctxp->package.
19305 * parse.h (struct parser_ctxt): package and package_len replaced
19306 by tree package, an identifier node. Field method_decl_list is
19307 gone. Fixed comments.
19308 (lookup_field_wrapper, merge_qualified_name, not_accessible,
19309 class_in_current_package): New function prototypes.
19310 * parse.y (array_type:): Set class loaded flag on primitive type
19311 arrays.
19312 (package_declaration:): Assign ctxp->package to the
19313 identifier node.
19314 (method_invocation:): Handle invocation of method qualified by
19315 `super'.
19316 (single_type_import_declaration:): Removed ambiguity check.
19317 (java_pop_parser_context): New local variable `next'. Reset and
19318 set IMPORT_CLASSFILE_NAME flags on current and previous import
19319 list.
19320 (java_accstring_lookup): Use new local macro COPY_RETURN.
19321 (lookup_field_wrapper): New function.
19322 (parser_qualified_classname): Use merge_qualified_name.
19323 (parser_check_super_interface): Broaden error message.
19324 (do_resolve_class): Check for qualified class name in the current
19325 compilation unit if appropriate.
19326 (process_imports): Check for already defined classes.
19327 (check_pkg_class_access): Got rid of call to
19328 get_access_flags_from_decl.
19329 (java_complete_expand_methods): Call safe_layout_class based on
19330 the current class size.
19331 (make_qualified_primary): Build a WFL qualification on primary if
19332 none exists.
19333 (merge_qualified_name): New function.
19334 (make_qualified_name): Use merge_qualified_name.
19335 (resolve_expression_name): Use safe_lookup_field.
19336 (resolve_field_access): Got rid of call to get_access_flags_from_decl.
19337 (resolve_qualified_expression_name): Likewise. Check on resolved
19338 element accessibility.
19339 (not_accessible_p, class_in_current_package): New functions.
19340 (maybe_access_field): Got rid of call to get_access_flags_from_decl.
19341 (patch_method_invocation_stmt): Merged common pieces. Check
19342 accessibility of invoked method.
19343 (check_for_static_method_reference): Add returned type in error
19344 message.
19345 (invocation_mode): Get rid of bogus check on PRIVATE methods.
19346 (refine_accessible_methods_list): Merged two conditions in test.
19347 (java_complete_class): Sanity check on stabilize_ref gone.
19348 * zextract.c (read_zip_archive): Cast lseek second argument to long.
19349
19350 1998-07-28 Per Bothner <bothner@cygnus.com>
19351
19352 * class.c (hashUtf8String): Fix - use new JavaSoft specification.
19353
19354 1998-07-24 Tom Tromey <tromey@cygnus.com>
19355
19356 * gjavah.c (F_NAN): Removed.
19357 (F_NAN_MASK): New macro.
19358 (F_POSITIVE_INFINITY): Removed.
19359 (F_NEGATIVE_INFINITY): Likewise.
19360 (java_float_finite): Rewrote.
19361 (D_NAN_MASK): Renamed.
19362 (java_double_finite): Rewrote.
19363 (D_POSITIVE_INFINITY): Removed.
19364 (D_NEGATIVE_INFINITY): Likewise.
19365
19366 * jcf-dump.c (print_constant): [CONSTANT_Double, CONSTANT_Float]
19367 If verbose, print underlying representation of value in hex.
19368
19369 1998-07-24 Per Bothner <bothner@cygnus.com>
19370
19371 * buffer.h, buffer.c: New files.
19372 * Makefile.in (JAVA_OBJS): Add buffer.o.
19373
19374 Support locals variables and writing their debug entries to .class.
19375 * jcf-write.c: Simplify some by user new buffer type.
19376 (vode_buffer_grow): Removed.
19377 (struct localvar_info): New type.
19378 (localsvars, localvartable): New buffers.
19379 (localvar_alloc, localvar_free): New functions.
19380 (generate_bytecode_insns): Handle local variables.
19381 (generate_classfile): Write LocalVariableTable attribute.
19382
19383 1998-07-24 Alexandre Petit-Bianco <apbianco@cygnus.com>
19384
19385 * jcf-io.c (open_in_zip): Check the zipfile magic number.
19386 * zipfile.h (ZIPMAGIC): New macro.
19387
19388 1998-07-24 Tom Tromey <tromey@cygnus.com>
19389
19390 * Makefile.in (gjavah.o): Updated dependencies.
19391 (jcf-dump.o): Likewise.
19392 (all.indirect): Use ../gjavah.
19393 (../gjavah$(exeext)): Likewise.
19394 (clean): Don't remove gjavah.
19395 (clean): Remove parse.c, not java/parse.c.
19396 * Make-lang.in (java): Added gjavah.
19397 (gjavah$(exeext)): New target.
19398 (GJAVAH_SOURCES): New macro.
19399 (java.all.build): Added gjavah.
19400 (java.all.cross): Likewise.
19401 (java.rest.encap): Likewise.
19402 * config-lang.in (compilers, stagestuff): Added gjavah.
19403
19404 1998-07-23 Tom Tromey <tromey@cygnus.com>
19405
19406 * gjavah.c (java_float_finite): New function.
19407 (java_double_finite): Likewise.
19408 (F_POSITIVE_INFINITY): New macro.
19409 (F_NEGATIVE_INFINITY): Likewise.
19410 (F_NAN): Likewise.
19411 (D_POSITIVE_INFINITY): Likewise.
19412 (D_NEGATIVE_INFINITY): Likewise.
19413 (D_NAN): Likewise.
19414 (print_field_info): Use java_float_finite and java_double_finite.
19415
19416 1998-07-23 Per Bothner <bothner@cygnus.com>
19417
19418 * parse.y (method_header): Name "this" implicit argument.
19419
19420 1998-07-22 Per Bothner <bothner@cygnus.com>
19421
19422 * jcf-write.c: Write out LineNumberTable attribute in .class file.
19423 (linenumber_buffer, linenumber_ptr, linenumber_limit): New statics.
19424 (put_linenumber): New function.
19425 (generate_bytecode_insns, generate_classfile): Write line numbers.
19426
19427 1998-07-22 Alexandre Petit-Bianco <apbianco@cygnus.com>
19428
19429 * java-tree.h (CALL_EXPR_FROM_PRIMARY_P): Changed in PRIMARY_P.
19430 (lookup_name, build_known_method_ref, build_class_init,
19431 build_invokevirtual, invoke_build_dtable, match_java_method,
19432 build_field_ref, pushdecl_force_head, build_java_binop,
19433 binary_numeric_promotion, build_decl_no_layout,
19434 build_java_arrayaccess, build_newarray, build_anewarray,
19435 build_java_array_length_access, build_java_arraynull_check): New
19436 extern function prototypes.
19437 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19438 JAVA_THIS_EXPR, CALL_CONSTRUCTOR_P): Macro definition moved in
19439 java-tree.h.
19440 * jcf-parse.c (init_outgoing_cpool): Set current_constant_pool_data_ref
19441 to NULL
19442 * jcf.h (jcf_out_of_synch): New extern function prototype.
19443 * parse.h: Static/global function implemented in parse.y
19444 prototyped and declarations moved at the end of the file.
19445 (DECL_P): Check that the argument isn't null.
19446 (JAVA_UNARY_PLUS_EXPR, JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR,
19447 JAVA_THIS_EXPR): No longer defined here. See java-tree.h
19448 (QUAL_DECL_TYPE): New macro.
19449 (PARAMS): Macro definition removed.
19450 * parse.y: (yyparse, yyerror): Use PROTO instead of PARAMS.
19451 (return_statement:): Call build_return.
19452 (field_access:): Call make_qualified_primary in sub rule.
19453 (method_invocation:): Build method invocation and call
19454 make_qualified_primary when processing primaries.
19455 (java_complete_class): Set IDENTIFIER_SIGNATURE_TYPE by calling
19456 get_type_from_signature.
19457 (java_check_regular_method): Extra integer 0 argument when calling
19458 lookup_java_method2.
19459 (lookup_java_interface_method2): Extra method DECL argument when
19460 calling lookup_java_interface_method2.
19461 (java_method_add_stmt): Set TREE_SIDE_EFFECTS on newly created
19462 COMPOUND_EXPR node.
19463 (java_complete_expand_method): Layout current class iff not
19464 already done. Don't process interface's methods.
19465 (java_complete_expand_method): Use super class only if it
19466 exists. Use current class otherwise.
19467 (make_qualified_primary): New function.
19468 (resolve_expression_name): Process qualified expression or
19469 expression from primary the same way.
19470 (resolve_expression_name): Two last arguments to
19471 resolve_field_access are now NULL_TREEs.
19472 (resolve_field_access): New variable is_static. Local field must
19473 be DECLs. is_static computed on field DECLs only. Append code in
19474 where_found to the field access if necessary. Use QUAL_DECL_TYPE
19475 to initialize field_type.
19476 (resolve_qualified_expression_name): New local variable,
19477 previous_call_static and is_static. Handle primaries with function
19478 calls, casts, array references and `this'. `super' now handled as
19479 `(super_class)this'. Use is_static to clarify boolean expressions.
19480 Added code to handle case where a proper handle is required to
19481 access a field. Use QUAL_DECL_TYPE where applicable.
19482 (maybe_access_field): New function.
19483 (patch_method_invocation_stmt): New arguments primary, where,
19484 is_static. Branch of the test on CALL_EXPR_FROM_PRIMARY_P
19485 deleted. Use `where' as a type to search from if specified. Check
19486 for static method reference where forbidden. Append primary or
19487 current_this to the argument list if not calling constructor nor
19488 static methods.
19489 (check_for_static_method_reference): New function.
19490 (patch_invoke): Layout the class on which new is done if
19491 necessary.
19492 (lookup_method_invoke): Changed format to report errors on
19493 methods.
19494 (qualify_ambiguous_name): New local variable this_found. Now
19495 handle things from primaries. Method call are considered
19496 expression names.
19497 (identical_subpath_p): NULL_TREE arguments to breakdown_qualified
19498 changed into NULLs.
19499 (not_initialized_as_it_should_p): Comply with the new DECL_P.
19500 (java_complete_tree): New case fo RETURN_EXPR. Process function
19501 call arguments in separate function.
19502 (complete_function_arguments): New function.
19503 (build_method_invocation): Don't use CALL_EXPR_FROM_PRIMARY_P
19504 anymore.
19505 (patch_assignment): Take the return function slot into account as
19506 a RHS. Distinguish assignment from a return.
19507 (valid_ref_assignconv_cast_p): Use build_java_argument_signature
19508 when checking methods in interfaces.
19509 (resolve_type_during_patch): NULL argument to unresolve_type_p
19510 instead of NULL_TREE.
19511 (patch_newarray): Fixed typo in comment.
19512 (buid_this): Build a WFL with `kw_this' instead of a FIELD_DECL.
19513 (build_return, patch_return): New functions.
19514 * typeck.c (lookup_java_constructor): Fixed typo in comment.
19515
19516 1998-07-21 Per Bothner <bothner@cygnus.com>
19517
19518 * constants.c (find_name_and_type_constant, find_fieldref_index,
19519 find_methodref_index): New methods.
19520 * expr.c (build_invoke_non_interface): If flag_emit_class_files,
19521 just return given method. Also, rename to build_known_method_ref.
19522 (expand_invoke): Rename call to build_invoke_non_interface.
19523 * java-tree.h, parse.h: Update prototype.
19524 * parse.y, decl.c, jcf-parse.c: Suppress calls to back-end functions
19525 (such as expand_expr_stmt) if flag_emit_class_files.
19526 * jcf-write.c (RESERVE, OP1, OP2, OP4, NOTE_PUSH, NOTE_POP,
19527 STACK_TARGET, IGNORE_TARGET): New macros.
19528 (code_buffer, code_ptr, code_limit, code_S, code_SP_max): New globals.
19529 (generate_bytecode_insn): New function to generate method's bytecode.
19530 (generate_classfile): Node generate Code attribute for a method.
19531 (code_buffer_grow, push_constant1, push_constant2, push_int_const,
19532 push_long_const, field_op, adjust_typed_op, maybe_wide):
19533 New functions used by generate_bytecode_insn.
19534
19535 * typeck.c (signature_include_return): Remove variable.
19536 (push_java_argument_signature, build_java_argument_signature): New.
19537 (build_java_signature): Use push_java_argument_signature.
19538 * parse.y: Use build_java_argument_signature instead of fiddling
19539 with signature_include_return.
19540
19541 1998-07-17 Tom Tromey <tromey@cygnus.com>
19542
19543 * gjavah.c (print_c_decl): Always generate JArray<>* for array
19544 types.
19545
19546 * Makefile.in (all.indirect): Added gjavah$(exeext).
19547 (gjavah$(exeext)): Added $(exeext).
19548 (clean): Likewise.
19549
19550 1998-07-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
19551
19552 * class.c (layout_class): Call to java_layout_parsed_class replace
19553 by safe_layout_class.
19554 * expr.c (build_java_array_length_access): Removed static storage
19555 class in the function definition.
19556 (build_java_arraynull_check): Likewise.
19557 Also fixed typos in two comments.
19558 * lex.c (java_init_lex): Initialize static global kw_length.
19559 (java_lex): Use BUILD_OPERATOR on RETURN_TK.
19560 * lex.h (JAVA_FLOAT_RANGE_ERROR): Add extra argument to
19561 java_lex_error.
19562 (JAVA_INTEGRAL_RANGE_ERROR): Likewise.
19563 * parse.h (resolve_no_layout): New static function declaration.
19564 (get_identifier_in_static): Declaration removed.
19565 (java_layout_parsed_class): Function name declaration changed to
19566 safe_layout_class.
19567 (build_newarray_node, patch_newarray, resolve_type_during_patch,
19568 not_initialized_as_it_should_p, build_this): New static function
19569 declarations.
19570 (pushdecl_force_head, build_java_binop, int_fits_type_p,
19571 binary_numeric_promotion, stabilize_reference,
19572 build_decl_no_layout, build_java_arrayaccess): Extern function
19573 declarations moved into their own section.
19574 (build_newarray, build_anewarray, build_java_array_length_access,
19575 build_java_arraynull_check): New extern function declarations.
19576 (UNARY_PLUS_EXPR): Macro renamed into JAVA_UNARY_PLUS_EXPR.
19577 (JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR, JAVA_THIS_EXPR): New
19578 fake tree codes.
19579 (CALL_CONSTRUCTOR_P): New macro.
19580 * parse.y (kw_length): New static global tree node.
19581 (return_statement): Tagged <node>.
19582 (RETURN_TK): Tagged <operator>.
19583 (variable_declarator_id:): Build variable declaration with an
19584 empty initialization value if a syntax error was found in the
19585 initialization part of the variable declaration.
19586 (statement_without_trailing_substatement:): return_statement: now
19587 uses the default rule.
19588 (return_statement:): Temporarily fixed to return NULL_TREE.
19589 (primary_no_new_array:): Call build_this when THIS_TK was parsed.
19590 (class_instance_creation_expression:): Class creation rules now
19591 call build_method_invocation upon reduction.
19592 (array_creation_expression:): Rules call build_newarray_node upon
19593 reduction.
19594 (dim_exprs:): Build a list of dimension expressions.
19595 (dim_expr:): Store location of the OSB_TK in the dimension
19596 expression node.
19597 (method_invocation:): Added a new error rule.
19598 (build_unresolved_array_type): WFL argument may also be an array
19599 on a primitive type. Name of the argument changed to reflect this.
19600 (method_declarator): Insert argument type at the beginning of the
19601 argument type list and later reverse the list.
19602 (unresolved_type_p): Argument 'returned' may be optionally
19603 NULL_TREE.
19604 (java_layout_class_from_source): Function renamed
19605 safe_layout_class.
19606 (resolve_and_layout): Now call resolve_no_layout and
19607 safe_layout_class.
19608 (resolve_no_layout): New function.
19609 (purify_type_name): New function.
19610 (complete_class_report_errors): Call purify_type_name during error
19611 report on a type not found.
19612 (process_imports): error_found local variable doesn't need to be
19613 initialized to zero.
19614 (declare_local_variables): New local type_wfl. Fixed typo in error
19615 message. type_wfl assigned to unresolved type and used to register
19616 incomplete type. Build a WFL around the variable initialization
19617 statement so that debug info can be generated on it.
19618 (source_start_java_method): Reverse argument list after they've
19619 been processed.
19620 (current_this): New static global variable.
19621 (java_complete_expand_methods): Set current_this when appropriate.
19622 (resolve_expression_name): Build correct static and non static
19623 field access bearing a simple name.
19624 (resolve_field_access): Resolve the length field of arrays. Handle
19625 f.m() cases.
19626 (patch_method_invocation_stmt): Set the type of the method
19627 invocation to error_mark_node. This value is later overridden by a
19628 valid type, if any. Don't handle qualified constructor invocation
19629 as qualified method invocation. Call lookup_method_invoke with its
19630 new flag. It's no longer necessary to access the selected method
19631 as the value of a tree list. Handle constructor invocation.
19632 (patch_invoke): Reverse argument list when invoking non interface
19633 methods. Insert call to new as the first argument of the
19634 constructor.
19635 (invocation_mode): Return a INVOKE_STATIC is the invoked method is
19636 defined within a final class. Return INVOKE_STATIC if the invoked
19637 method is a constructor.
19638 (lookup_method_invoke): New lc argument is a flag to indicate a
19639 constructor lookup. Now handle constructor lookup. Choose the most
19640 specific method in case several were matching the invocation
19641 requirements. Return a method decl instead of a tree list featuring
19642 one single method decl element.
19643 (refine_accessible_methods_list): New lc flag argument to
19644 indicate that a constructor is being looked up.
19645 (not_initialized_as_it_should_p): New function.
19646 (java_complete_tree): Now process fake tree codes
19647 JAVA_NEW_ARRAY_EXPR, JAVA_NEW_CLASS_EXPR and JAVA_THIS_EXPR. Call
19648 save_expr on resolved function call arguments. Case on
19649 UNARY_PLUS_EXPR changed into a case on JAVA_UNARY_PLUS_EXPR.
19650 (patch_assignment): LHS can be a field access expression. When
19651 dealing with reference, lhs_type is the promoted type of the
19652 rhs_type, not the RHS. Use not_initialized_as_it_should_p where
19653 applicable.
19654 (operator_string): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
19655 (patch_binop): Use not_initialized_as_it_should_p where
19656 applicable.
19657 (build_unaryop): JAVA_UNARY_PLUS_EXPR replaces UNARY_PLUS_EXPR.
19658 (patch_unaryop): Likewise. And use not_initialized_as_it_should_p
19659 where applicable.
19660 (resolve_type_during_patch): New function.
19661 (patch_cast): Call resolve_type_during_patch to resolve type and
19662 report error accordingly.
19663 (patch_array_ref): Use not_initialized_as_it_should_p where
19664 applicable. Array base expression is saved before being
19665 used. Promote the type of an array elements if it contains non
19666 builtin types.
19667 (build_newarray_node, patch_newarray, build_this): New functions.
19668
19669 1998-07-16 Tom Tromey <tromey@cygnus.com>
19670
19671 * gjavah.c (print_c_decl): UTF8_GET increments pointer; don't
19672 increment it in `for' statement.
19673 (print_field_info): If number is inf or nan, don't print it.
19674 (print_method_info): If method name is `delete', just ignore it.
19675 (print_c_decl): Special-case jstringArray.
19676
19677 * gjavah.c (help): New function.
19678 (no_argument): New function.
19679 (usage): Changed text.
19680 (main): Rewrote argument handling. Now handles -v, --help,
19681 --version.
19682 (version): New function.
19683 (found_error): New global.
19684 (main): Return found_error.
19685 (generate_access): Set found_error.
19686 (print_c_decl): Likewise.
19687
19688 1998-07-15 Tom Tromey <tromey@cygnus.com>
19689
19690 * gjavah.c (print_c_decl): Don't print "," when examining field.
19691 Skip type name when looking at "[L" types.
19692 (process_file): Now static.
19693 (generate_access): Now returns int.
19694 (last_access_generated): New global.
19695 (process_file): Clear last_access_generated; make multiple passes
19696 over the class.
19697 (print_field_info): Just return if generate_access returns true.
19698 (print_method_info): Likewise. Also, allow <init> functions to
19699 pass through.
19700 (print_c_decl): Added is_init argument. Print constructors
19701 properly.
19702 (print_cxx_classname): Use UTF8_GET to extract characters from
19703 string.
19704 (print_base_classname): New function.
19705 (print_class_decls): New function.
19706 (process_file): Use it.
19707 (utf8_cmp): New function.
19708
19709 1998-07-13 Nick Clifton <nickc@cygnus.com>
19710
19711 * lang-options.h: Format changed to match changes in gcc/toplev.c
19712 to implement a --help option.
19713
19714 1998-07-10 Brendan Kehoe <brendan@cygnus.com>
19715
19716 * decl.c (init_decl_processing): Revert change to dtable_type.
19717
19718 1998-07-09 Per Bothner <bothner@cygnus.com>
19719
19720 * java-tree.h (CLASS_P): Changed DECL_LANG_FLAG_7 -> TYPE_LANG_FLAG_4.
19721
19722 1998-07-08 Brendan Kehoe <brendan@cygnus.com>
19723
19724 * decl.c (init_decl_processing): Set CLASS_LOADED_P on dtable_type.
19725
19726 * lang.c (lang_init): Default flag_exceptions to 1, without
19727 checking to see if it's 2 first.
19728
19729 1998-07-08 Jeffrey A Law (law@cygnus.com)
19730
19731 * constants.c: Include "system.h".
19732 * decl.c: Likewise.
19733 * lang.c (flag_new_exceptions): Get via extern now.
19734 (lang_init_options): New functions. Turn on flag_new_exceptions.
19735
19736 1998-07-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
19737
19738 * lex.c (java_lex): Return 0 when we see an invalid character in
19739 the input.
19740
19741 * lex.c (java_read_char): Specify extra argument when calling
19742 java_lex_error.
19743 (java_read_unicode, java_parse_end_comment,
19744 java_parse_escape_sequence): Likewise,
19745 (java_lex): Specify extra argument when calling
19746 java_lex_error. Test that IDs are beginning with a legal character
19747 for IDs. Handle invalid characters with an error message and a
19748 call to java_lex_error.
19749 (java_lex_error): Adjust column position by new argument
19750 `forward'. Issue an error even if in the middle of reporting an
19751 other error.
19752
19753 1998-07-07 Brendan Kehoe <brendan@cygnus.com>
19754
19755 * jcf-io.c (find_class): Zero out BUFFER before we use it, since
19756 we don't explicitly put a null pointer when we're copying it.
19757
19758 1998-07-07 Tom Tromey <tromey@cygnus.com>
19759
19760 * gjavah.c (print_cxx_classname): New function.
19761 (super_class_name): Likewise.
19762 (print_super_fields): Removed.
19763 (in_super): Removed.
19764 (print_field_info): Never generate #defines.
19765 (print_c_decl): Changed generated types to match JNI. No longer
19766 print class name before method name.
19767 (print_method_info): Print "static" before static methods.
19768 Print "virtual" before non-final methods.
19769 (usage): Use exit(1), not exit(-1).
19770 (main): Likewise.
19771 (print_field_info): Use %.17g to print a double.
19772 (last_access): New globals.
19773 (process_file): Initialize last_access.
19774 (usage): Now static.
19775 (ACC_VISIBILITY): New define.
19776 (generate_access): New function.
19777 (print_field_info): Call it.
19778 (print_method_info): Likewise. Also, generate information for all
19779 methods, not just native methods. Return void.
19780 (print_c_decl): Return void.
19781 (print_field_info): Return void.
19782
19783 1998-07-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
19784
19785 * Makefile.in (JAVABISONFLAGS): Specific flag for bison when
19786 processing the jc1 grammar file. Prefix bison functions and
19787 variables with java_.
19788 (parse.c): Dependencies on parse.h and lex.h
19789 * expr.c (build_java_arrayaccess): Function now global.
19790 * java-tree.h: Comment reorganized to carry on previous
19791 classification effort.
19792 (RESOLVE_EXPRESSION_NAME_P, RESOLVE_PACKAGE_NAME_P,
19793 RESOLVE_TYPE_NAME_P): New flags on WFLs.
19794 * jcf-parse.c (parse_source_file): java_parse_source_file renamed
19795 java_parse (new prefix java_ generated by bison).
19796 (java_layout_parsed_class, java_register_parsed_class): Function
19797 call removed.
19798 (yyparse): Removed unnecessary call to init_outgoing_cpool.
19799 * lex.c (static tree wfl_op): Variable deleted.
19800 (java_init_lex): Initialize kw_super and kw_this. Initialize more
19801 ctxp fields to NULL_TREE.
19802 (java_lex): No longer create WFL for operators. Filename caching
19803 mechanism deleted. Call BUILD_OPERATOR for `.', '(', '['. Strings
19804 created as STRING_CST and later expanded. Removed extra argument
19805 to BUILD_OPERATOR and BUILD_OPERATOR2. Build operators for THIS
19806 and SUPER.
19807 (build_wfl_node): Removed code in comments.
19808 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): No longer build a WFL but
19809 store token and location data in the current bison token.
19810 * parse.h: Removed pre-processor based symbol prefixes hack. Moved
19811 static/extern function declaration at the beginning of the file.
19812 (struct qualification): Data structure definition deleted.
19813 (RESOLVE_CHAIN_REMAINDER): Macro definition deleted.
19814 (qualify_ambiguous_name): Function declaration modified. Function
19815 now returns nothing.
19816 (build_array_ref, patch_array_ref, make_qualified_name,
19817 resolve_qualified_expression_name, maybe_generate_clinit,
19818 resolve_field_access): New static function declarations.
19819 (build_java_arrayaccess): New extern function declaration.
19820 (enum { RESOLVE_EXPRESION_NAME...}): Enum deleted.
19821 (CALL_EXPR_PRIMARY): Macro deleted.
19822 (EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION): New macros.
19823 (struct parser_ctxt): Field initialized_final
19824 removed. non_static_initialized, static_initialized: New fields.
19825 * parse.y (static tree kw_super, static tree kw_this): New global
19826 static.
19827 (%union): tree wfl field of operator member replaced by int
19828 location. WFLs are non longer created for operators.
19829 (OSB_TK, DOT_TK, THIS_TK, SUPER_TK): Tagged <operator>.
19830 (qualified_name:): Now calls make_qualified_name to build the
19831 identifier.
19832 (type_declaration:): Consider generating <clinit> when class
19833 parsing completed.
19834 (variable_declarator:): Directly build an assignment node when the
19835 variable is initialized when declared.
19836 (this_or_super:): Build a WFL and set current location when THIS
19837 or SUPER are parsed.
19838 (expression_statement:): Wrap statement around a WFL.
19839 (primary_no_new_array:): Fixed typo. Changed value returned by
19840 THIS_TK because of its new type (temporary).
19841 (dim_exprs:): Temporary fix because of OSB_TK's new type.
19842 (field_access:): Build qualified name with SUPER.
19843 (method_invocation:): Fixed returned value because of SUPER's new
19844 type.
19845 (array_access:): Use OSB_TK location information.
19846 (post_increment_expression:, post_decrement_expression:,
19847 unary_expression:, pre_increment_expression:,
19848 pre_decrement_expression:, unary_expression_not_plus_minus:,
19849 cast_expression:, multiplicative_expression:,
19850 additive_expression:, shift_expression:, relational_expression:,
19851 equality_expression:, and_expression:, exclusive_or_expression:,
19852 inclusive_or_expression:, conditional_and_expression:,
19853 conditional_or_expression:, assignment:): Use new location/token
19854 information available on operators.
19855 (create_class): Set super_decl_type to NULL_TREE when processing
19856 java.lang.Object.
19857 (register_fields): Field initialization is now a MODIFY_EXPR
19858 node. Chain initialization code to the matching lists (according
19859 to the field declaration modifiers).
19860 (maybe_generate_clinit): New function.
19861 (method_header): Don't set method's DECL_NAME to a WFL when adding
19862 methods to java.lang.Object.
19863 (resolve_and_layout): Now can return NULL_TREE if the type
19864 resolution fails. Otherwise, return the class DECL instead of its
19865 TYPE.
19866 (check_method_redefinition): Don't patch method DECL_NAME if it
19867 belongs to java.lang.Object.
19868 (process_imports): Simply assign error_found to the value returned
19869 by check_pkg_class_access.
19870 (declare_local_variables): Don't use their init statements (if
19871 any) when parsing error were previously found. Reuse MODIFY_EXPR
19872 build during parsing as an init statement.
19873 (java_method_add_stmt): Now return the current method body.
19874 (java_layout_parsed_class, java_register_parsed_class): Functions
19875 removed.
19876 (java_complete_expand_methods): Initialize the constant pool on a
19877 per class basis. Layout the classes before expanding their method
19878 bodies. Don't try expand artificial constructor code if error were
19879 found. Make the classes data and register them if no error were
19880 found.
19881 (java_complete_expand_method): Retrieve an artificial constructor
19882 argument list before entering its body. Assign the top block to
19883 the artificial constructor function body and set types of declared
19884 blocks and compound statements to void. Walk method body if not an
19885 artificial constructor.
19886 (make_qualified_name, cut_identifier_in_qualified): New functions.
19887 (resolve_expression_name): Fixed comments. Save/restore the
19888 current class CLASS_LOADED_P flag value. Build non qualified
19889 static field access and handle qualified expression names.
19890 (resolve_field_access, resolve_qualified_expression_name): New
19891 functions.
19892 (patch_method_invocation_stmt): Use the new expression resolution
19893 scheme, calling resolve_field_access when the function call is
19894 resolved as an expression.
19895 (qualify_ambiguous_name): Function rewritten to work on qualified
19896 expression produced by make_qualified_name.
19897 (java_complete_tree): Promote type when function's argument are
19898 RECORD_TYPEs. While processing the MODIFY_EXPR case: don't patch
19899 the assignment to discover further errors if RHS is a expression
19900 name that fails to evaluate. Declare LHS initialized even though
19901 the assignment failed. Don't use the location variable and removed
19902 extra argument in patch function calls. Now handle the ARRAY_REF
19903 case and build internal string representation when STRING_CSTs are
19904 walked.
19905 (build_method_invocation): Don't wrap function call around a WFL.
19906 (build_assignment): Likewise. Use the operator location
19907 information.
19908 (patch_assignment): Handle array access LHSs. Handle error
19909 provenance, resulting in a better error report.
19910 (build_binop): Use op_location from operator as binop location
19911 information.
19912 (build_unaryop, build_incdec, build_cast): Likewise.
19913 (patch_binop): Extract location information from the node. Fixed
19914 typo in error message.
19915 (patch_unary_op): Extract location information from the node.
19916 (build_array_ref, patch_array_ref): New functions.
19917
19918 1998-07-01 Tom Tromey <tromey@cygnus.com>
19919
19920 * expr.c (expand_java_INSTANCEOF): Changed calling convention to
19921 match _Jv_IsInstanceOf.
19922 * decl.c (init_decl_processing): Use _Jv_NewArray, not
19923 soft_newarray. Use _Jv_IsInstanceOf, not soft_instanceof.
19924
19925 1998-06-30 Tom Tromey <tromey@cygnus.com>
19926
19927 * decl.c (init_decl_processing): Functions are now named
19928 _Jv_MonitorEnter and _Jv_MonitorExit, and return jint.
19929
19930 1998-06-29 Per Bothner <bothner@cygnus.com>
19931
19932 * java-tree.h (load_class): Add prototype.
19933 * class.c (is_compiled_class): Add missing arg to load_class.
19934 * expr.c (expand_java_NEW): Call load_class.
19935 * parse.y (process_import): Removed bogus use of void return value.
19936
19937 1998-06-25 Per Bothner <bothner@cygnus.com>
19938
19939 * decl.c, java-tree.h (soft_athrow_node): Renamed to soft_node.
19940 Function name is "_Jv_Throw" instead of "soft_athrow".
19941 * decl.c, java-tree.h (soft_new_node): Renamed to alloc_object_node.
19942 Function name is "_Jv_AllocObject" instead of "soft_new".
19943 Takes an extra parameter (object size).
19944 * expr.c: Update calls.
19945
19946 1998-06-24 Per Bothner <bothner@cygnus.com>
19947
19948 * lex.c (java_get_line_col): Handle end-of-file.
19949 * except.c (expand_end_java_handler): Handle null type (i.e. finally).
19950
19951 1998-06-24 Andrew MacLeod <amacleod@cygnus.com>
19952
19953 * lang.c (lang_init): Make -fexceptions the default.
19954 * except.c (maybe_start_try, maybe_end_try): Don't do anything if
19955 exception handling is not turned on.
19956
19957 1998-06-23 Andrew MacLeod <amacleod@cygnus.com>
19958
19959 * lang.c (flag_new_exceptions): Make this this default.
19960 * decl.c (end_java_method): Call emit_handlers.
19961 * except.c (method_init_exceptions): Set language code and version.
19962 (expand_start_java_handler): Enable exception, and call
19963 expand_eh_region_start.
19964 (expand_end_java_handler): Enable exception, and set up catch blocks.
19965 (emit_handlers): New routine to generate the saved handlers.
19966 * java-except.h (emit_handlers): Add prototype.
19967
19968 1998-06-12 Per Bothner <bothner@cygnus.com>
19969
19970 We used to have three different representations of the constant pool:
19971 the CPool structure, the tree_constant_pool, and the constructures
19972 used to build the Class object (which may need class and string
19973 constants) in compiled code. None were appropriate for compiling
19974 to .class files, so I did a major overhaul.
19975
19976 First, the tree_constant_pool array was removed. Things were
19977 modified to the CPool structure in the JCF could be used.
19978 Second, a "capacity" field was added to the CPool, and functions
19979 written to search for a matching constant, adding one if not found.
19980 The code that generated the Class object was changed to use a CPool.
19981 The actual TREE_LISTs used to build the CONSTRUCTORs used for
19982 the static Class object are now only in build_constants_constructor.
19983 Finally, I wrote code which can generate a .class file (including its
19984 constant pool) from the RECORD_TYPE of a class. This is a big step
19985 on the way to compiling Java source into .class files.
19986
19987 * jcf-write.c: New file. Writes out a RECORD_TYPE as a .class file.
19988 * Makefile.in (JAVA_OBJS): Added jcf-write.o.
19989
19990 * java-tree.h (CPOOL_UTF, CONSTANT_ResolvedFlag,
19991 CONSTANT_ResolvedString, CONSTANT_ResolvedClass): New macros.
19992 (NAME_AND_TYPE_NAME, NAME_AND_TYPE_SIGNATURE, COMPONENT_REF_NAME,
19993 COMPONENT_REF_NAME_AND_TYPE, COMPONENT_REF_SIGNATURE): Redefined.
19994 (COMPONENT_REF_CLASS): Replaced by COMPONENT_REF_CLASS_INDEX.
19995 (lang_type): Removed constant_pool field.
19996 * jcf.h (CPool): Renamed size to count. Added field capacity.
19997 (CPOO_COUNT, CPOOL_UINT, CPOOL_USHORT1, CPOOL_USHORT2,
19998 CPOOL_FINISH, CPOOL_INIT, CPOOL_REINIT): New macros.
19999 Rewrite some of the old JCF_XXX in terms of CPOOL_XXX macros.
20000
20001 * constants.c (current_constant_pool_tags, current_constant_pool_data,
20002 current_constant_pool_length), java-tree.h: Replaced by outgoing_cpool.
20003 * constants.c (build_constants_constructor): Use new outgoing_cpool.
20004 (set_constant_entry, find_constant1, find_constant2,
20005 find_class_constant, count_constant_pool_bytes, write_constant_pool,
20006 find_utf8_constant, find_class_or_string_constant): New functions.
20007
20008 * jcf-parse.c (load_class): Don't save/restore tree-constant_pool.
20009 (get_constant): Use current_jcf.cpool instead of tree_constant_pool.
20010 (give_name_to_class, get_class_constant): Likewise.
20011 * jcf-parse.c, java-tree.h (tree_constant_pool): Removed.
20012 (get_name_and_type_constant, get_ref_constant): Removed.
20013 * parse.h (parser_ctxt): Remove field tree_constant_pool.
20014 * parse.y: Don't save/restore tree_constant_pool.
20015 * verify.c (verify_jvm_instructions): Update for new approach.
20016 * expr.c (expand_invoke, expand_java_field_op): Likewise.
20017
20018 * lang-options.h: Added -femit-class-file, -femit-class-files.
20019 * lang.c (flag_emit_class_files), java-tree.h: New flag.
20020 (lang_f_options): Added "emit-class-file(s)".
20021
20022 * expr.c (build_java_arrayaccess): Generate more efficient array
20023 bounds checking, by using unsigned compare.
20024
20025 * expr.c (expand_invoke): Re-arrange error checks to make more robust.
20026
20027 1998-06-10 Alexandre Petit-Bianco <apbianco@cygnus.com>
20028
20029 * parse.h: New comment on the handling of unresolved type
20030 identifiers. JDEPs are now part of the jdep_code enum.
20031 (typedef struct jdep): Now use enum jdep_code or int, depending on
20032 availability. Both are narrowed down to an 8 bits bitfield.
20033 (CALL_EXPR_PRIMARY): Fixed comment.
20034
20035 1998-06-10 Tom Tromey <tromey@cygnus.com>
20036
20037 * Make-lang.in (java): Added gjavac and jvgenmain.
20038 (java.start.encap): Depend on gjavac.
20039 (java.rest.encap): Depend on jvgenmain.
20040
20041 * Make-lang.in (JAVA_INSTALL_NAME): Name is gjavac, not c++.
20042 (JAVA_CROSS_NAME): Likewise.
20043 (java.all.build): Depend on jvgenmain and gjavac.
20044 (java.all.cross): Depend on jvgenmain and gjavac-cross.
20045 (jvgenmain$(exeext)): New target.
20046 (java.install-common): Wrote.
20047 * config-lang.in (compilers, stagestuff): Added gjavac and
20048 jvgenmain.
20049
20050 1998-06-10 Dave Brolley <brolley@cygnus.com>
20051
20052 * lang.c (lang_decode_option): New argc/argv interface.
20053
20054 1998-06-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
20055
20056 * ChangeLog: Fixed entries not compliant with the Gnu Coding Standard.
20057 * decl.c (build_decl_no_layout): New function.
20058 * expr.c (java_lang_expand_expr): Layout declarations found in
20059 blocks before they're pushed.
20060 * jcf-parse.c (load_class): Save current line when parsing class
20061 file.
20062 (parse_source_file): Register class before expanding their
20063 methods.
20064 * lang.c (put_decl_node): Produce `null' when `void *' is
20065 processed.
20066 * lex.c (static tree wfl_op): New static global, for error report
20067 on casts.
20068 (java_init_lex): wfl_operator and wfl_op initialized
20069 here. Filename caching added for wfl_op. Return wfl_op when `(' is
20070 parsed.
20071 * parse.h (build_unaryop, build_incdec, patch_unaryop, build_cast,
20072 patch_cast, valid_ref_assignconv_cast_p, can_cast_to_p,
20073 build_unresolved_array_type): New static function definitions.
20074 (build_decl_no_layout): New extern function declared.
20075 (OBSOLETE_MODIFIER_WARNING): Report error only if the WFL of the
20076 faulty modifier exists.
20077 (TYPE_INTERFACE_P, TYPE_CLASS_P): New macros.
20078 (ERROR_CAST_NEEDED_TO_INTEGRAL): Error message tuned.
20079 (UNARY_PLUS_EXPR): New fake operator.
20080 (struct parser_ctxt): New field osb_number.
20081 * parse.y (static tree wfl_operator): New static WFL for operator
20082 bound error messages.
20083 (DECR_TK, INCR_TK): Moved.
20084 (OP_TK): Tagged <operator>.
20085 (array_type:): Now call build_unresolved_array_type.
20086 (dim_expr:): Count the number of '[' seen.
20087 (post_increment_expression, post_decrement_expression,
20088 pre_increment_expression, pre_decrement_expression,
20089 unary_expression_not_plus_minus, unary_expression:): Actions are
20090 now building the corresponding unary expressions.
20091 (cast_expression:): Actions are now building cast expressions.
20092 (build_unresolved_array_type): New function.
20093 (create_interface): Reset the number of declared interfaces.
20094 (create_class): Likewise.
20095 (method_header): Methods declared within the scope of an interface
20096 are now implicitly set public and abstract.
20097 (java_complete_class): Variable's and parameter's type are patched
20098 with a promoted type.
20099 (declare_local_variables): Resolved non builtin types are promoted
20100 before being used to build a variable decl. Removed type patch
20101 posted on variable initialization statement.
20102 (source_start_java_method): Use build_decl_no_layout to build the
20103 decl of a parameter of incomplete type.
20104 (java_register_parsed_class): Process interfaces too. Call
20105 rest_of_decl_compilation on each processed class declarations.
20106 (java_complete_expand_methods): Don't attempt to expand things in
20107 interfaces.
20108 (java_complete_tree): Process CONVERT_EXPR, even though it always
20109 has a type. Propagate error_mark_node to node's type too. Promote
20110 method's call argument type and return error_mark_node if
20111 argument's completion didn't work. MODIFY_EXPR can have a WFL as a
20112 RHS. Fixed bug in the handling of bogus RHS of a fixed type. Now
20113 handle unary operator nodes.
20114 (build_assignment): Added comment.
20115 (print_int_node): New function.
20116 (patch_assignment): New second argument. New error handling. Use
20117 print_int_node. Handle references. Use can_cast_to_p to issue
20118 different error message according to the context and check upon
20119 the initialization of the RHS.
20120 (can_cast_to_p, valid_ref_assignconv_cast_p): New functions.
20121 (operator_string): Handle more operators.
20122 (patch_binop): No longer use a function static
20123 wfl_operator. Improved error message on shift distance.
20124 (build_unaryop, build_incdec, build_cast, patch_unaryop,
20125 patch_cast): New functions.
20126
20127 1998-06-05 Per Bothner <bothner@cygnus.com>
20128
20129 * jvspec.c: New file.
20130 * Make-lang.in: New rules to build gjavac from jvspec.c and ../gcc.c.
20131
20132 * java-tree.h (identifier_subst): Add declaration.
20133
20134 1998-06-04 Tom Tromey <tromey@cygnus.com>
20135
20136 * jvgenmain.c (main): Generate call to JvRunMain.
20137
20138 * class.c (make_class_data): Push value for "sync_info" field.
20139 * decl.c (init_decl_processing): Push "sync_info" field.
20140
20141 1998-06-03 Per Bothner <bothner@cygnus.com>
20142
20143 * typeck.c (build_java_array_type): Set TYPE_NAME to actual
20144 Java (source) name, not signature.
20145 Set TYPE_ALIGN to (at least) that of element_type.
20146
20147 1998-06-02 Per Bothner <bothner@cygnus.com>
20148
20149 * class.c: Moved classname-mangling-rekated code to ...
20150 * mangle.c: ... this new file.
20151 * jvgenmain.c: New program (needs mangle.c) to generate main program.
20152 * Makefile.in: Update for above changes.
20153
20154 1998-06-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
20155
20156 * expr.c (truthvalue_conversion): Convert integer and floating
20157 point value to their truth value.
20158 * lex.c (java_lex): Handle the `null' literal.
20159 * parse.h (JREFERENCE_TYPE_P, DECL_P): New macros.
20160 (ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
20161 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED):
20162 New macros.
20163
20164 * parse.y: Reorganization/documentation on token declaration.
20165 (binop_lookup[]): New added new tree codes.
20166 (relational_expression): Build corresponding binary operators.
20167 (equality_expression, conditional_and_expression,
20168 conditional_or_expression): Likewise.
20169 (java_complete_class): Fix crash in debug message.
20170 (java_complete_tree): Check initialization of method call
20171 arguments. Further bogus node evaluation to detect more error
20172 during assignments. Handles more binary operators.
20173 (patch_assignment): Use DECL_P.
20174 (build_binop): Fix crash when using URSHIFT_EXPR, a Java only tree
20175 code.
20176 (operator_string): Handle more case. Compacted source.
20177 (patch_binop): Changed function comment. Checking for
20178 uninitialized first operand takes the compound assignment into
20179 account and uses DECL_P. Checking for uninitialized second operand
20180 delayed to routine's end. Use macros to issue type bound error
20181 messages and issue messages on both operands if their types are
20182 different. Force fixed type into node. Handle all binary
20183 operators.
20184
20185 1998-05-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
20186
20187 * java-tree.h (COMPOUND_ASSIGN_P, INITIALIZED_P): New macros.
20188 * lex.c (java_lex): Use BUILD_OPERATOR and BUILD_OPERATOR2 to
20189 build operator node and return tokens.
20190 * lex.h (BUILD_OPERATOR, BUILD_OPERATOR2): New macros.
20191 * parse.h (java_complete_tree): Changed returned type in prototype.
20192 (build_method_invocation, build_assignment, patch_assignment,
20193 patch_binop): New static function declarations.
20194 (JFLOAT_TYPE_P, JNUMERIC_TYPE_P, JPRIMITIVE_TYPE_P, JSTRING_P,
20195 BUILD_EXPR_WFL): New macros.
20196 * parse.y (enum tree_code binop_lookup[]): New static for token to
20197 TREE_CODE lookup.
20198 (%union): Parser union has new sub-structure `operator'.
20199 (ASSIGN_TK, MULT_ASSIGN_TK, DIV_ASSIGN_TK, REM_ASSIGN_TK,
20200 PLUS_ASSIGN_TK, MINUS_ASSIGN_TK, LS_ASSIGN_TK, SRS_ASSIGN_TK,
20201 ZRS_ASSIGN_TK, AND_ASSIGN_TK, XOR_ASSIGN_TK, OR_ASSIGN_TK,
20202 ASSIGN_ANY_TK): Tokens tagged `operator'.
20203 (EQ_TK, GTE_TK, ZRS_TK, SRS_TK, GT_TK, LTE_TK, LS_TK, BOOL_AND_TK,
20204 AND_TK, BOOL_OR_TK, OR_TK, INCR_TK, PLUS_TK, DECR_TK, MINUS_TK,
20205 MULT_TK, DIV_TK, XOR_TK, REM_TK, NEQ_TK, NEG_TK, REL_QM_TK,
20206 REL_CL_TK, NOT_TK, LT_TK): Tokens tagged `operator'.
20207 (assignment_operator:): Rule tagged `operator'.
20208 (expression_statement:): Re-installed default rule.
20209 (method_invocation:): Sub rules call build_method_invocation.
20210 (postfix_expression:): Don't attempt to resolve name here. Just
20211 return an ID.
20212 (multiplicative_expression:): Sub-rules build corresponding binop
20213 expression node.
20214 (additive_expression:, shift_expression:, and_expression:,
20215 exclusive_or_expression:, inclusive_or_expression:): Likewise.
20216 (assignment:): Sub rule invoke build_assignment.
20217 (assignment_operator:): Default rules on sub rules.
20218 (force_error): Added documentation on this variable.
20219 (declare_local_variables): Build initialization calling
20220 build_assignment.
20221 (expand_start_java_method): Removed unused rtx declaration. Mark
20222 arguments as already initialized.
20223 (java_method_add_stmt): Type of built COMPOUND_EXPR set to NULL.
20224 (java_complete_expand_methods): Don't process next method if
20225 completion of the previous one triggered errors.
20226 (java_complete_expand_method): Call source_end_java_method if no
20227 error were found during completion.
20228 (resolve_expression_name): Use IDENTIFIER_LOCAL_VALUE to retrieve
20229 locals declaratilon. Handle names found within a class. Return
20230 error_mark_node when things aren't found.
20231 (patch_method_invocation_stmt): Return error_mark_node on failures.
20232 (patch_invoke): Removed unused local. Return the correct node.
20233 (java_complete_tree): Now returns a value. The BLOCK section binds
20234 local identifiers and the type of a BLOCK is now void. Assign the
20235 result of operand completion on COMPOUND_EXPR. Assign the
20236 encapsulated node of a WFL to the result of its completion, except
20237 when the node is an identifier. Now handle MODIFY_EXPR and several
20238 binary operators. Return error_mark_node on errors.
20239 (build_method_invocation, build_assignment, patch_assignment,
20240 build_binop, operator_string, patch_binop): New functions.
20241 * typeck.c (binary_numeric_promotion): New function.
20242
20243 1998-05-21 Per Bothner <bothner@cygnus.com>
20244
20245 * class.c (identifier_subst): New convenience wrapper for ident_subst.
20246 Replace most uses of ident_subst by identifier_subst.
20247
20248 * class.c (push_class_static_dummy_field): Removed function.
20249 (build_class_ref): Find Class object decl by looking up "CNAME.class",
20250 instead of looking got "class" static field. Create that decl here.
20251 (class_identifier_node): Removed; no longer needed.
20252 (init_class_processing): Don't init class_identifier_node.
20253 * jcf-parse.c (jcf_parse): Don't call push_class_static_dummy_field.
20254 Do nreverse 0 times (instead of twice) for Object and Class.
20255 * parse.y (java_layout_parsed_class): No push_class_static_dummy_field.
20256
20257 1998-05-20 Per Bothner <bothner@cygnus.com>
20258
20259 * jcf-parse.c (parse_class-file): Set lino to smallest line number,
20260 while initializing linenumber_count and linenumber_table.
20261 Do it before init_function_start (which calls emit_line_note).
20262 * expr.c (expand_byte_code): Don't need to clear lineno here.
20263
20264 1998-05-18 Tom Tromey <tromey@cygnus.com>
20265
20266 * class.c (append_gpp_mangled_type): If `qualifications' is >=9,
20267 then mangle number as _N_.
20268
20269 * class.c (mangle_class_field): New function.
20270 (build_class_ref): Set assembler name of class reference using
20271 mangle_class_field.
20272 (push_class_static_dummy_field): Likewise.
20273
20274 1998-05-17 Michael Tiemann <tiemann@cygnus.com>
20275
20276 * parse.y (source_start_java_method): Use TREE_SET_CODE instead
20277 of assigning to TREE_CODE. The latter method exploits a feature
20278 of GCC that is not ANSI compliant.
20279
20280 1998-05-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
20281
20282 * decl.c (pushdecl_force_head): New function.
20283 (pushlevel): Removed conditional printf.
20284 (complete_start_java_method): Don't enter local variable scope if
20285 function is compiled from source code.
20286 * expr.c: parse.h now included
20287 (java_lang_expand_expr): New function.
20288 * jcf-io.c (find_class): Use SOURCE_FRONTEND_DEBUG instead of
20289 printf. Terminate buffer when doing directories.
20290 * jcf-parse.c (parse_source_file): Call lang_init_source before
20291 parsing and before code generation.
20292 * jcf.h (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally
20293 use printf if the macro is defined.
20294 * lang.c (lang_init): Install lang_expand_expr hook on
20295 java_lang_expand_expr.
20296 (java_dummy_print): New function.
20297 (lang_init_source): New function.
20298 * lex.c (java_lex): Remember location of an opening brace at the
20299 second nesting level.
20300 (java_is_eol): Unget character seen after a CR if it is EOF.
20301 * parse.h: Now includes lex.h
20302 (SOURCE_FRONTEND_DEBUG): Macro redefined to conditionally use
20303 printf if the macro is defined.
20304 (expand_start_java_method, build_expr_block, enter_block,
20305 exit_block, lookup_name_in_blocks, maybe_absorb_scoping_blocks):
20306 New static function declarations.
20307 (pushdecl_force_head): New extern function declaration.
20308 (INCOMPLETE_TYPE_P): New macro.
20309 (JDEP_PARM, JDEP_TYPE): New entries in JDEPs enum.
20310 (BLOCK_CHAIN_DECL, BLOCK_EXPR_DECLS, BLOCK_EXPR_BODY,
20311 BLOCK_EXPR_ORIGIN): New macros.
20312 (DECL_SOURCE_LINE_MERGE, DECL_SOURCE_LINE_FIRST,
20313 DECL_SOURCE_LINE_LAST): New macros.
20314 (struct parser_ctxt): Removed field current_method_decl, redundant
20315 with the field current_function_decl. Added fields
20316 first_ccb_indent1 and pending_block.
20317 * parse.y (method_body, literal, INT_LIT_TK, FP_LIT_TK,
20318 BOOL_LIT_TK, CHAR_LIT_TK, STRING_LIT_TK, NULL_TK, VOID_TK): Rules
20319 tagged <node>
20320 (SOURCE_FRONTEND_DEBUG): Used as macro accepting varargs.
20321 (compilation_unit:): Cosmetic on sub rule.
20322 (type_declaration:): Cosmetic on sub rules. Added an error rule.
20323 (variable_initializer:): Installed default rule on expression:.
20324 (method_declaration:): method_header: starts a new
20325 method. method_body: installs the function body, absorbs blocks
20326 emitted for temporary variable scopings, pops function's body block
20327 and merges function's last statement lineno in DECL_SOURCE_LINE.
20328 (method_body:): Installed default rules.
20329 (block:): Call enter_block when an opening brace is seen. Absorb
20330 scoping blocks and call exit_block when a closing brace is seen.
20331 (block_statement:): Cosmetic changes.
20332 (method_invocation:): Create WFL around CALL_EXPR node.
20333 (patch_stage): Added comment around definition.
20334 (method_header): Try to use first_ccb_indent1 as the first line of
20335 the method, so BP debug info are emitted at the first opening
20336 brace of the function. If the function has no body, use the
20337 location of the function's name. Override currently defined method
20338 name with the matching WFL so we can point redefinition errors
20339 using the location where the function's name was declared.
20340 (check_abstract_method_header): Interprets DECL_NAME as an
20341 identifier or as a WFL, accordingly.
20342 (java_complete_class): New cases for JDEP_TYPE and JDEP_PARM.
20343 (check_method_redefinition): Use DECL_NAME as a WFL. Extract
20344 location and name information out of it and reinstall DECL_NAME to
20345 its original identifier node value.
20346 (lookup_cl): Use DECL_SOURCE_LINE_FIRST (first line of the
20347 function's source code).
20348 (read_import_dir): Test the value returned by find_class and issue
20349 a fatal accordingly.
20350 (declare_local_variables): Push a new block for the scope of the
20351 new variable(s) if code has been already generated at that nesting
20352 level. Pinpoint redefinition errors using the variable id
20353 WFLs. Generate initialization code if necessary. If the variable
20354 type is incomplete, register a patch on its decl.
20355 (source_start_java_method): Rewritten. Define a new block for the
20356 function's parameters. Build parameter decl out of function's
20357 arguments and register them for a patch if their types are
20358 incomplete.
20359 (expand_start_java_method): Includes the part of
20360 source_start_java_method that was pushing the parameter decls and
20361 completing the method start code.
20362 (source_end_java_method): Removed call the expand_end_bindings and
20363 poplevel (already taken care of). Reinstall function's arguments
20364 and get function's last line of code before calling
20365 expand_function_end.
20366 (java_method_add_stmt): New comment before the function's
20367 code. Complement the second operand of the current COMPOUND_EXPR
20368 if necessary.
20369 (java_complete_expand_methods): Don't generate debug info on line
20370 zero when expanding a generated constructor.
20371 (java_complete_expand_method): Set start and end line numbers for
20372 a artificially generated constructor to one and manually call
20373 enter_block and exit_block when defining it. For all methods:
20374 expand function's start calling the new expand_start_java_method
20375 and invoke java_complete_tree on the effective method's body, if
20376 any.
20377 (resolve_expression_name): Now use lookup_name_in_blocks to search
20378 local variable decls and print out an error when variables are
20379 undefined.
20380 (patch_method_invocation_stmt): Inserted comment before the
20381 function's code.
20382 (lookup_method_invoke): Chain method's arguments using chainon
20383 with the current arg list as a second argument. Inserted missing
20384 IDENTIFIER_POINTER when reporting an error on methods not found.
20385 (refine_accessible_methods_list): Don't retain constructors.
20386 (patch_arguments): Function removed.
20387 (java_complete_tree): Inserted comment before the function's
20388 code. New case for BLOCKs. Moved the WFL case a bit
20389 further. Complete function's arguments.
20390 (build_expr_block, enter_block, exit_block, lookup_name_in_blocks,
20391 maybe_absorb_scoping_blocks): New functions.
20392
20393 1998-04-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
20394
20395 * jcf-io.c (find_class): Reset jcf->java_source after JCF_ZERO, if
20396 previously set.
20397 * jcf-parse.c (parse_source_file, java_error_count): New forward
20398 and extern declarations.
20399 (java_parse_abort_on_error): Macro moved.
20400 (jcf_parse_source): fatal called if fopen fails. Now calls
20401 parse_source_file.
20402 (parse_source_file): New parse_only parameter. Reflects the
20403 elimination of the second pass.
20404 (yyparse): parse_source_file called with argument set to 0.
20405 * jcf.h (JCF_ZERO): Sets java_source to zero.
20406 * lex.c (java_init_lex): pass argument is gone. Function modified
20407 to be called once during the analysis of a file.
20408 (java_unget_unicode): Fixed typo in fatal message.
20409 (java_get_line_col): Likewise.
20410 (java_lval): Likewise. String literals no longer built during
20411 second pass.
20412 * lex.h (JAVA_COLUMN_DELTA): Take the tabulation character into
20413 account.
20414 * parse.h (MODIFIER_WFL): New macro.
20415 (parse_check_super, parser_check_super_interface): Now return int.
20416 (parser_chain_incomplete_item, not_builtin_p,
20417 complete_method_decl): Declarations removed.
20418 (build_method_invocation_stmt, build_invoke): Renamed using the
20419 `patch' instead of `build'
20420 (register-incomplete_type, obtain_incomplete_type,
20421 java_complete_tree, java_complete_expand_method,
20422 unresolved_type_p, create_jdep_list): New function declarations.
20423 (IC_TYPE, IC_DEPEND, DEPEND_DECL, DEPEND_WFL, BEGIN_ONLY_PASS,
20424 END_ONLY_PASS, ELSE_ONLY_PASS): Macro deleted.
20425 (jdep): New typedef on new struct _jdep.
20426 (JDEP_DECL, JDEP_DECL_WFL, JDEP_KIND, JDEP_SOLV, JDEP_WFL,
20427 JDEP_MISC, JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN,
20428 JDEP_TO_REVOLVE, JDEP_RESOLVED_DECL, JDEP_RESOLVED,
20429 JDEP_RESOLVED_P): New macros.
20430 (JDEP_NO_PATCH, JDEP_SUPER, JDEP_FIELD, JDEP_METHOD,
20431 JDEP_METHOD_RETURN, JDEP_METHOD_END, JDEP_INTERFACE,
20432 JDEP_VARIABLE): New enum values and jdep kinds.
20433 (jdeplist): New typedef on struct _jdeplist.
20434 (CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN, JDEP_INSERT): New
20435 macros.
20436 (CALL_EXPR_PRIMARY): New macro.
20437 (struct parser_ctxt): Fields java_pass, current_method_decl,
20438 method_decl_list deleted. New field jdeplist.
20439 (INCOMPLETE_P): Macro deleted.
20440 * parse.y (single_type_import_declaration:): Removed pass switch.
20441 (type_import_on_demand_declaration): Likewise.
20442 (field_declaration:): Removed pass switch on all sub rules.
20443 (class_declaration:): Call the complete_class_decl removed on
20444 class_body rules.
20445 (method_declaration:): Removed second pass switch. No longer chain
20446 methods decl when method_header reduced.
20447 (method_header:): Sub rules no longer depend on pass switch.
20448 (method_declarator:): Likewise.
20449 (method_body:): Likewise.
20450 (abstract_method_declaration:): Likewise.
20451 (block_statement:): Likewise.
20452 (local_variable_declaration:): Likewise.
20453 (argument_list:): Likewise.
20454 (method_invocation:): Likewise. Call to build_method_invocation_stmt
20455 removed. Partial CLASS_EXPR tree node built instead.
20456 (postfix_expression:): Removed pass switch on all sub rules.
20457 (java_pop_parser_context): Free classd_list content.
20458 (yyerror): Call obstrack_grow0 to finalize error message.
20459 (check_class_interface_creation): Comment modified to reflect new
20460 returned value meaning. Removed second pass switch. Return 1 if an
20461 error was found, 0 otherwise. Adjust pointer on filename if a
20462 leading path separator was found.
20463 (maybe_create_class_interface_decl): Removed first pass switch
20464 when linking the class decl to the class_list. Install a new
20465 jdep_list for the class.
20466 (add_superinterfaces): List of unresolved interfaces is
20467 gone. Unresolved interfaces are directly added to the current
20468 dependencies list.
20469 (create_interface): Second pass shortcut removed.
20470 ctpx->modifier_ctx access through MODIFIER_WFL.
20471 (create_class): Second pass shortcut removed. Call to
20472 register_incomplete_type replaces the call to
20473 parser_chain_incomplete_item.
20474 (complete_class_decl): Function removed.
20475 (duplicate_declaration_error): New way of retrieving redeclared
20476 item type.
20477 (register_fields): Call to lookup_modifier_cl replaced by
20478 MODIFIER_WFL. New way of handling unresolved type, using
20479 unresolved_type_p and obtain_incomplete_type.
20480 register_incomplete_type replaces call to parser_chain_incomplete_item.
20481 (patch_stage): New static global variable.
20482 (method_header): New way of handling unresolved type, using
20483 unresolved_type_p and obtain_incomplete_type. patch_stage used to
20484 indicates that the method decl needs to be patched.
20485 (check_abstract_method_header): Call to lookup_modifier_cl
20486 replaced by MODIFIER_WFL.
20487 (method_declarator): Incomplete argument type are registered
20488 calling register_incomplete_type. Patch on the declared method is
20489 issued in that case.
20490 (unresolved_type_p): New function.
20491 (parser_check_super_interface): New comment to reflect function's
20492 modified returned type (int). Function and has a new argument
20493 this_wfl. Call to parse_error_context uses this_wfl instead of
20494 relying on lookup_cl.
20495 (parser_check_super): Comment reflects function's new returned
20496 type (int). Function returns nonzero value on error.
20497 (create_jdep_list, reverse_jdep_list, obtain_incomplete_type,
20498 register_incomplete_type, jdep_resolve_class): New functions to
20499 handle incomplete types in declarations.
20500 (java_complete_class): Rewritten to work with the new incomplete
20501 type handling scheme.
20502 (complete_class_report_errors): Likewise.
20503 (complete_method_decl): Removed: it jobs is now handled by
20504 java_complete_class.
20505 (do_resolve_class): Class loaded in not already loaded and not
20506 found in Java source code.
20507 (java_check_regular_methods, java_check_abstract_methods): Don't
20508 call complete_method_decl anymore.
20509 (lookup_modifier_cl, not_builtin_p): Functions deleted.
20510 (read_import_dir): Got rid of the pass number dependency.
20511 (declare_local_variables): New handling of unresolved types (patch
20512 issued).
20513 (source_start_java_method): New parameter level. Function called
20514 with level set to 1 when argument types are potentially
20515 unresolved. Called to complete the job with level set to 2 once
20516 types are complete.
20517 (source_end_java_method): Call to permanent_allocation
20518 removed. Waiting to be replaced by a more suitable obstack
20519 management.
20520 (java_complete_expand_methods, java_complete_expand_method,
20521 java_expand_finals): New functions.
20522 (build_method_invocation_stmt): Renamed
20523 patch_method_invocation_stmt. Extracts function call expression
20524 (wfl) and arguments (args) from CALL_EXPR tree operands.
20525 (build_invoke): Renamed patch_invoke. Fixed typo in fatal
20526 call. Patch the function and argument operand of the CALL_EXPR
20527 tree argument.
20528 (patch_argument, java_complete_tree): New functions.
20529
20530 1998-04-20 Per Bothner <bothner@cygnus.com>
20531
20532 Recover from missing fields and methods (i.e. error instead of fatal).
20533 * decl.c, java-tree.h (TYPE_identifier_node): New global constant.
20534 * expr.c (expand_invoke): Recover from missing method.
20535 (expand_java_field_op): Recover from missing field.
20536 Inline references to java.lang.{Integer,Char,...}.TYPE.
20537 * typeck.c (get_type_from_signature), java-tree.h: New function.
20538 * class.c (add_method): Use get_type_from_signature.
20539 (build_class_ref): Handle a class that was not found.
20540 * typeck.c (convert): Handle conversion to pointers (for convenience).
20541 * verify.c (verify_jvm_instructions): Use get_type_from_signature
20542 instead of lookup_field to handle missing fields.
20543
20544 * jcf-parse.c (process_zip_dir): Set java_source.
20545
20546 1998-04-20 Brendan Kehoe <brendan@cygnus.com>
20547
20548 * jcf-parse.c (set_source_filename): Use TYPE_NAME, not DECL_NAME.
20549
20550 1998-04-14 Alexandre Petit-Bianco <apbianco@cygnus.com>
20551
20552 * jcf-parse.c (load_class): Don't change input_filename before
20553 calling jcf_parse_source (but still do it before calling
20554 jcf_parse).
20555 (jcf_parse_source): Assign input_filename after having saved the
20556 parser context.
20557 * lex.c (java_init_lex): Chain a WFL node to the import on demand
20558 list. ctxp->modifier_ctx zeroed according to its new
20559 definition. ctxp->filename initialized. Removed
20560 JAVA_MODIFIER_CTX_UNMARK.
20561 (java_unget_unicode): Update the character based column position.
20562 (java_allocate_new_line): ref_count not used anymore. Always free
20563 ctxp->p_line. Initialize c_line->char_col to 0.
20564 (java_get_unicode): Update the character based column position.
20565 (java_lex): Use ctxp->elc to store current position in source
20566 file, at the beginning of the parsed token. Set modifier_ctx entry
20567 corresponding to the parse modifier to a WFL node. Return a WFL
20568 node when an identifier is parsed.
20569 (java_lex_error): Now uses ctxp->elc to store current position in
20570 source.
20571 (build_wfl_node, java_is_eol, java_get_line_col): New functions.
20572 * lex.h (build_wfl_node): New function definitions.
20573 (struct java_line): ref_count and next fields are gone. New field
20574 char_col.
20575 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
20576 JAVA_LINE_UNMARK, ID_NAME, ID_CL): Macro definitions deleted.
20577 (JAVA_COLUMN_DELTA): New macro.
20578 (java_lc): New typedef on new struct _java_lc.
20579 * parse.h (lookup_cl, lookup_modifier_cl): Changed returned types.
20580 (parse_error_context, parse_warning_context): Changed prototypes.
20581 (java_get_line_col): Added as an available global function.
20582 (JAVA_MODIFIER_CTX_UNMARK): Macro removed.
20583 (IC_DECL): Replaced by macro IC_TYPE
20584 (DEPEND_WFL): New macro.
20585 (THIS_MODIFIER_ONLY): Now works with WFL and only remembers the first
20586 wrong modifier.
20587 (exit_java_complete_class): Removed a commented out statement.
20588 (struct parser_ctxt): Added comments on fields. modifier_ctx is
20589 now an array of tree nodes. Deleted fields line_list and
20590 e_line. New field elc, to replace e_line.
20591 * parse.y (array_type:): Build WFL node.
20592 (qualified_name:): Build a single WFL node out of two. Retain
20593 the location information of the first node in the resulting node.
20594 (package_declaration:): Use package name as a WFL node
20595 (single_type_import_declaration:): Use imported name as a WFL node.
20596 (type_import_on_demand_declaration:): Use root of the imported
20597 packages as a WFL node.
20598 (field_declaration:): Removed unused local variable cl.
20599 (method_declaration:): Don't call JAVA_MODIFIER_CTX_UNMARK.
20600 (yyerror): New static elc. Removed static error_line, error_pos.
20601 New local code_from_source. Save ctxp->elc into elc at the first
20602 pass. Call java_get_line_col to get a string of the line where
20603 the error occurred.
20604 (debug_line): Removed static function.
20605 (parse_error_context, parse_warning_context): Parameter cl is now
20606 a WFL node. Use its value to initialize ctxp->elc.
20607 (redefinition_error): Parameter cl is now a WFL node.
20608 (parse_add_interface): New parameter wfl. No longer call
20609 lookup_cl, use wfl instead.
20610 (check_class_interface_creation): Parameter cl is now a WFL node.
20611 (maybe_create_class_interface_decl): Likewise.
20612 (add_superinterfaces): New function.
20613 (create_interface): Removed local cl, node, super_decl,
20614 super_decl_type. Function now uses id as a WFL node. Better
20615 warning/error report on obsolete or forbidden mix of
20616 modifiers. Now calls add_superinterfaces to register interfaces.
20617 (create_class): Removed local cl, node. Local variable id is used
20618 as a WFL node. Better error report on forbidden modifier
20619 mix. Uses add_superinterfaces to register interfaces.
20620 (find_field): Argument cl is now a WFL node. Now store the WFL
20621 node of a fields that needs to be checked for their
20622 initialization.
20623 (method_header): Local variable node non longer used. Local
20624 variable id replaces cl.
20625 (check_modifiers_consistency): Local variable cl is now a WFL
20626 node.
20627 (method_declarator): Local variable cl replaced by parameter id.
20628 (parser_qualified_name): Now uses parameter name as a WFL node.
20629 (parser_check_super_interface): New parameter wfl, for achieve
20630 greater accuracy during error reports.
20631 (parser_chain_incomplete_item): New parameter named location. Used,
20632 along the decl, to construct the incomplete item node.
20633 (java_complete_class): resolve_class now uses WFL node extracted
20634 from the incomplete item node. Macro IC_TYPE replaces TREE_PURPOSE
20635 where appropriate.
20636 (complete_method_decl): Unresolved function's argument types are WFL.
20637 (resolve_class): Parameter cl is now a WFL node.
20638 (resolve_and_layout): Likewise.
20639 (do_resolve_class): Likewise. Try first to use cl and then do the
20640 lookup on the decl when calling check_pkg_class_access.
20641 (complete_class_report_errors): Use IC_TYPE in place of
20642 TREE_PURPOSE where appropriate. Use DEPEND_WFL on dependency
20643 instead of doing a lookup over the decl.
20644 (java_check_final): Use WFL info from field tree list.
20645 (lookup_cl): Rewritten and returns a statically defined WFL node.
20646 (lookup_modifier_cl): Now uses information from WFL nodes.
20647 (process_imports): Likewise.
20648 (read_import_dir): name and cl arguments replaced by a single WFL
20649 node. Function modified accordingly.
20650 (find_in_imports_on_demand): Now uses WFL node.
20651 (check_pkg_class_access): cl argument is now a WFL node.
20652 (declare_local_variables): Fixed to use WFL nodes.
20653 (resolve_expression_name): Likewise.
20654 (build_method_invocation_stmt): name_combo argument renamed
20655 wfl. Function modified to use WFL nodes.
20656 (build_invoke): cl used as a WFL node when calling build_expr_wfl.
20657 (lookup_method_invoke): cl is now a WFL node. Added missing
20658 IDENTIFIER_POINTER to class type decl name.
20659
20660 1998-04-14 Dave Brolley <brolley@cygnus.com>
20661
20662 * lang.c (init_parse): Now returns char* containing the filename.
20663
20664 1998-04-10 Per Bothner <bothner@cygnus.com>
20665
20666 * class.c (layout_class): Mangle repeated arg types to match cc1plus.
20667
20668 * decl.c, java-tree.h (integer_four_node): New INTEGER_CST node.
20669 * class.c (make_class_data): If flag_assume_compiled, initial class
20670 state is CSTATE_PREPARED; make superclass and interfaces direct
20671 references, rather than constant pool indexes.
20672
20673 1998-04-09 Alexandre Petit-Bianco <apbianco@cygnus.com>
20674
20675 * parser.y: Include flags.h. Removed debug variable pl.
20676 (method_declaration:): Uses ctxp->parser_ccb_indent instead of pl.
20677 (block:): Likewise.
20678 (labeled_statement_nsi:): Generate debug info when reducing
20679 expression_statement:.
20680 (check_pkg_class_access): get_access_flags_from_decl invocation
20681 fixed for new CLASS_* flags location.
20682 (source_end_java_method): Save/restore parser context when
20683 entering/leaving this routine. Restore lineno to its right value
20684 before calling expand_end_bindings.
20685 (build_method_invocation_stmt): build_invoke called with the
20686 current line information.
20687 (build_invoke): New argument cl. Wrap the function call around a
20688 wfl node.
20689 (refine_accessible_methods_list): Changed comment, removed
20690 unnecessary code.
20691 * parse.h: Fixed typo in comments.
20692 (CLASS_OR_INTERFACE): Handle the new CLASS_* flags location.
20693 (JAVA_MAYBE_GENERATE_DEBUG_INFO): New macro.
20694 (struct parser_ctxt): New fields ccb_indent, last_ccb_indent1,
20695 parser_ccb_indent.
20696 * lex.c (java_lex): Record the last closing curly bracket of a
20697 function.
20698 * jcf-parse.c (jcf_parse_source): Now calls
20699 java_check_methods. Clarified comment, fixed typo.
20700
20701 1998-04-09 Dave Brolley <brolley@cygnus.com>
20702
20703 * lang.c (init_parse): Expose for non USE_CPPLIB builds.
20704 (finish_parse): Expose for non USE_CPPLIB builds.
20705
20706 1998-04-08 Jeffrey A Law (law@cygnus.com)
20707
20708 * lang.c (lang_print_xnode): New function.
20709
20710 1998-04-03 Per Bothner <bothner@cygnus.com>
20711
20712 * decl.c (class_dtable_decl), java-tree.h: New tree node.
20713 * class.c (get_dispatch_vector, get_dispatch_table): New functions
20714 used to build a class's dispatch table.
20715 (make_class_data): Generate dispatch table if flag_assume_compiled.
20716 Set dtable of class object to address of class_dtable_decl.
20717
20718 * decl.c (int_decl_processing): Make soft_badarrayindex_node
20719 be volatile and have side effects - generates better code.
20720
20721 * class.c, expr.c, parse.y: CLASS_INTERFACE, CLASS_FINAL, etc:
20722 These flags were defined for TYPE_DECLs, but used on RECORD_TYPEs.
20723
20724 * expr.c (expand_invoke): If class is final, method is
20725 effectively final, so can call it directly.
20726
20727 * java-tree.h (TYPE_NVIRTUALS, TYPE_VTABLE): New macros.
20728
20729 * Makefile.in, Make-lang.in: Add missing $(exeext)s.
20730
20731 1998-03-19 Alexandre Petit-Bianco <apbianco@cygnus.com>
20732
20733 * parse.y (build_method_invocation_stmt): Removed extra argument
20734 to build_invoke.
20735
20736 1998-03-16 Alexandre Petit-Bianco <apbianco@cygnus.com>
20737
20738 * expr.c (dtable_indent): Now static global.
20739 (expand_invoke): Now call invoke_build_dtable and
20740 build_invokevirtual.
20741 (invoke_build_dtable, build_invokevirtual): New functions.
20742 * jcf-io.c (find_class): Defer issuing a warning by setting
20743 jcf->outofsynch to 1.
20744 * jcf-parse.c (jcf_out_of_synch): New function.
20745 (load_class): Test this_jcf.outofsynch flag and call
20746 jcf_out_of_synch accordingly.
20747 * jcf.h: (typedef struct JCF): New flag outofsynch. Fixed typo in
20748 comment indentation.
20749 * lex.c (java_get_unicode): Fixed code indentation.
20750 (java_lex): Create string literal. Fixed typo. Removed several
20751 premature obstack_free.
20752 * parse.h: New enums for name resolution and invocation mode.
20753 (struct qualification): New data structure.
20754 (RESOLVE_CHAIN_REMAINDER, BUILD_PTR_FROM_NAME): New macros.
20755 (do_resolve_class, build_method_invocation_stmt,
20756 breakdown_qualified, qualify_ambiguous_name, resolve_and_layout,
20757 debug_line, identical_subpath_p, invocation_mode,
20758 refine_accessible_methods_list, build_invoke,
20759 lookup_method_invoke): New functions declared.
20760 (build_invokevirtual, invoke_build_dtable, match_java_method,
20761 build_field_ref, jcf_out_of_synch): New references to external
20762 functions.
20763 (struct parse_ctxt): Removed artificial_constructor field.
20764 * parse.y: (array_type:): Type defined for this rule.
20765 (class_type:): Installed default rule for interface_type:.
20766 (array_type:): Now build Java array type.
20767 (qualified_name:): Now use obstack_grow0.
20768 (method_declaration:): Skip the artificial constructor added to
20769 the list, if any.
20770 (abstract_method_declaration:): Execute the code only during pass 1.
20771 (block:): Installed default rule in block_statements:.
20772 (block_statement:): Add the statement to the method during pass 2.
20773 (statement_expression): Installed default rule for
20774 method_invocation:.
20775 (argument_list:): Added code to build the argument list.
20776 (method_invocation:): Added call to create the method invocation
20777 node.
20778 (yyerror): Now use obstack_grow0. Removed bogus obstack_free.
20779 (debug_line): New function for debug.
20780 (complete_class_decl): No longer do something during pass 1.
20781 (method_header): Use BUILD_PTR_FROM_NAME.
20782 (parser_qualified_classname): Use obstack_grow0. Removed bogus
20783 obstack_free.
20784 (parser_chain_incomplete_item): Use BUILD_PTR_FROM_NAME. Modified
20785 function's main comment.
20786 (java_complete_class): Set CLASS_LOADED_P on all fixed incomplete
20787 classes.
20788 (complete_method_decl): Use BUILD_PTR_FROM_NAME and promote types.
20789 (resolve_class): Now works with arrays.
20790 (do_resolve_class, resolve_and_layout): New functions.
20791 (java_check_regular_methods): Reverse method list before and after
20792 having processed it. No longer set ctxp->artificial_constructor.
20793 (read_import_dir): Test jcf->outofsynch and call jcf_out_of_synch
20794 accordingly. Fixed typo in issued error message. Now use
20795 obstack_grow0.
20796 (find_in_imports_on_demand): Now use obstack_grow0.
20797 (declare_local_variables): Use BUILD_PTR_FROM_NAME.
20798 (source_end_java_method): Call expand_expr_stmt instead of
20799 expand_expr. Calls it before calling expand_function_end.
20800 (java_method_add_stmt): Do nothing if errors were found during
20801 parsing.
20802 (java_layout_parsed_class): Set CLASS_LOADED_P and fixed typo.
20803 (build_method_invocation_stmt, build_invoke, invocation_mode,
20804 lookup_method_invoke, refine_accessible_methods_list,
20805 qualify_ambiguous_name, breakdown_qualified, identical_subpath_p):
20806 New functions.
20807 * typeck.c (build_java_signature): Properly end method signature
20808 if return type skipped.
20809 (match_java_method): New function.
20810
20811 1998-03-16 Per Bothner <bothner@cygnus.com>
20812
20813 * jcf-io.c (find_classfile): If USE_JCF_STDIO, fopen in binary mode.
20814
20815 1998-02-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
20816
20817 * expr.c (build_invoke_non_interface): New function.
20818 (methods_ident, ncode_ident): Now static globals.
20819 (expand_invoke): Use build_invoke_non_interface.
20820 * java-tree.h (struct lang_decl): New field function_decl_body.
20821 (DECL_FUNCTION_BODY): New macro.
20822 * jcf-parse.c (jcf_parse_source): Deeper check before setting
20823 CLASS_FROM_SOURCE_P.
20824 (parse_source_file): Fixed typos. Call java_layout_parsed_class
20825 before starting pass 2. Call to java_generate_parsed_class replaced
20826 by java_register_parsed_class.
20827 * lex.c: Fixed typo in header. Some line width related formating.
20828 * lex.h: Some line width related formating.
20829 * parse.h (source_end_java_method, resolve_expression_name,
20830 complete_class_decl, maybe_create_class_interface_decl,
20831 check_class_interface_creation): New static function declarations.
20832 (java_layout_parsed_class, java_method_add_stmt): New function
20833 declarations.
20834 (struct parser_ctxt): Field mark_class_generate removed. New
20835 fields class_list and artificial_constructor.
20836 * parse.y: Fixed typo in header.
20837 (class_declaration:): Call complete_class_decl when class body
20838 parsed.
20839 (method_declaration:): Call source_end_java_method in pass 2 when
20840 the method body is defined.
20841 (postfix_expression:): Do expression name resolution on sub-rule
20842 name during pass 2.
20843 (create_class, create_interface): Merged common pieces.
20844 (check_class_interface_creation, maybe_create_class_interface_decl):
20845 New functions.
20846 (complete_class_decl): New function.
20847 (register_fields): Fixed line width related typo.
20848 (method_header): Correctly skip first argument when fixing
20849 argument line. Changed the loop.
20850 (java_check_circular_reference): Now use ctxp->class_list.
20851 (java_complete_class): Removed start/stop marking.
20852 (java_check_regular_methods): Now takes a class decl as an
20853 argument. Add default constructor if none were encountered.
20854 (java_check_methods): Now use ctxp->class_list. Changed call to
20855 java_check_regular_methods.
20856 (source_start_java_method): Set DECL_ARG_TYPE for each function
20857 arguments.
20858 (source_end_java_method, java_method_add_stmt): New functions.
20859 (java_generate_parsed_class): No longer exists.
20860 (java_layout_parsed_class, java_register_parsed_class): New functions.
20861 (resolve_expression_name): New function.
20862
20863 1998-02-12 Alexandre Petit-Bianco <apbianco@cygnus.com>
20864
20865 * jcf-parse.c: (parse_source_file): Check on errors after init lex.
20866 * lex.c: (java_init_lex): Defer ctxp->java_pass initialization
20867 until pass initializations are done. Call read_import_dir with
20868 pass set to 0.
20869 * parse.h: (lookup_modifier_cl): New function declared.
20870 (INTERFACE_FIELD_MODIFIERS): New macro.
20871 (OBSOLETE_MODIFIER_WARNING): New macro.
20872 * parse.y: (register_fields): Class type and current field name in
20873 local variables. Check modifier(s) if adding field(s) to an interface.
20874 (check_abstract_method_header): Now use OBSOLETE_MODIFIER_WARNING
20875 and report errors using the faulty modifier line context.
20876 (lookup_modifier_cl): New function.
20877 (read_import_dir): Detect and report default import processing
20878 failure.
20879
20880 1998-02-11 Brendan Kehoe <brendan@cygnus.com>
20881
20882 Add a pair of -fassume-compiled/-fno-assume-compiled options.
20883 * class.c (is_compiled_class): Return 1 after making sure it
20884 qualifies as loaded, if FLAG_ASSUME_COMPILED is set.
20885 * lang-options.h: Add -fassume-compiled/-fno-assume-compiled.
20886 * java-tree.h (flag_assume_compiled): Add decl.
20887 * lang.c (lang_f_options): Add the flag.
20888 (flag_assume_compiled): Add decl, default to 0.
20889
20890 1998-02-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
20891
20892 * class.c (class_depth): Call to load_class uses extra VERBOSE arg.
20893 (is_compiled_class): Likewise.
20894 (layout_class): Likewise.
20895 (layout_class): Detect and lay out classes defined in source code.
20896 (interface_of_p, add_interface_do, may_add_interface): New
20897 function.
20898 (add_interface): Now use add_interface_do.
20899 (add_method_1): New function.
20900 (add_method): Now use add_method_1.
20901 (pushlevel): Debug message conditional to SOURCE_FRONTEND_DEBUG.
20902 (complete_start_java_method): New function.
20903 (start_java_mehod): Now call complete_start_java_method.
20904 * expr.c (lookup_field): Call to load_class uses extra VERBOSE arg.
20905 (expand_invoke): Likewise and fixed typo.
20906 *gjava.c: (print_super_field): Use new argument to find_class
20907 DO_CLASS_FILE.
20908 (main): Likewise.
20909 *java-tree.h: (CLASS_FROM_SOURCE_P): New flag on RECORD_TYPE.
20910 (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
20911 QUALIFIED_P, IS_AN_IMPORT_ON_DEMAND_P): New flags on
20912 IDENTIFIER_NODE.
20913 (CLASS_COMPLETE_P): New flag on TYPE_DECL.
20914 (add_method_1, push_class): New prototypes.
20915 *jcf-dump.c: find_class now uses new DO_CLASS_FILE argument.
20916 *jcf-io.c: (open_in_zip): jcf now stores a pointer to the Zip
20917 directory where the class was found.
20918 (find_class): New argument DO_CLASS_FILE. Function find_class
20919 modified accordingly.
20920 *jcf-parse.c: (fix_class_path): New function.
20921 (load_class): Use new VERBOSE argument. load_class now finds and
20922 loads/parses .class/.java files. Save read_state of current_jcf
20923 if necessary.
20924 (java_parser_abort_on_error): New macro.
20925 (jcf_parse_source, parse_source_file): New function.
20926 (jcf_parse): Fixed typo.
20927 (yyparse): Call parse_source_file () only.
20928 (process_zip_dir): Fixed typo, fix zdir->filename_length when
20929 writing the real class name back in the zip directory entry.
20930 (find_in_current_zip): IDENTIFIER_CLASS_VALUE may be null.
20931 (jcf_figure_file_type): Fixed bogus alloc and bcopy.
20932 *jcf.h: (typedef struct JCF): New fields java_source and zipd.
20933 (find_class): Prototype fixed.
20934 *lex.c: Added 1998 time stamp.
20935 Removed all static global variables, moved into the parser
20936 context data structure.. Now include unistd.h if SEEK_SET not
20937 defined.
20938 (java_init_lex): Rewritten.
20939 (java_sneak_unicode): Modified current unicode access in current line.
20940 (java_unget_unicode): Likewise.
20941 (java_allocate_new_line): New allocation management.
20942 (java_read_char): Modified access and storage of unget_utf8_value.
20943 New way of processing current unicode.
20944 (java_store_unicode, java_read_unicode): Fixed typo in declaration.
20945 (java_get_unicode): Now use the parser context.
20946 (java_lineterminator): Likewise.
20947 (java_lex): Now used java_lval argument (pointer to YYSTYPE), part
20948 of the reentrant parser implementation. Function now use the
20949 parser context data structure and java_lval. Fixed production of
20950 the float and double constant "out of range" error message. Fixed
20951 obstack use. Return integer value when hitting a modifier. Now
20952 return type for TRUE, FALSE and other predefined types. Return
20953 identifier as a TREE_LIST list containing the current line context
20954 as the TREE_VALUE sub-node.
20955 (java_unicode_2_utf8): Fixed typo in declaration.
20956 (java_lex_error): Now use the parser context data structure.
20957 *lex.h: Added 1998 time stamp.
20958 (struct java_line): New fields ref_count and next.
20959 (JAVA_LINE_CHECK, JAVA_LINE_MARK, JAVA_LINE_CHAIN,
20960 JAVA_LINE_UNMARK, ID_NAME, ID_CL): New macros.
20961 (JAVA_FLOAT_RANGE_ERROR, JAVA_INTEGRAL_RANGE_ERROR, UNGETC): Fixed.
20962 *parse.h: Added 1998 time stamp.
20963 (java_parse_source_file): Renamed from parse_source_file.
20964 (YYERROR_NOW, YYNOT_TWICE): Fixed.
20965 (CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
20966 INTERFACE_MODIFIER, INTERFACE_METHOD_MODIFIERS,
20967 JAVA_MODIFIER_CTX_UNMARK, IC_DECL, IC_DEPEND, DEPEND_DECL,
20968 THIS_MODIFIER_ONLY, ABSTRACT_CHECK, BEGIN_ONLY_PASS,
20969 END_ONLY_PASS, ELSE_ONLY_PASS, exit_java_complete_class,
20970 CLASS_OR_INTERFACE, INCOMPLETE_P): New macros.
20971 (struct parser_ctxt): New data structure to keep the parser context.
20972 *parse.y: Added 1998 time stamp, got rid of static global variables.
20973 (java_error_count, ctxp): New global variables.
20974 (%union): New value field.
20975 (numeric_type, integral_type): Rules removed.
20976 (primitive_type): Rule defined to handle integral, float, double and
20977 boolean types.
20978 (qualified_name, package_declaration,
20979 single_type_import_declaration, type_import_on_demand_declaration,
20980 modifiers, class_declaration, super, interfaces,
20981 interface_type_list, class_body, field_declaration,
20982 field_declaration, variable_declarators, variable_declarator,
20983 variable_declarator_id, method_declaration, method_header,
20984 formal_parameter_list, formal_parameter, method_body, block,
20985 static, interface_declaration, extends_interfaces,
20986 abstract_method_declaration, local_variable_declarators): Rules now
20987 define actions.
20988 (force_error, do_warning): New global statics.
20989 (push_parser_context, parser_context_save_global,
20990 parser_context_restore_global, pop_parser_context): New functions.
20991 (yyerror): Now uses the global parser context. Fixed use of obstack.
20992 (parse_error, parse_error_context, parse_warning_context,
20993 java_accstring_lookup, redefinition_error, check_modifiers,
20994 parser_add_interface, create_interface, create_class, find_field,
20995 duplicate_declaration_error, register_fields, method_header,
20996 check_modifiers_consistency, check_abstract_method_header,
20997 method_declarator, parser_qualified_classname,
20998 parser_check_super_interface, parser_check_super,
20999 parser_chain_incomplete_item, java_check_circular_reference,
21000 layout_class_from_source, java_complete_class,
21001 complete_method_decl, resolve_class, complete_class_report_errors,
21002 java_check_final, check_method_redefinition,
21003 java_check_regular_methods, java_check_abstract_methods,
21004 java_check_methods, lookup_java_interface_method2,
21005 lookup_java_method2, lookup_cl, find_name_in_single_imports,
21006 process_imports, find_in_imports, read_import_entry,
21007 read_import_dir, find_in_imports_on_demand,
21008 check_pkg_class_access, not_builtin_p, declare_local_variables,
21009 source_start_java_method, java_generate_parsed_class): New
21010 functions.
21011 *typeck.c: (signature_include_return): New global variable.
21012 (build_java_signature): Use SIGNATURE_INCLUDE_RETURN figure whether
21013 to add the function returned type in the signature.
21014
21015 1998-02-09 Brendan Kehoe <brendan@cygnus.com>
21016
21017 * jcf-io.c (open_in_zip): Use strncmp and LEN.
21018
21019 1998-01-29 Dave Brolley <brolley@cygnus.com>
21020
21021 * Make-lang.in (java.info): Added.
21022 (java.install-info): Added
21023
21024 1998-01-27 Brendan Kehoe <brendan@cygnus.com>
21025
21026 * Makefile.in (clean): Also remove java/parse.c.
21027
21028 1998-01-26 Brendan Kehoe <brendan@cygnus.com>
21029
21030 Add a pair of -fbounds-check/-fno-bounds-check options.
21031 * lang.c (lang_decode_option): Add code to grok arguments.
21032 (flag_bounds_check): Add decl.
21033 (lang_f_options): New array w/ the option in it.
21034 * java-tree.h (flag_bounds_check): Add decl.
21035 * lang-options.h: New file.
21036 * expr.c (build_java_arrayaccess): Use flag_bounds_check instead
21037 of a static macro value.
21038 (JAVA_ARRAY_EXCEPTION): Delete macro.
21039
21040 1998-01-23 Per Bothner <bothner@cygnus.com>
21041
21042 * typeck.c (build_java_array_type): Fix two bugs in previous change.
21043 * expr.c (build_anewarray): Add missing promote_type.
21044
21045 1998-01-22 Per Bothner <bothner@cygnus.com>
21046
21047 Add array types with known length to optimize bounds checking.
21048 * typeck.c (build_java_array_type): Take length parameter.
21049 (java_array_type_length, build_prim_array_type): New functions.
21050 * java-tree.h: Update for new functions.
21051 * expr.c, typeck.c, verify.c: Update build_java_array_type calls.
21052 * class.c: Use build_prim_array_type.
21053 * expr.c (can_widen_reference_to): Handle known-length array types.
21054 (verify_jvm_instructions): Keep track of integer push instructions
21055 followed by newarray/anewarray, so we can build known-length arrays.
21056 (JAVA_ARRAY_DATA_OFFSET): Replace by ...
21057 (java_array_data_offset): New function.
21058 (build_java_array_length_access): New function. Optimize if constant.
21059 (build_java_arrayaccess): Constant fold bounds check.
21060 (expand_java_newarray, expand_java_anewarray): Replaced by ...
21061 (build_newarray, build_anewarray): New functions.
21062 (ARRAY_NEW_NUM, ARRAY_NEW_PTR): Use build_{a,}newarray.
21063 * verify.c (merge_types): Handle known-lengh array types.
21064
21065 1998-01-19 Per Bothner <bothner@cygnus.com>
21066
21067 * expr.c (expand_byte_code): Fix performace bug, which caused
21068 searching linenumber_table to be linear rather than constant.
21069
21070 1997-12-12 Per Bothner <bothner@cygnus.com>
21071
21072 * Makefile.in (BISON, BISONFLAGS): Add missing macros.
21073
21074 * decl.c, java-tree.h (soft_fmod_node): New global.
21075 * decl.c (init_decl_processing): Define __builtin_fmod.
21076 * expr.c (build_java_binop): Implement TRUNC_MOD_EXPR for REAL_TYPE
21077 using __builtin_fmod.
21078
21079 1997-12-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
21080
21081 * keyword.h: New file, output of keyword.gperf as processed by
21082 gperf.
21083 * lex.c (java_lex_init): Initialize java_error_flag.
21084 * parse.c (YYERROR_NOW): Uses java_error_flag.
21085 * parse.y: New static java_error_flag. Useless definition of
21086 buffer_error gone.
21087 * parse.y (java_error): Portable error recovery using
21088 java_error_flag (not yet completely tuned).
21089
21090 1997-12-04 Brendan Kehoe <brendan@lisa.cygnus.com>
21091
21092 * Makefile.in (parse.c): Use $(srcdir) for parse.y.
21093
21094 1997-12-03 Alexandre Petit-Bianco <apbianco@cygnus.com>
21095
21096 * Makefile.in: (JAVA_OBJS): New object jcf-parse.o.
21097 (parse.c, lex.c, keyword.h): New rules for Java source code
21098 front-end.
21099 * parse.c: Renamed into jcf-parse.c.
21100 * jcf-parse.c (yyparse): Invoke the parser to process Java source code.
21101 * keyword.gperf: New file, Java keywords.
21102 * parse.y: New file, Java language grammar.
21103 * parse.h: New file, Java language grammar definitions.
21104 * lex.c: New file, Java language lexer.
21105 * lex.h: New file, Java language lexer definitions.
21106
21107 1997-12-03 Per Bothner <bothner@cygnus.com>
21108
21109 * decl.c (clinit_identifier_node), java-tree.h: New global.
21110 * java-tree.h (IS_METHOD_INIT_P, IS_METHOD_CLINIT_P): Removed.
21111 * verify.c (verify_jvm_instructions): Inline use of removed macros.
21112 * expr.c (expand_java_field_op): Check for invalid assignment
21113 to final field.
21114
21115 * jcf-reader.c (get_attribute): Test for wrong attribute length.
21116
21117 1997-10-27 Per Bothner <bothner@cygnus.com>
21118
21119 * verify.c (verify_jvm_instructions): When processing a handler,
21120 attempt to set the current_subr to the right value.
21121 (More complicated code combines Sep 17 and Oct 22 versions.)
21122
21123 1997-10-24 Per Bothner <bothner@cygnus.com>
21124
21125 * class.c (push_class): Figure out (guess) name of source file.
21126 * parse.c (set_source_filename): Set DECL_SOURCE_FILE of class decl.
21127 (give_name_to_class): Don't guess source name; use DECL_SOURCE_FILE.
21128 (parse_class_file): Change return type from int to void.
21129 Call debug_start_source_file/debug_end_source_file.
21130
21131 * expr.c (build_java_binop): Fix masking 2nd operand.
21132 * decl.c (init_decl_processing): Set sizetype first.
21133
21134 1997-10-22 Per Bothner <bothner@cygnus.com>
21135
21136 * verify.c (verify_jvm_instructions): Don't set current_subr to NULL.
21137 (Revert Sep 17 change.)
21138
21139 1997-10-21 Alexandre Petit-Bianco <apbianco@cygnus.com>
21140
21141 * parse.c (process_zip_dir): Skip ZIP entries not bearing the
21142 .class extension in their name and fix thing so we don't process
21143 them parse_zip_file_entries().
21144 (parse_zip_file_entries): Cleaned unused local variables.
21145
21146 1997-10-20 Per Bothner <bothner@cygnus.com>
21147
21148 * expr.c (can_widen_reference_to): Allows equal array element types.
21149 (expand_byte_code): PRE_RET must expand OPERAND_VALUE (to get index).
21150 * jcf-dump.c (RET): Get (and print) index.
21151
21152 * verify.c (verify_jvm_instructions case OPCODE_anewarray):
21153 Promote element type to POINTER_TYPE.
21154
21155 1997-10-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
21156
21157 * jcf-reader.c, parse.c: (parse_zip_file, process_zip_dir,
21158 find_in_current_zip, jcf_figure_file_type): Moved from
21159 jcf-reader.c to parse.c.
21160 * zextract.c: (read_zip_archive): takes file_comment_length possible
21161 field into account.
21162
21163 1997-10-20 Per Bothner <bothner@cygnus.com>
21164
21165 * verify.c (verify_jvm_instructions): Var can also be promoted to int.
21166
21167 * verify.c (merge_types): Handle array types even better ...
21168
21169 1997-10-17 Per Bothner <bothner@cygnus.com>
21170
21171 * expr.c (java_stack_pop): Fix use of NULL_TREE for TYPE_SECOND.
21172
21173 * java-tree.h (PUSH_FIELD): Set DECL_ARTIFICIAL.
21174 * class.c (make_class_data): Don't build fields_decl if no fields.
21175 When building fields_decl, skip if DECL_ARTIFICIAL.
21176
21177 * expr.c (java_stack_swap): Update stack_type_map.
21178 * verify.c (merge_types): Handle array types better.
21179
21180 1997-10-15 Per Bothner <bothner@cygnus.com>
21181
21182 * class.c (add_field): Don't promote short integral fields to
21183 int any more (unless JAVA_PROMOTE_TO_INT), since Kaffe doesn't.
21184 * expr.c (push_value): Promote and convert short integral values.
21185
21186 * decl.c, java-tree.h (integer_two_node): New constant node.
21187 * verify.c (merge_types): Check for TYPE_RETURN_ADDR.
21188
21189 1997-10-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
21190
21191 * class.c (append_gpp_mangled_type): Use function argument
21192 unpromoted type to generate mangled name.
21193
21194 1997-10-13 Alexandre Petit-Bianco <apbianco@cygnus.com>
21195
21196 * constants.c (build_constant_data_ref): Now uses current_class
21197 instead of main_class.
21198 (build_constants_constructor): Now uses current_class instead of
21199 main_class.
21200 * zipfile.h: (struct ZipFileCache): Now defined here. Declaration
21201 of the global variable SeepZipFiles done here.
21202 * zextract.c (read_zip_archive): extra_field optional field taken
21203 into account while computing the position of the class file in the
21204 archive.
21205 * verify.c (verify_jvm_instructions): Use current_jcf to search
21206 the constant pool.
21207 * parse.c (load_class): First search for the class to load in the
21208 current zip file. Saves current_jcf (restored before returning
21209 from that function). Don't call JCF_FINISH in the class was found
21210 in the current ZIP file.
21211 (jcf_parse): If the class was found in the current ZIP file, save
21212 its tree_constant_pool (for later reuse).
21213 (parse_class_file): New function. Process each method defined in
21214 the current class and record the class as to be later registered.
21215 (yyparse): Rewritten. Figure the type of the current file and switch
21216 accordingly.
21217 * lang.c: New global variable current_jcf.
21218 (lang_init): Removed compiling_from_source test (done later, in
21219 yyparse). Removed call the jcf_parse ().
21220 * jcf.h (JCF_ZIP, JCF_CLASS, JCF_SOURCE): New defined values.
21221 (typedef struct JCF): New fields seen_in_zip (to mark a class found
21222 in the current ZIP file) and zip_offset (offset to the class data in
21223 the current zip file).
21224 * jcf-reader.c: zipfile.h included.
21225 localToFile: New ZipFileCache static global variable
21226 (parse_zip_file_entries): New function. Browse the current ZIP
21227 file directory and process each class found.
21228 (process_zip_dir): New function. Register each class found in the
21229 ZIP file directory. The class aren't parsed but a valid JCF is
21230 link to each of them.
21231 (find_in_current_zip): New function. Search for a class in the
21232 current ZIP file directory. If found, prepare the class so that it
21233 can be loaded.
21234 (jcf_figure_file_type): New function. Examine the file structure
21235 to figure a class file, a ZIP file. If none of these categories are
21236 matched, a source file is assumed.
21237 * jcf-io.c: Removed definition of ZipFileCache (moved in zipfile.h).
21238 SeenZipFile: New global variable.
21239 (open_in_zip): Use zipmember's length to accelerate the search for
21240 a member. If zipmember was NULL and zip file successfully read,
21241 return 0.
21242 * java-tree.h: New global variable current_jcf declared. Added
21243 declaration for current_constant_pool_tags, current_constant_pool_data,
21244 current_constant_pool_length, current_constant_pool_data_ref.
21245 (struct lang_type): Augmented with two fields. struct JCF *jcf (to
21246 store the JCF of classes seen in a zip file) and tree *constant_pool
21247 (to save a loaded class constant pool). current_class declared here.
21248 * expr.c (expand_invoke): Use current_jcf instead of main_jcf to
21249 retrieve method_ref_constant.
21250 (PUSHC): java_push_constant_from_pool now uses current_jcf.
21251 (OBJECT): get_class_constant now uses current_jcf.
21252 (ARRAY_NEW_PTR): get_class_constant now uses current_jcf.
21253 (ARRAY_NEW_MULTI): get_class_constant now uses current_jcf.
21254 (expand_invoke): Now uses current_class instead of main_class
21255 (build_class_init): Now uses current_class instead of main_class
21256 * class.c: New static global variable registered_class.
21257 (register_class): New function.
21258 (emit_register_class): Modified to use registered_class instead of
21259 main_class
21260 (is_compiled_class): Now take into account class seen in the archive.
21261
21262 1997-10-06 Per Bothner <bothner@cygnus.com>
21263
21264 * except.h: Renamed to: java-except.h.
21265 * parse.c, except.c, expr.c, verify.c: Update #include accordingly.
21266 * except.c: Add semi-working (commented out) implementation.
21267
21268 * expr.c (expand_iinc): Add needed flush_quick_stack.
21269 * parse.c (set_source_filename): New function.
21270 (give_name_to_class): Set input_filename from package.classname.java.
21271
21272 * jcf-io.c (find_class): Don't look first in ".".
21273
21274 1997-10-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
21275
21276 * zextract.c (read_zip_archive): Now takes into account the
21277 extra_field field.
21278 * expr.c (can_widen_reference_to): Modified to handle sub-interfaces.
21279
21280 1997-09-20 Per Bothner <bothner@cygnus.com>
21281
21282 * constants.c, java-tree.h (build_internal_class_name): New function.
21283 (alloc_class_constant): Re-implement using build_internal_class_name.
21284 * class.c (make_class_data): Likewise.
21285 * class.c (hashUtf8String): Make hash algorithm match String.hashCode.
21286
21287 1997-09-17 Per Bothner <bothner@cygnus.com>
21288
21289 * verify.c (verify_jvm_instructions): Temporarily set current_subr
21290 to NULL before pushing an exception handler target.
21291
21292 * expr.c (flush_quick_stack): Save from low stack indexes to high.
21293 (java_stack_swap, java_stack_dup): Re-write to be safe from
21294 clobbering registers.
21295 (build_class_init): New function.
21296
21297 1997-09-17 Alexandre Petit-Bianco <apbianco@cygnus.com>
21298
21299 * typeck.c (build_java_array_type): Temporary use
21300 permanent_obstack to create the array 'length' field.
21301 * expr.c (lookup_label): Temporay use permanent_obstack to create
21302 label if not found.
21303 * class.c (push_super_field): Tempory use permanent_obstack.
21304
21305 1997-09-15 Alexandre Petit-Bianco <apbianco@cygnus.com>
21306
21307 * typeck.c (type_for_mode): Now handles double_type_node and
21308 float_type_node.
21309 * verify.c (verify_jvm_instructions): The instruction following
21310 the wide bytecode is checked. OPCODE_ret added to the list of
21311 wide.
21312
21313 1997-09-11 Alexandre Petit-Bianco <apbianco@cygnus.com>
21314
21315 * class.c (make_class): Temporary use permanent_obstack. Set the
21316 class CLASS_P field to 1.
21317 (push_class): Temporary use permanent_obstack.
21318 (set_super_info): Temporary use permanent_obstack.
21319 (add_method): Temporary use permanent_obstack, set
21320 METHOD_TRANSIENT().
21321 (add_field): Temporary use permanent_obstack. Sets
21322 FIELD_VOLATILE() and FIELD_TRANSIENT().
21323 (build_class_ref): Temporary use permanent_obstack if the class
21324 isn't compiled.
21325 (build_static_field_ref): Temporary use permanent_obstack when
21326 creating field's rtl.
21327 (get_access_flags_from_decl): Handle ACC_VOLATILE, ACC_TRANSIENT,
21328 ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT flags for methods
21329 and fields. Function finalized, as far as flag handling.
21330 (push_class_static_dummy_field): Temporary use permanent_obstack.
21331 (emit_register_class): Force generation of class registration at
21332 -O3 or deeper.
21333 * decl.c (end_java_method): Call permanent_allocation() before
21334 returning.
21335 * expr.c (can_widen_reference_to): Added comment to interface
21336 handling, fixed typo.
21337 (lookup_field): Now uses CLASS_P() to correct FIXME
21338 (expand_invoke): Verification on public && !static &&
21339 !abstract moved into soft_lookupinterfacemethod (kaffe).
21340 Use Object class dtable if objectref is an array when expanding
21341 invokeinterface.
21342 (java_push_constant_from_pool): Temporary use permanent_obstack
21343 for CONSTANT_string
21344 * parse.c (get_ref_constant): Temporary use permanent_obstack to
21345 create constant references.
21346 (get_constant): Temporary use permanent_obstack to create constant.
21347 (load_class): Temporary use permanent_obstack to load class.
21348 (jcf_parse): Temporary use permanent_obstack to perform class
21349 layout.
21350 * typeck.c: (parse_signature_string): Temporary use permanent_obstack.
21351 (build_java_signature): Temporary use permanent_obstack.
21352 * verify.c: (verify_jvm_instruction): removed unnecessary verification
21353 on ACC_SUPER flag.
21354 * java-tree.h (METHOD_NATIVE, METHOD_TRANSIENT): Defined.
21355 (FIELD_VOLATILE, FIELD_TRANSIENT): Defined.
21356 (CLASS_P): Defined
21357
21358 1997-09-11 Per Bothner <bothner@cygnus.com>
21359
21360 * class.c (append_gpp_mangled_type): Fix typo.
21361 (emit_register_class): Use main_class to get class object, rather
21362 than looking for no-longer-existing static decl starting with _CL.
21363 * typeck.c (parse_signature_type): Promote array element type
21364 if it is a RECORD_TYPE.
21365
21366 1997-09-10 Per Bothner <bothner@cygnus.com>
21367
21368 * class.c (push_class_static_dummy_field): New function.
21369 (mangle_static_field): New. Do G++-style mangling of static fields.
21370 (layout_class): Mandle static fields here, not in add_field.
21371 (build_class_ref): The class object is now a dummy static field.
21372 * decl.c (find_local_variable): Look for best, instead of first match.
21373 * expr.c (push_type): Always promote_type, not just for RECORD_TYPE.
21374 (build_java_athrow): Don't check here if exception is Throwable.
21375 * java-tree.h (TYPE_UNSET): Renamed to TYPE_UNKNOWN.
21376 (TYPE_USED): Removed. No longer used ...
21377 * parse.c (jcf_parse): Call push_class_static_dummy_field.
21378 * verify.c (push_pending_label): New function.
21379 (push_pending_block): Renamed to check_pending_block.
21380 (merge_types): Remove unneeded suuport for TYPE_UNUSED.
21381 (verify_jvm_instructions): Only reset prev_eh_ranges (to force
21382 re-checking possible handlers) after a store (less wasted work).
21383 Check for null handler (finally) before calling add_handler.
21384 Various changes to (finally?) correctly handle try/finally.
21385
21386 1997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com>
21387
21388 * class.c: Include stdio.h.
21389
21390 1997-09-04 Per Bothner <bothner@cygnus.com>
21391
21392 * expr.c (expand_invoke): Use COMPOUND_EXPR (and TREE_SIDE_EFFECTS)
21393 to make sure class is initialized before static/special invoke.
21394
21395 * verify.c (verify_jvm_instructions): On a store instruction,
21396 call find_local_variable to force pre-allocation of decl and rtx.
21397 * decl.c (push_jvm_slot): Set DECL_REGISTER on stack slots.
21398
21399 1997-09-03 Per Bothner <bothner@cygnus.com>
21400
21401 * class.c (build_class_ref): Strip off "promoted_" if need be.
21402 (make_field_value): Call build_java_signature when needed.
21403 (layout_class): Don't make_function_rtl if METHOD_ABSTRACT.
21404 * expr.c (build_java_athrow): Don't push_value of exception.
21405 (build_java_binop): Implement COMPARE_L_EXPR and COMPARE_G_EXPR to
21406 match specification of [fd]cmp[lg] for NaNs.
21407 (expand_byte_code): Add support for exception handler ranges.
21408 * except.c: Add skeleton for EH code-generation.
21409 * verify.c (merge_types): Treat all promoted integral types as equal.
21410 * constants.c (build_constants_constructor): To force creation of
21411 current_constant_pool_data_ref, call build_constant_data_ref.
21412
21413 * javaop.def (lload): Fix typo.
21414 * jcf-dump.c (main): Clear filename to prevent possibly-bad free.
21415
21416 1997-09-02 Brendan Kehoe <brendan@lisa.cygnus.com>
21417
21418 * parse.c: Don't include function.h.
21419
21420 1997-08-27 Per Bothner <bothner@cygnus.com>
21421
21422 * except.[ch]: New files.
21423 * Makefile.in (JAVA_OBJS): Add except.o
21424 * expr.c: Temporary warning about unimplemented exceptions.
21425 * verify.c: Verify exception handlers.
21426
21427 * jcf-dump.c (disassemble_method): Print exception table.
21428
21429 1997-08-27 Alexandre Petit-Bianco <apbianco@cygnus.com>
21430
21431 * expr.c (verify_jvm_instructions): Started a thorough
21432 verification of invoke* bytecodes.
21433 (expand_byte_code): flush quick stack if PC is the target of a
21434 branch. and undef RET (conflicting with config/i386/i386.h).
21435 (expand_java_arrayload): Fixed bogus cast, when Boolean type is
21436 used.
21437 (expand_invoke): Now handles invokeinterface and do more
21438 verification according to the bytecode.
21439 (lookup_field): Don't try to load the class if processing
21440 dtable_type.
21441 (can_widen_reference_to): Now handles interfaces.
21442 * decl.c (init_decl_processing): New global variable
21443 soft_lookupinterfacemethod_node, declared in java-tree.h.
21444 Call set_super_info on string_type_node.
21445 * java-tree.h (CLASS_INTERFACE, CLASS_ABSTRACT, CLASS_SUPER): Now
21446 defined.
21447 * class.c (set_super_info): Fills the CLASS_* flags according to
21448 access_flags.
21449 (get_access_flags_from_decl): Handles all class flags.
21450
21451 1997-08-26 Per Bothner <bothner@cygnus.com>
21452
21453 * class.c (add_method): Zero out newly-allocated DECL_LANG_SPECIFIC.
21454 * parse.c (yyparse): Check for abstract method, and missing code.
21455 * expr.c (expand_byte_code): Change interface.
21456 * lang.c (put_decl_node): Print promoted types prettier.
21457 * verify.c (verify_jvm_instruction): Change interface.
21458 Partial support for scanning exception table.
21459 For load instructions, handle promoted integral types.
21460
21461 1997-08-21 Per Bothner <bothner@cygnus.com>
21462
21463 * verify.c: New file, with contents moved from expr.c.
21464 * expr.c: Bunch of stuff (mostly verification) moved to verify.c.
21465 * typeck.c (is_array_type_p): Moved here from expr.c.
21466 * java-tree.h: Add some now-needed function declarations.
21467 * Makefile.in (JAVA_OBJS): Added verify.o.
21468
21469 1997-08-20 Alexandre Petit-Bianco <apbianco@cygnus.com>
21470
21471 * class.c (add_method): Sets the METHOD_SYNCHRONIZED flag, sets the
21472 METHOD_ABSTRACT flag.
21473
21474 * java-tree.h (METHOD_SYNCHRONIZED): Set to DECL_LANG_FLAG_4.
21475 (IS_METHOD_CLINIT_P, IS_METHOD_INIT_P): New macros.
21476 (METHOD_ABSTRACT): Set to DECL_LANG_FLAG_5
21477
21478 * decl.c (soft_monitorenter_node, soft_monitorexit_node): New global
21479 variables.
21480 (start_java_method): Hook for SYNCHRONIZED methods.
21481
21482 * expr.c (build_java_jsr, build_java_ret): New functions
21483 (JSR,PRE): New macros
21484 (PRE_TABLE_SWITCH, PRE_LOOKUP_SWITCH): Fixed and secured.
21485 (verify_jvm_instructions): tableswitch, lookupswitch,
21486 monitorenter, monitorexit, goto_w: verified.
21487 (LOOKUP_SWITCH, TABLE_SWITCH): Fixed generation of default: label
21488 (build_java_monitor): New function.
21489 (MONITOR_OPERATION): Modified to call build_java_monitor()
21490 (verify_jvm_instructions): Started a thorough verification of
21491 invoke* bytecodes.
21492
21493 1997-08-19 Per Bothner <bothner@cygnus.com>
21494
21495 Support verification of jsr/ret subroutines (used for try/finally).
21496 * decl.c (return_address_type_node): New type node.
21497 * java-tree.h (LABEL_RETURN_LABEL, LABEL_RETURN_TYPE_STATE,
21498 RETURN_MAP_ADJUSTED, LABEL_RETURN_LABELS, LABEL_IN_SUBR,
21499 LABEL_SUBR_START, LABEL_SUBR_CONTEXT, BCODE_VERIFIED): New macros.
21500 (TYPE_UNSET, TYPE_SECOND, TYPE_NULL, TYPE_RETURN_ADDR, TYPE_UNUSED,
21501 TYPE_USED): New macros for special types in type_map.
21502
21503 * java-tree.h (BCODE_JUMP_TARGET): Renamed to BCODE_TARGET.
21504 (BCODE_BACKWARDS_TARGET, CODE_FORWARDS_TARGET): Replaced by
21505 BCODE_JUMP_TARGET.
21506 * expr.c (expand_byte_code): Fix logic to warn of unused instructions.
21507
21508 * expr.c (can_widen_reference_to): New function.
21509 (pop_type): Use it.
21510 (merge_type_state): Support handling start of subroutine.
21511 (push_pending_block): Return char* error message, instead of calling
21512 fatal on an error. Also handle subroutines.
21513 (verify_jvm_instructions): Handle errors from push_poending_block.
21514 Support jsr and ret instructions.
21515
21516 1997-08-19 Per Bothner <bothner@cygnus.com>
21517
21518 * jcf-io.c (find_classfile): Fix thinko.
21519 * jcf-dump.c: Add CONVERT2 (to match changed javaop.def).
21520
21521 1997-08-12 Jason Merrill <jason@yorick.cygnus.com>
21522
21523 * Makefile.in (BISON): Remove.
21524
21525 1997-08-07 Per Bothner <bothner@cygnus.com>
21526
21527 * Makefile.in: Convert to autoconf.
21528 * config-lang.in (outputs): Added java/Makefile.
21529
21530 * Make-lang.in, lang-specs.h, config-lang.in, Makefile.in:
21531 Rename cc1java to jc1.
21532
21533 * lang.c (init_parse, finihs_parse): New functions #ifdef USE_CPPLIB.
21534 * Makefile.in (INTERNAL_CFLAGS): Add @extra_c_flags.
21535
21536 * class.c (class_depth): Do load_class if needed.
21537
21538 Mostly better verification.
21539 * decl.c (pushdecl): Set TYPE_STUB_DECL for a type.
21540 (init_decl_processing): Change return type of soft_checkcast.
21541 * expr.c (expand_java_CHECKCAST): Do push_value of the "casted" value.
21542 * lang.c (put_decl_string, put_decl_node, lang_printable_name,
21543 lang_print_error): New functions.
21544 (lang_init): Set global hook print_error_function to lang_print_error.
21545 * expr.c: In the type_map ptr_type_node is only used for null now.
21546 (pop_type, merge_types): Hence ptr_type_node matches any reference.
21547 (merge_types): Dererence pointer to record types before comparing.
21548 (decode_newarray_type, merge_types): On error just return NULL.
21549 (build_java_binop): Add preliminary implementation (with warning)
21550 for COMPARE_L_EXPR and COMPARE_G_EXPR (i.e. [fd]cmp[lg]).
21551 (lookup_label): Set DECL_IGNORED_P (for dwarf2out).
21552 (expand_compare, expand_java_goto, expand_java_call): Don't
21553 push_pending_block, since that only makes sense when verifying.
21554 (merge_type_state): Different return codes.
21555 (push_pending_block): A block may need to be verified more than once.
21556 (expand_byte_code): Warn about unused code at code generation time.
21557 (verify_jvm_instruction): Changed logic, since code may need to be
21558 re-verified if type-state has changed. Also, better error handling.
21559 Implement acmpeq, acmpne, pop, pop2, swap, checkcast, instanceof.
21560 Improve newarray, anewarray, ?aload, athrow,
21561 * java-tree.h (LABEL_CHANGED): New macro.
21562
21563 1997-08-05 Alexandre Petit-Bianco <apbianco@cygnus.com>
21564
21565 * decl.c (soft_athrow_node): New global variable initialized.
21566 * javaop.def (i2b, i2c, i2s): Invoke CONVERT2
21567 * typeck.c (convert): Added support for REAL_TYPE.
21568 (convert_to_char): New function.
21569 (convert): Handle CHAR_TYPE.
21570 * expr.c (expand_java_arraystore): Modified because CHAR/BYTE/BOOLEAN/
21571 SHORT now expect INT but store as CHAR/BYTE/BOOLEAN/SHORT.
21572 (expand_java_arrayload): CHAR/BYTE/BOOLEAN/SHORT now convert result to
21573 promoted type.
21574 (verify_jvm_instructions): Added break a the end of bogus unop: label.
21575 (OPCODE_<b|c|s>astore): Pop an int operand from the type stack
21576 (OPCODE_<b|c|s>astore): Push the promoted type onto the stack
21577 (process_jvm_instruction): New macro CONVERT2 for i2c, i2s and i2b.
21578 (JAVA_ARRAY_LENGTH_OFFSET, JAVA_ARRAY_DATA_OFFSET): Modified
21579 to Use The Right Things.
21580 (pop_type): Accept CHAR/BYTE/BOOLEAN/SHORT promoted type as
21581 compatible with INT. BOOLEAN is made equivalent to BYTE.
21582 (OPCODE_athrow, OPCODE_aconst_null, OPCODE_ifnull,
21583 OPCODE_ifnonnull): Now supported.
21584 (build_java_athrow): New function.
21585
21586 1997-08-04 Per Bothner <bothner@cygnus.com>
21587
21588 Rename method name <init> to match G++ (and fix mangling).
21589 * class.c (layout_class): Replace method name of <init> by class name.
21590 (make_method_value): Do inverse renaming of constructor from <init>.
21591 * java-tree.h (DECL_CONSTRUCTOR_P): New macro.
21592 * typeck.c (lookup_java_constructor): New function.
21593 * expr.c (expand_invoke): If method_name is <init>, call
21594 lookup_java_constructor to find constructor.
21595
21596 * parse.c (get_constant): Handle CONSTANT_Float and CONSTANT_Double.
21597
21598 1997-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com>
21599
21600 * parse.c (get_class_constant): Modified to handle array "classes"
21601 * typeck.c (set_local_type): Bug fixed when filling type_map[] with
21602 wide type.
21603 (convert): Modified to handle real type.
21604 * java-tree.h (soft_badarrayindex_node, soft_anewarray_node,
21605 soft_multianewarray, soft_newarray_node, soft_throw_node): New global
21606 variables declared.
21607 * decl.c (soft_badarrayindex_node, soft_anewarray_node,
21608 soft_multianewarray, soft_newarray_node, soft_throw_node): New
21609 global variables initialized.
21610 (find_local_variable): Handles the case of a pointer
21611 (end_java_method): Restore the use of one more scope
21612 * expr.c (build_java_arraynull_check, build_java_arrayaccess,
21613 build_java_array_length_access, expand_java_arrayload,
21614 expand_java_arraystore, expand_java_array_length,
21615 expand_java_multianewarray, expand_java_anewarray,
21616 build_java_check_indexed_type, is_array_type_p,
21617 build_java_throw_out_of_bound_exception): New functions.
21618 (STORE_INTERNAL): Now forces type of the decl to be type of the value.
21619 (OPCODE_arraylength, OPCODE_newarray, OPCODE_<t>astore,
21620 OPCODE_<t>aload): Implemented code for verification.
21621 (ARRAY_STORE, ARRAY_LOAD, ARRAY_LENGTH, ARRAY_NEW_PTR, ARRAY_NEW_NUM
21622 ARRAY_NEW_MULTI): Macro defined.
21623 (CONVERT): Modified to invoke convert().
21624 (case OPCODE_aload2): Fixed index typo from 2 to 1.
21625
21626 1997-07-31 Per Bothner <bothner@cygnus.com>
21627
21628 * class.c (push_class): Set DECL_ARTIFICIAL (for dbxout.c).
21629 (build_class_ref, is_compiled_class): Handle pointer-to-record types.
21630 (make_class_data): Field name needs '/' as package prefix.
21631 * expr.c (type_stack_dup, java_stack_dup): Fix fencepost errors.
21632
21633 1997-07-25 Per Bothner <bothner@cygnus.com>
21634
21635 Implement debug information for local variables.
21636 * java-tree.h (DECL_CODE_LENGTH, DECL_ARG_SLOT_COUNT,
21637 DECL_LOCAL_SLOT_NUMBER, DECL_LOCAL_START_PC, DECL_LOCAL_END_PC,
21638 DECL_LOCAL_SLOT_CHAIN): New macros.
21639 (struct lang_decl_var): New type.
21640 * parse.c (give_name_to_locals): Move to decl.c.
21641 * decl.c (give_name_to_locals): Re-written to Do The Right Thing.
21642 (start_java_method): Re-write parameter handling.
21643 (pending_local_decls): New global variable.
21644 (push_jvm_slot, maybe_pushlevels, maybe_poplevels): New functions.
21645 (find_local_variable): Accept pc so we can skips decls not in range.
21646 (struct binding_level): Add end_pc field.
21647 * expr.c (expand_byte_code): Call maybe_pushlevels and maybe_poplevels.
21648 (various): Change so current pc gets passed to find_local_variable.
21649
21650 * decl.c (init_decl_processing): Re-arrange fields in
21651 class_type_node and and method_type_node to match kaffe 0.9.1.
21652 * class.c (make_method_value, make_class_data): Update
21653 initializations to match.
21654
21655 1997-07-16 Per Bothner <bothner@cygnus.com>
21656
21657 * class.c (unicode_mangling_length, emit_unicode_mangled_name,
21658 append_gpp_mangled_name, append_gpp_mangled_type): New functions.
21659 (push_super_field): New function.
21660 (make_class_data): Handle inheritance of class static initializer.
21661 (layout_class): New name mangling.
21662 * constants.c (build_constant_data_ref): Init type of data array
21663 to a one-element array.
21664 (build_constants_constructor): Set DECL_SIZE from complete array type.
21665 * decl.c: Rename class_type, object_type etc to class_type_node,
21666 object_type_node etc. Make former inherit from latter.
21667 * expr.c (expand_invoke): Add cast of function address.
21668 * java-tree.h (TYPE_ARRAY_ELEMENT, PUSH_SUPER_VALUE): New.
21669 * parse.c (yyparse): Don't call layout_class here.
21670 * typeck.c (build_java_array_type): Set TYPE_ARRAY_ELEMENT.
21671
21672 1997-06-14 Per Bothner <bothner@cygnus.com>
21673
21674 * decl.c, class.c: Update method type to match latest Kaffe snapshot.
21675 * constants.c (lookup_name_constant): Renamed to alloc_name_constant.
21676 (alloc_class_constant): New.
21677 * expr.c (expand_invoke): Make sure method's class is initialized.
21678 * class.c (interits_from_p, emit_register_class): New functions.
21679 * parse.c (yyparse): Call emit_register_class.
21680
21681 1997-06-09 Per Bothner <bothner@cygnus.com>
21682
21683 * constants.c: New file, to handle constant pool.
21684 * Makefile.in (JAVA_OBJS): Add constants.o.
21685 * decl.c (init_decl_processing): Update, fix, finish various structs.
21686 (pushdecl_top_level): New.
21687 * parse.c (layout_class): Moved to class.c.
21688 * expr.c (java_push_constant_from_pool): New function.
21689 * class.c (build_class_ref): Make work fully
21690 (make_class_data): Emit super-class, constant pool, interface vector.
21691
21692 1997-06-03 Per Bothner <bothner@cygnus.com>
21693
21694 java-tree.h (DECL_SIGNATURE, BCODE_EMITTED): Remove.
21695 (LABEL_VERIFIED, BCODE_EXCEPTION_TARGET, TYPE_ARRAY_P): New.
21696 * class.c (class_depth): New function.
21697 (lookup_named_class): Replaced by new function lookup_class.
21698 * decl.c (object_type_node, string_type_node): New.
21699 Remove various types that we no longer need.
21700 * expr.c (verify_jvm_instructions): New separate verifier pass.
21701 (push_type, pop_type): New functions for verifier.
21702 (type_stack_dup, pop_argument_types, merge_types): Likewise.
21703 (expand_byte_code): Simplify, since we assume already verified.
21704 (expand_invoke): Now mostly works.
21705 * javaop.def: Rename ldc1->ldc, ldc2->ldc_w, ldc2w->ldc2_w.
21706 * lang.c (main_class): Move to parse.c. Don't make_class yet.
21707 * parse.c: Wait to allocate class object until we know its name.
21708 (layout_class): Calculate DECL_VINDEX for each virtual method.
21709 * typeck.c (get_array_type): Rename to ...
21710 (build_java_array_type): ... and provide working implementation.
21711 (build_java_signature): New function - build Java signature of type.
21712 (set_java_signature): New function - cache signature with type.
21713 (lookup_java_method): New function.
21714
21715 1997-05-06 Per Bothner <bothner@deneb.cygnus.com>
21716
21717 * class.c (ident_subst): Take extra SUFFIX parameter.
21718 (add_field): Set DECL_ASSEMBLER_NAME of static fields; more.
21719 (set_constant_value, build_static_field_ref, is_compiled_class): New.
21720 (build_class_ref): Actually implement.
21721 * decl.c, java-tree.h: Renamed some xx_type to xx_type_node.
21722 * decl.c (builtin_function): New.
21723 (init_decl_processing): Update for current Kaffe. Declare some
21724 builtin Kaffe functions.
21725 * expr.c (build_address_of): New.
21726 (expand_java_NEW, expand_java_INSTANCEOF, expand_java_CHECKCAST):
21727 Renamed (from expand_java_new etc), and added working implementations.
21728 (build_field_ref): Now also handle static fields.
21729 (expand_invoke): Implement invokestatic, and start implement rest.
21730 * java-opcodes.h: Use javaop.def to avoid duplicated list.
21731 * javaop.def: Rename invokevirt -> invokevirtual.
21732 * lang.c (use_handles): Removed.
21733 * parse.c: Add support for ConstantValue attribute.
21734 Handle nested loading of a class. (JPOOL_UTF): New.
21735
21736 1997-03-11 Per Bothner <bothner@deneb.cygnus.com>
21737
21738 * expr.c (expand_java_pushc): Support #ifndef REAL_ARITHMETIC case.
21739
21740 1997-02-27 Per Bothner <bothner@deneb.cygnus.com>
21741
21742 * Make-lang.in (java.install-man): New empty rule.
21743 * typeck.c (set_local_type): New function.
21744 * expr.c (STORE_INTERNAL): Call find_local_variable,
21745 not find_stack_slot. Call set_local_type.
21746
21747 1997-02-12 Per Bothner <bothner@kalessin.cygnus.com>
21748
21749 * java-tree.h: Various new macros for constructing RECORD_TYPEs,
21750 and building RECORD_TYPE CONSTRUCTORs.
21751 Also support for creating Utf8Const objects from an INDETIFIER_NODE.
21752
21753 * lang.c (use_handles): Change the default to 0.
21754 * decl.c: Define and build class_type, field_type, utf8const_type.
21755 * class.c (make_class_data, make_field_value,
21756 get_access_flags_from_decl, build_class_ref, build_utf8_ref,
21757 hashUtf8String, strLengthUtf8, mangled_classname:
21758 Functions to build reflective data structures.
21759 * parse.c (yyparse): Call make_class_data.
21760
21761 * jcf-io.c (open_class, find_classfile): New functions.
21762 * jcf-dump.c: Support reading classfile from explicitly-named
21763 class file (without CLASSPATH searching).
21764
21765 1996-10-24 Per Bothner <bothner@deneb.cygnus.com>
21766
21767 * jcf-reader.c: Add parameter list to HANDLE_CONSTANT_Utf8.
21768 * parse.c (JPOOL_UTF_LENGTH, JPOOL_UTF_DATA, HANDLE_CONSTANT_Utf8):
21769 Override jcf-reader macros so CONSTANT_Utf8 becomes tree node here.
21770 (get_constant): Now trivial for CONSTANT_Utf8.
21771
21772 * jcf.h: Make NEW_CPOOL the default.
21773 * jcf.h, jcf-reader.c, parse.c: Remove support for !NEW_CPOOL.
21774
21775 1996-10-24 Per Bothner <bothner@deneb.cygnus.com>
21776
21777 New directory.
21778
21779 \f
21780 Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
21781 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
21782
21783 Copying and distribution of this file, with or without modification,
21784 are permitted in any medium without royalty provided the copyright
21785 notice and this notice are preserved.