OSDN Git Service

2008-01-04 Andrew Haley <aph@redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / java / ChangeLog
1 2008-01-04  Andrew Haley  <aph@redhat.com>
2
3         PR java/17779
4         * jcf-parse.c (parse_zip_file_entries): Move decl to compile on
5         C90.
6
7 2008-01-03  Andrew Haley  <aph@redhat.com>
8
9         PR java/17779
10         * jcf-parse.c (parse_zip_file_entries): Unset TYPE_ALIAS_SET if
11         we're about to re-layout the type.
12
13 2007-12-20  Alexandre Oliva  <aoliva@redhat.com>
14
15         * lang.c (java_classify_record): Don't return
16         RECORD_IS_INTERFACE for now.
17
18 2007-12-18  Andrew Haley  <aph@redhat.com>
19
20         PR java/27643
21         * jcf-parse.c (java_parse_file): Remove call to
22         java_mark_class_local.
23         (parse_class_file): Reinstate call to java_mark_class_local here.
24         * decl.c (java_mark_cni_decl_local): If the ASSEMBLER_NAME is
25         already set, call java_mangle_decl() and make_decl_rtl() to
26         rewrite its name as a hidden alias.
27
28 2007-12-15  Alexandre Oliva  <aoliva@redhat.com>
29
30         PR debug/7081
31         * lang.c (java_classify_record): New.
32         (LANG_HOOKS_CLASSIFY_RECORD): Override.
33
34 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
35
36         PR 34081/C++
37         * decl.c (finish_method): Pass 'false' for the new
38         allocate_struct_function parameter.
39
40 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
41
42         * expr.c (build_jni_stub): Use the computed jni func type for
43         variable meth.
44
45 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
46
47         * class.c (JAVA_TREEHASHHASH_H): Use TYPE_UID.
48
49 2007-11-26  Alexandre Oliva  <aoliva@redhat.com>
50
51         * expr.c (type_assertion_hash): Hash type uids rather than
52         tree pointers.
53
54 2007-11-17  David Daney  <ddaney@avtrex.com>
55             Andrew Haley  <aph@redhat.com>
56
57         * constants.c (build_constants_constructor):  Use POINTER_SIZE
58         insead of BITS_PER_WORD in big-endian work around.
59
60 2007-11-07  Tom Tromey  <tromey@redhat.com>
61
62         PR java/34019:
63         * gcj.texi (Input Options): Add missing noun.
64
65 2007-11-02  Tom Tromey  <tromey@redhat.com>
66
67         PR java/33765:
68         * jcf-parse.c (java_parse_file): Ignore ZIPEMPTYMAGIC files.
69         * zipfile.h (ZIPEMPTYMAGIC): New define.
70
71 2007-11-01  Tom Tromey  <tromey@redhat.com>
72
73         * Make-lang.in (java/jcf-dump.o): Depend on zipfile.h.
74         (java/jcf-parse.o): Depend on jcf-reader.c, zipfile.h, and jcf.h.
75         (java/jcf-io.o): Depend on zipfile.h.
76
77 2007-10-17  Richard Guenther  <rguenther@suse.de>
78
79         * Make-lang.in (java/builtins.o): Add $(OPTABS_H) and $(EXPR_H)
80         dependencies.
81
82 2007-10-03  Andrew Haley  <aph@redhat.com>
83
84         PR java/33639
85         * class.c (mangled_classname): Detect and replace illegal
86         characters in assembly language symbols.
87         (gen_indirect_dispatch_tables): Call mangled_classname() on
88         the type.
89
90 2007-09-27  Jakub Jelinek  <jakub@redhat.com>
91
92         * lang.c (java_print_error_function): Add third argument.
93
94 2007-09-15  Tom Tromey  <tromey@redhat.com>
95
96         * java-tree.h (struct lang_decl_func) <function_decl_body>:
97         Remove.
98         <init_final>: Likewise.
99         * lang.c (java_dump_tree): Update.
100         * java-tree.h (DECL_FUNCTION_BODY): Remove.
101
102 2007-09-11  Jan Hubicka <jh@suse.cz>
103
104         * decl.c (java_expand_body): Kill.
105         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
106
107 2007-09-06  Tom Tromey  <tromey@redhat.com>
108
109         * jcf-parse.c (parse_class_file): Re-enter the current file.
110
111 2007-09-07  Roman Zippel  <zippel@linux-m68k.org>
112
113         * boehm.c (mark_reference_fields): Move misaligned pointer check
114         after JREFERENCE_TYPE_P test
115
116 2007-09-06  Roman Zippel  <zippel@linux-m68k.org>
117
118         * boehm.c (mark_reference_fields): Don't use bitmap as gc_descr
119         if pointer is misaligned.
120
121 2007-09-06  Tom Tromey  <tromey@redhat.com>
122
123         * lang.c (java_post_options): Update.
124         * jcf-parse.c (set_source_filename): Update.
125         (give_name_to_class): Update.
126         (jcf_parse): Update.
127         (duplicate_class_warning): Update.
128         (parse_class_file): Update.
129         (java_parse_file): Update.
130         * expr.c (expand_byte_code): Update.
131
132 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
133
134         * decl.c (finish_method): Use set_cfun.
135
136 2007-09-04  Andrew Haley  <aph@redhat.com>
137
138         * decl.c (java_init_decl_processing): Call "__cxa_end_cleanup"
139         when using the ARM EABI.
140
141 2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>
142
143         * Make-lang.in (jvspec.o): Remove SHLIB_MULTILIB.
144
145 2007-09-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
146
147         * jcf-parse.c (read_class, java_parse_file): Supply a TYPE for
148         CONST_CAST.
149         * jcf.h (JCF_FINISH): Likewise.
150
151 2007-08-28  Tom Tromey  <tromey@redhat.com>
152
153         * Make-lang.in (java.tags): Don't tag '*.y' files.
154
155 2007-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
156
157         * lang.c (java_decl_ok_for_sibcall): Likewise.
158
159 2007-08-21  Paul Brook  <paul@codesourcery.com>
160             Nathan Sidwell  <nathan@codesourcery.com>
161             Mark Mitchell  <mark@codesourcery.com>
162             Joseph Myers  <joseph@codesourcery.com>
163
164         * jcf-dump.c (version): Use pkgversion_string.  Update copyright
165         date.
166
167 2007-08-20  Richard Guenther  <rguenther@suse.de>
168
169         * lang.c (java_tree_inlining_walk_subtrees): Remove.
170         (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Remove.
171
172 2007-08-17  Tom Tromey  <tromey@redhat.com>
173
174         * typeck.c (find_method_in_interfaces): Update.
175         * jcf-parse.c (load_class): Update.
176         * java-gimplify.c (java_gimplify_component_ref): Removed.
177         (java_gimplify_modify_expr): Update.  Removed pre_p and post_p
178         arguments.
179         (java_gimplify_expr): Update.
180         * decl.c (java_init_decl_processing): Update.
181         * class.c (set_constant_value): Update.
182         (make_class_data): Update.
183         (finish_class): Update.
184         (build_static_field_ref): Update.
185         (is_compiled_class): Update.
186         (maybe_layout_super_class): Update.
187         (layout_class): Update.
188         (layout_class_method): Update.
189         * java-tree.h (CAN_COMPLETE_NORMALLY): Removed.
190         (lang_decl_var) <am, final_iud, cif>: Removed fields.
191         (lang_decl_func) <init_calls_this>: Removed field.
192         (lang_type) <dot_class, verify_method>: Removed fields.
193         (FIELD_NESTED_ACCESS): Removed.
194         (FIELD_NESTED_ACCESS_P): Removed.
195         (DECL_FIELD_FINAL_IUD): Removed.
196         (DECL_LOCAL_FINAL_IUD): Removed
197         (LOCAL_FINAL_P): Removed.
198         (FINAL_VARIABLE_P): Removed.
199         (CLASS_FINAL_VARIABLE_P): Removed.
200         (DECL_BIT_INDEX): Removed.
201         (DECL_INIT_CALLS_THIS): Removed.
202         (FIELD_LOCAL_ALIAS): Removed.
203         (FIELD_LOCAL_ALIAS_USED): Removed.
204         (FIELD_THISN): Removed.
205         (DECL_FUNCTION_INIT_TEST_CLASS): Removed.
206         (LOCAL_CLASS_INITIALIZATION_FLAG): Removed.
207         (LOCAL_CLASS_INITIALIZATION_FLAG_P): Removed.
208         (TYPE_DOT_CLASS): Removed.
209         (TYPE_VERIFY_METHOD): Removed.
210         (ID_CLASSDOLLAR_P): Removed.
211         (enum java_tree_index) <JTI_CLASSDOLLAR_IDENTIFIER_NODE>:
212         Removed.
213         (classdollar_identifier_node): Removed.
214         (TYPE_UNKNOWN): Removed.
215         (CLASS_FROM_SOURCE_P): Removed.
216         * expr.c (build_jni_stub): Update.
217         (force_evaluation_order): Update.
218         (build_java_empty_stmt): Update.
219         (build_class_init): Update.
220         (java_stack_swap): Update.
221         (build_jni_stub): Update.
222
223 2007-08-17  Tom Tromey  <tromey@redhat.com>
224
225         * java-tree.h (LABEL_TYPE_STATE): Removed.
226         (load_type_state): Removed.
227         (LABEL_PC): Removed.
228         (LABEL_VERIFIED): Removed.
229         (type_states): Declare.
230         * expr.c (type_states): New global.
231         (load_type_state): Now static.  Use type_states.  Changed
232         argument.
233         (lookup_label): Don't set LABEL_PC.
234         (expand_byte_code): Don't use LABEL_VERIFIED.
235         (note_instructions): Initialize type_states.
236         * verify-glue.c (vfy_note_stack_depth): Rewrote.
237         (vfy_note_stack_type): Use type_states.
238         (vfy_note_local_type): Likewise.
239
240 2007-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
241
242         * jcf-parse.c (read_class, java_parse_file): Use CONST_CAST.
243         * jcf.h (JCF_FINISH): Likewise.
244
245 2007-07-31  Nick Clifton  <nickc@redhat.com>
246
247         * java-gimplify.c: Change copyright header to refer to version 3
248         of the GNU General Public License and to point readers at the
249         COPYING3 file and the FSF's license web page.
250         * typeck.c, lang-specs.h, mangle_name.c, jcf-dump.c, class.c,
251         decl.c, config-lang.in, jcf-parse.c, constants.c, Make-lang.in,
252         resource.c, except.c, builtins.c, jvspec.c, java-tree.def,
253         javaop.def, jcf-path.c, verify-glue.c, jcf-depend.c, lang.opt,
254         jcf-reader.c, mangle.c, zextract.c, jcf-io.c, jcf.h, zipfile.h,
255         verify.h, java-except.h, win32-host.c, expr.c, jvgenmain.c,
256         parse.h, lang.c, java-tree.h, javaop.h, boehm.c: Likewise.
257
258 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
259
260         * jcf-io.c (find_class): Fix -Wcast-qual warnings.
261
262 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
263
264         * lang.c (java_get_callee_fndecl): Constify.
265
266 2007-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
267
268         * mangle.c (set_type_package_list): Constify.
269         * verify-glue.c (vfy_make_string): Delete.
270         * verify.h (vfy_make_string): Likewise.
271
272 2007-07-26  Tom Tromey  <tromey@redhat.com>
273
274         * java-tree.h (push_labeled_block, pop_labeled_block): Remove.
275         (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
276         EXIT_BLOCK_LABELED_BLOCK): Likewise.
277         * lang.c (java_tree_inlining_walk_subtrees): Update.
278         (java_dump_tree): Likewise.
279         * java-tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRY_EXPR):
280         Remove.
281         * decl.c (push_labeled_block, pop_labeled_block): Remove.
282         * java-gimplify.c (java_gimplify_labeled_block_expr,
283         java_gimplify_exit_block_expr, java_gimplify_try_expr): Remove.
284         (java_gimplify_expr): Update.
285
286 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
287
288         * class.c (java_treetreehash_hash, java_treetreehash_compare):
289         Constify. 
290         * expr.c (type_assertion_eq): Likewise.
291         * jcf-io.c (compare_path): Likewise.
292         * jcf-parse.c (cmpstringp): Likewise.
293         * verify-impl.c (get_one_type, compute_argument_types,
294         compute_return_type): Likewise. 
295
296 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
297
298         PR target/32462
299         PR libgcj/32465
300         * class.c (hide): Wrap in HAVE_GAS_HIDDEN.
301
302 2007-07-12  Richard Guenther  <rguenther@suse.de>
303
304         * expr.c (expand_java_return): RETURN_EXPR has void type.
305         (build_jni_stub): Likewise.  Use a comparison against zero
306         for null-pointer test in COND_EXPR.
307         (build_field_ref): Build POINTER_PLUS_EXPR with correct
308         type.  Convert result instead.
309         (build_invokevirtual): Likewise.
310
311 2007-07-09  Geoffrey Keating  <geoffk@apple.com>
312
313         PR 32617
314         * lang.c (java_init): Remove setting of force_align_functions_log.
315         * class.c (add_method_1): Set DECL_ALIGN of non-static method
316         to cope with ptrmemfunc_vbit_in_pfn.
317
318 2007-07-03  David Daney  <ddaney@avtrex.com>
319
320         * java/Make-lang.in (doc/gcj.info): Add $(gcc_docdir) to 
321         include path.
322         (doc/gcj.dvi): Same.
323         (doc/gcj.pdf): Same.
324         (java/index.html): Same.
325
326 2007-06-15 Andrew Pinski  <andrew_pinski@playstation.sony.com>
327
328         * class.c (make_class_data): Build the index in sizetype.
329         Use POINTER_PLUS_EXPR instead of PLUS_EXPR when
330         adding to a pointer type.
331         (build_symbol_entry): Likewise.
332         * expr.c (build_java_arrayaccess): Likewise.
333         (build_field_ref): Likewise.
334         (build_known_method_ref): Likewise.
335         (build_invokevirtual): Likewise.
336         * except.c (build_exception_object_ref): Do a
337         NEGATIVE and then a POINTER_PLUS_EXPR instead
338         of a MINUS_EXPR.
339
340 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
341
342         * typeck.c (java_signed_type): Remove.
343         * lang.c (LANG_HOOKS_SIGNED_TYPE): Remove.
344         * java-tree.h (java_signed_type): Remove.
345
346 2007-05-18  Geoffrey Keating  <geoffk@apple.com>
347
348         * jcf-dump.c (HANDLE_MAGIC): Use 'unsigned long' for %lx.
349         (print_constant): Likewise.
350
351 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
352
353         * expr.c (build_java_binop): Use unsigned_type_for instead of
354         java_unsigned_type.
355         * java-tree.h (java_unsigned_type): Remove.
356         * lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
357         * typeck.c (java_unsigned_type): Remove.
358
359 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
360
361         * java-tree.h (lang_tree_node): Use GENERIC_NEXT
362         instead of checking GIMPLE_STMT_P in chain_next.
363
364 2007-04-06  Colin Walters  <walters@redhat.com>
365
366         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161701
367         * jcf-io.c (open_class): Copy 'filename'.
368
369 2007-04-03  Andrew Haley  <aph@redhat.com>
370
371         * jvgenmain.c (main): Change main to use class$, not class$$.
372         (do_mangle_classname): Likewise.
373         * class.c (hide): New function.
374         (add_field): Hide everything that shouldn't be visible outside a
375         DSO.
376         (build_static_class_ref): Likewise.
377         (build_classdollar_field): Likewise.
378         (make_class_data): Likewise.
379         (layout_class_method): Likewise.
380         * expr.c (special_method_p): New function.
381
382         * class.c (push_class): Don't bogusly guess the source filename.
383         * jcf-parse.c (give_name_to_class): Don't set input_location from
384         DECL_ARTIFICIAL decls.
385
386 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
387
388         * typeck.c (java_signed_or_unsigned_type): Removed.
389         (java_signed_type): use get_signed_or_unsigned_type instead of
390         java_signed_or_unsigned_type.
391         (java_unsigned_type): Ditto.
392         * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Removed.
393         * java-tree.h (java_signed_or_unsigned_type): Removed.
394
395 2007-03-26  Tom Tromey  <tromey@redhat.com>
396
397         * Make-lang.in (JAVA_MANFILES): Removed grmiregistry.1.
398         (java.maintainer-clean): Likewise.
399         (java.install-man): Likewise.
400         (.INTERMEDIATE): Removed grmiregistry.pod.
401         (grmiregistry.pod): Removed.
402         * gcj.texi (Invoking gcjh): Removed.
403         (Invoking gjnih): Likewise.
404         (Invoking grmiregistry): Likewise.
405         (direntry): Updated.
406         (Top): Likewise.
407         (which-gcj): Removed.
408
409 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
410
411         * Make-lang.in: Add install-pdf target as copied from
412         automake v1.10 rules.
413
414 2007-02-27  Brooks Moses  <brooks.moses@codesourcery.com>
415
416         * gcj.texi: Standardize title page.
417
418 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
419
420         * class.c: Fix a comment typo.
421
422 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
423             Brooks Moses  <brooks.moses@codesourcery.com>
424             Lee Millward  <lee.millward@codesourcery.com>
425
426         * java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
427         of build3.
428         (BUILD_MONITOR_EXIT): Likewise.
429
430         * java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
431         (java_gimplify_modify_expr): Likewise.
432
433         * class.c (cache_this_class_ref): Use build_call_expr.
434         (build_static_field_ref): Likewise.
435         (emit_indirect_register_classes): Likewise.
436         (emit_register_classes): Likewise.
437
438         * resource.c (write_resource_constructor): Use build_call_expr.
439
440         * builtins.c (builtin_creator_function): Change interpretation of
441         the second parameter to be the whole CALL_EXPR instead of the arglist.
442         (max_builtin): Tweak parameter list.  Use new CALL_EXPR accessors.
443         (min_builtin): Likewise.
444         (abs_builtin): Likewise.
445         (java_build_function_call_expr): Likewise.
446         (convert_real): Likewise.
447         (UNMARSHAL3): Likewise.
448         (UNMARSHAL4): Likewise.
449         (UNMARSHAL5): Likewise.
450         (build_arglist_for_builtin): Delete.  Fix callers to use
451         build_call_expr instead.
452         (putObject_builtin): Tweak parameter list.  Use new CALL_EXPR
453         accessors.
454         (compareAndSwapInt_builtin): Likewise.
455         (compareAndSwapLong_builtin): Likewise.
456         (compareAndSwapObject_builtin): Likewise.
457         (putVolatile_builtin): Likewise.
458         (getVolatile_builtin): Likewise.
459         (VMSupportsCS8_builtin): Likewise.
460         (check_for_builtin): Pass entire CALL_EXPR to builtin expander
461         instead of arglist.
462
463         * expr.c (build_java_athrow): Use build_call_nary instead of build3.
464         (build_java_throw_out_of_bounds_exception): Likewise.
465         (java_check_reference): Likewise.
466         (build_java_arraystore_check): Likewise.
467         (build_newarray): Likewise.
468         (build_anewarray): Likewise.
469         (expand_java_multinewarray): Use build_call_list instead of build3.
470         (build_java_monitor): Use build_call_nary instead of build3.
471         (java_create_object): Likewise.
472         (expand_java_NEW): Likewise.
473         (build_instanceof): Likewise.
474         (expand_java_CHECKCAST): Likewise.
475         (build_java_soft_divmod): Likewise.
476         (build_java_binop): Likewise.
477         (build_field_ref): Likewise.
478         (build_class_init): Likewise.
479         (rewrite_arglist_getcaller): Use build_call_expr.
480         (build_invokeinterface):  Use build_call_nary instead of build3.
481         (expand_invoke): Use build_call_list instead of build3.
482         (build_jni_stub): Use build_call_nary, build_call_list, or
483         build_call_expr instead of build3.
484         (expand_java_field_op): Use build_call_expr instead of build3.
485         (force_evaluation_order): Use new CALL_EXPR accessors.
486
487         * lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
488
489 2007-02-15  David Daney  <ddaney@avtrex.com>
490
491         * Make-lang.in (JAVA_MANFILES): Add doc/gc-analyze.1.
492         (java.maintainer-clean):Add gc-analyze.1.
493         (.INTERMEDIATE): Add gc-analyze.pod.
494         (gc-analyze.pod): New rule.
495         (java.install-man): Install gc-analyze.1
496         * gcj.texi: Add new section for the gc-analyze program.
497
498 2007-02-07  Andrew Haley  <aph@redhat.com>
499
500         * class.c (uncache_this_class_ref): New.
501         * expr.c (build_jni_stub): Initialize the class.
502         (expand_byte_code): Call uncache_this_class_ref after generating
503         code.
504
505 2007-02-06  Tom Tromey  <tromey@redhat.com>
506
507         PR java/30714:
508         * jvspec.c (lang_specific_driver): Check for the '-' in '-I'.
509
510 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
511
512         * java-tree.h, javaop.def, jcf-parse.c: Fix comment typos.
513
514 2007-02-02  Andrew Haley  <aph@redhat.com>
515
516         * expr.c (expand_byte_code): Call cache_this_class_ref() and
517         cache_cpool_data_ref().
518         Set TYPE_CPOOL_DATA_REF.
519         (cache_cpool_data_ref): New function.
520         * constants.c (build_ref_from_constant_pool): Remove special-case
521         code for flag_indirect_classes.
522         (build_constant_data_ref): Move special-case code for
523         flag_indirect_classes here from build_ref_from_constant_pool.
524         * decl.c (finish_method): Move class initialization from here to
525         cache_this_class_ref.
526         * class.c (cache_this_class_ref): New function.
527         (build_class_ref): Use this_classdollar for the ouput class.
528
529 2007-02-02  David Daney  <ddaney@avtrex.com>
530
531         * class.c (is_compiled_class): Move check to avoid reloading
532         current class.
533         (layout_class_method): Don't calculate DECL_EXTERNAL if it is
534         already set.
535
536 2007-02-01  Andrew Haley  <aph@redhat.com>
537
538         PR java/30641
539         * jcf-parse.c (jcf_parse): Clear the field_offsets bitmap.
540
541 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
542
543         * class.c, jcf-parse.c: Fix comment typos.
544
545 2007-01-30  Tom Tromey  <tromey@redhat.com>
546
547         * gcj.texi (Strings): Fix documentation for JvNewString.
548
549 2007-01-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
550
551         * gcj.texi (Invoking gcjh, Invoking gjnih, Arrays): Fix some
552         typos.
553
554 2007-01-30  Ben Elliston  <bje@au.ibm.com>
555
556         * jvspec.c (lang_specific_driver): Remove unused classpath_args.
557
558 2007-01-29  Tom Tromey  <tromey@redhat.com>
559
560         PR java/30607:
561         * jvspec.c (lang_specific_driver): Handle separate -I argument.
562         * lang.opt (-I): Add 'Separate'.
563
564 2007-01-29  Andrew Haley  <aph@redhat.com>
565
566         * class.c (add_method_1): Mark fndecl as external unless we are
567         compiling it into this object file.
568
569 2007-01-24  Andrew Haley  <aph@redhat.com>
570
571         * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): current_class is a
572         type node, not a decl, so use TYPE_SYNTHETIC not CLASS_SYNTHETIC.
573
574 2007-01-22  Andrew Haley  <aph@redhat.com>
575
576         * builtins.c (VMSupportsCS8_builtin): New function.
577
578 2007-01-23  Andrew Pinski  <pinskia@gmail.com>
579
580         PR java/30454
581         * jcf-io.c (opendir_in_zip): Close the file
582         and free zipf before returning after an error.
583
584 2007-01-16  Tom Tromey  <tromey@redhat.com>
585
586         * java-tree.def: Added copyright header.
587
588 2007-01-15  Tom Tromey  <tromey@redhat.com>
589
590         * lang.c (dump_compound_expr) <EXPR_WITH_FILE_LOCATION>: Removed
591         case.
592         * java-gimplify.c (java_gimplify_expr) <EXPR_WITH_FILE_LOCATION>:
593         Removed case.
594         * java-tree.h (EXPR_WFL_EMIT_LINE_NOTE): Removed.
595         (EXPR_WFL_NODE): Likewise.
596         (EXPR_WFL_LINECOL): Likewise.
597         (EXPR_WFL_FILENAME): Likewise.
598         (EXPR_WFL_LINENO): Likewise.
599         (build_expr_wfl, expr_add_location): Don't declare.
600         (build_unknown_wfl): Removed.
601         (EXPR_WFL_FILENAME_NODE): Removed.
602         (EXPR_WFL_COLNO): Removed.
603         (EXPR_WFL_SET_LINECOL): Removed.
604         (DECL_FUNCTION_WFL): Removed.
605         (DECL_FIELD_FINAL_WFL): Removed.
606         (struct lang_decl_func) <wfl>: Removed field.
607         <called_constructor>: Likewise.
608         <inner_access>: Likewise.
609         (struct lang_decl_var) <wfl>: Removed field.
610         (DECL_CONSTRUCTOR_CALLS): Removed.
611         (DECL_FUNCTION_ACCESS_DECL): Likewise.
612         (DECL_FUNCTION_INNER_ACCESS): Likewise.
613         (DECL_SPECIFIC_COUNT): Likewise.
614         * java-tree.def (EXPR_WITH_FILE_LOCATION): Removed.
615         * expr.c (build_expr_wfl): Removed.
616         (expr_add_location): Likewise.
617
618 2007-01-12  Tom Tromey  <tromey@redhat.com>
619
620         * jcf-dump.c (main): Updated call to find_class.
621         * lang.c (java_init): Removed dead code.
622         * jcf-parse.c (read_class): Don't use java_source field.  Removed
623         dead code.
624         (parse_zip_file_entries): Don't use java_source field.
625         (process_zip_dir): Likewise.
626         (jcf_parse): Removed dead code.
627         (java_parse_file): Likewise.
628         (read_class): Updated call to find_class.
629         * jcf-io.c (find_class): Don't use java_source field.  Removed
630         'source_ok' argument, .java logic.
631         * jcf.h (JCF) <java_source>: Removed field.
632         (JCF_ZERO): Updated.    (find_class): Updated.
633         * decl.c: Removed dead code.
634         * class.c: Removed dead code.
635
636 2007-01-11  Tom Tromey  <tromey@redhat.com>
637
638         * typeck.c (convert): Don't use flag_emit_class_files.
639         * lang.c (java_post_options): Don't use flag_emit_class_files.
640         (java_handle_option): Don't use flag_extraneous_semicolon or
641         flag_redundant.
642         * jcf-parse.c (HANDLE_CONSTANTVALUE): Don't use
643         flag_emit_class_files.
644         (load_class): Likewise.
645         * java-tree.h (flag_emit_class_files): Don't declare.
646         (STATIC_CLASS_INIT_OPT_P): Don't use flag_emit_class_files.
647         (flag_extraneous_semicolon): Don't declare.
648         (flag_not_overriding): Likewise.
649         (flag_static_local_jdk1_1): Likewise.
650         (flag_redundant): Likewise.
651         * expr.c (build_newarray): Don't use flag_emit_class_files.
652         * class.c (DEFAULT_ENABLE_ASSERT): Don't use
653         flag_emit_class_files.
654         (build_class_ref): Likewise.
655         * builtins.c (check_for_builtin): Don't use
656         flag_emit_class_files.
657
658 2007-01-10  Tom Tromey  <tromey@redhat.com>
659
660         * lang.c (java_can_use_bit_fields_p): Removed.
661         (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
662
663 2007-01-09  Andrew Haley  <aph@redhat.com>
664
665         * expr.c (build_java_arrayaccess): Rewrite to generate array
666         access in canonical form.
667         (expand_java_arraystore): Use build_fold_addr_expr() on address of
668         array access.
669
670 2007-01-03  Andrew Haley  <aph@redhat.com>
671
672         PR java/28754
673         * expr.c (expand_java_field_op): If we're initializing a field's
674         declaring interface we should not also initialize the class
675         context in which it was referenced.
676
677 2007-01-02  Tom Tromey  <tromey@redhat.com>
678
679         * java-tree.h (compiling_from_source, current_encoding,
680         JTI_FINIT_IDENTIFIER_NODE, JTI_INSTINIT_IDENTIFIER_NODE,
681         JTI_LENGTH_IDENTIFIER_NODE, JTI_SUPER_IDENTIFIER_NODE,
682         JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE,
683         JTI_WFL_OPERATOR): Removed
684         (finit_identifier_node, instinit_identifier_node,
685         length_identifier_node, super_identifier_node,
686         continue_identifier_node, access0_identifier_node, wfl_operator):
687         Removed.
688         (cyclic_inheritance_report,
689         DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND,
690         DECL_FUNCTION_NAP, DECL_FUNCTION_SYNTHETIC_CTOR,
691         DECL_FIXED_CONSTRUCTOR_P): Removed.
692         (struct lang_decl_func) <smic, nap, synthetic_ctor, fixed_ctor>:
693         Removed.
694         (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST, TYPE_II_STMT_LIST,
695         TYPE_IMPORT_LIST, TYPE_IMPORT_DEMAND_LIST): Removed.
696         (struct lang_type) <finit_stmt_list, clinit_stmt_list, ii_block,
697         import_list, import_demand_list>: Removed.
698         (java_layout_seen_class_methods, init_jcf_parse, init_src_parse,
699         cxx_keyword_p): Removed.
700         (DECL_FINIT_P, DECL_INSTINIT_P, ID_FINIT_P, ID_INSTINIT_P,
701         TYPE_UNUSED, TYPE_UNDERFLOW, TYPE_UNEXPECTED,
702         CLASS_ACCESS0_GENERATED_P, CLASS_HAS_FINIT_P,
703         IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
704         IS_AN_IMPORT_ON_DEMAND_P, COMPOUND_ASSIGN_P, SWITCH_HAS_DEFAULT,
705         PRIMARY_P, MODIFY_EXPR_FROM_INITIALIZATION_P,
706         CLASS_METHOD_CHECKED_P, FOR_LOOP_P, ANONYMOUS_CLASS_P,
707         LOCAL_CLASS_P, ARG_FINAL_P, SUPPRESS_UNREACHABLE_ERROR,
708         RESOLVE_PACKAGE_NAME_P, RESOLVE_TYPE_NAME_P, IS_BREAK_STMT_P,
709         IS_CRAFTED_STRING_BUFFER_P, IS_INIT_CHECKED, CALL_USING_SUPER,
710         NESTED_FIELD_ACCESS_IDENTIFIER_P, TOPLEVEL_CLASS_DECL_P,
711         PURE_INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
712         CALL_CONSTRUCTOR_P, CALL_EXPLICIT_CONSTRUCTOR_P,
713         CALL_THIS_CONSTRUCTOR_P, CALL_SUPER_CONSTRUCTOR_P,
714         FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, BLOCK_IS_IMPLICIT,
715         BLOCK_EMPTY_P, IS_UNCHECKED_EXCEPTION_P, java_error_count,
716         java_parse_abort_on_error, extract_field_decl): Removed.
717         (finput): Declare.
718         * lang.c: (compiling_from_source, current_encoding): Removed.
719         (java_handle_option): Ignore -fencoding.
720         * parse.h: Don't include lex.h.
721         (java_error_count, int_fits_type_p, stabilize_reference, RULE,
722         RECOVERED, DRECOVERED, RECOVER, DRECOVER, YYERROR_NOW,
723         YYNOT_TWICE, CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
724         INTERFACE_MODIFIERS, INTERFACE_INNER_MODIFIERS,
725         INTERFACE_METHOD_MODIFIERS, INTERFACE_FIELD_MODIFIERS,
726         MODIFIER_WFL, THIS_MODIFIER_ONLY, parse_error_context,
727         ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, exit_java_complete_class,
728         CLASS_OR_INTERFACE, GET_REAL_TYPE, GET_TYPE_NAME,
729         OBSOLETE_MODIFIER_WARNING, OBSOLETE_MODIFIER_WARNING2,
730         BUILD_PTR_FROM_NAME, INCOMPLETE_TYPE_P,
731         JAVA_MAYBE_GENERATE_DEBUG_INFO, JBSC_TYPE_P, JSTRING_P,
732         JNULLP_TYPE_P, JDECL_P, TYPE_INTERFACE_P, TYPE_CLASS_P,
733         IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS,
734         MANGLE_OUTER_LOCAL_VARIABLE_NAME,
735         MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID,
736         MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING,
737         SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
738         UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP,
739         AIPL_FUNCTION_CREATION, AIPL_FUNCTION_DECLARATION,
740         AIPL_FUNCTION_CTOR_INVOCATION, AIPL_FUNCTION_FINIT_INVOCATION,
741         ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
742         ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED,
743         LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
744         LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
745         LOOP_EXPR_BODY_BODY_EXPR, PUSH_LABELED_BLOCK, POP_LABELED_BLOCK,
746         PUSH_LOOP, POP_LOOP, PUSH_EXCEPTIONS, POP_EXCEPTIONS,
747         IN_TRY_BLOCK_P, EXCEPTIONS_P, ANONYMOUS_ARRAY_BASE_TYPE,
748         ANONYMOUS_ARRAY_DIMS_SIG, ANONYMOUS_ARRAY_INITIALIZER,
749         INVOKE_STATIC, INVOKE_NONVIRTUAL, INVOKE_SUPER, INVOKE_INTERFACE,
750         INVOKE_VIRTUAL, jdep_code, struct _jdep, JDEP_DECL, JDEP_DECL_WFL,
751         JDEP_KIND, JDEP_WFL, JDEP_MISC, JDEP_ENCLOSING, JDEP_CLASS,
752         JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, JDEP_TO_RESOLVE,
753         JDEP_RESOLVED_DECL, JDEP_RESOLVED, JDEP_RESOLVED_P, struct
754         jdeplist_s, jdeplists, CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN,
755         JDEP_INSERT, SET_TYPE_FOR_RESOLUTION, WFL_STRIP_BRACKET,
756         STRING_STRIP_BRACKETS, PROMOTE_RECORD_IF_COMPLETE,
757         BLOCK_CHAIN_DECL, GET_CURRENT_BLOCK, EXPR_WFL_GET_LINECOL,
758         EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION, QUAL_DECL_TYPE,
759         GET_SKIP_TYPE, COMPLETE_CHECK_OP, COMPLETE_CHECK_OP_0,
760         COMPLETE_CHECK_OP_1, COMPLETE_CHECK_OP_2, BUILD_APPEND,
761         BUILD_STRING_BUFFER, BUILD_THROW, SET_WFL_OPERATOR,
762         PATCH_METHOD_RETURN_ERROR, CHECK_METHODS, CLEAR_DEPRECATED,
763         CHECK_DEPRECATED_NO_RESET, CHECK_DEPRECATED, REGISTER_IMPORT,
764         CURRENT_OSB, struct parser_ctxt, GET_CPC_LIST, CPC_INNER_P,
765         GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, GET_CPC_DECL_NODE,
766         GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
767         GET_ENCLOSING_CPC_CONTEXT, INNER_ENCLOSING_SCOPE_CHECK, PUSH_CPC,
768         PUSH_ERROR, POP_CPC, DEBUG_CPC, CPC_INITIALIZER_LIST,
769         CPC_STATIC_INITIALIZER_LIST, CPC_INSTANCE_INITIALIZER_LIST,
770         CPC_INITIALIZER_STMT, CPC_STATIC_INITIALIZER_STMT,
771         CPC_INSTANCE_INITIALIZER_STMT, SET_CPC_INITIALIZER_STMT,
772         SET_CPC_STATIC_INITIALIZER_STMT,
773         SET_CPC_INSTANCE_INITIALIZER_STMT, JAVA_NOT_RADIX10_FLAG,
774         java_complete_class, java_check_circular_reference,
775         java_fix_constructors, java_layout_classes, java_reorder_fields,
776         java_method_add_stmt, java_get_line_col, reset_report,
777         java_init_lex, yyparse, java_parse, yyerror, java_expand_classes,
778         java_finish_classes, ctxp, ctxp_for_generation,
779         ctxp_for_generation_last): Removed.
780         * expr.c (force_evaluation_order): Don't mention NEW_CLASS_EXPR.
781         * mangle.c (utf8_cmp): New function.
782         (cxx_keywords): New global.
783         (cxx_keyword_p): New function.
784         * jvspec.c (JAVA_START_CHAR): Removed obsolete comment.
785         * java-tree.def (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR,
786         NEW_ANONYMOUS_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
787         CASE_EXPR, DEFAULT_EXPR, JAVA_CATCH_EXPR, SYNCHRONIZED_EXPR,
788         THROW_EXPR, CONDITIONAL_EXPR, INSTANCEOF_EXPR, NEW_ARRAY_INIT,
789         CLASS_LITERAL, JAVA_EXC_OBJ_EXPR): Removed.
790         * Make-lang.in (java.srcextra): Do nothing.
791         (parse.c, keyword.h, gt-java-parse.h): Removed targets.
792         (JAVA_OBJS): Don't mention deleted files.
793         (java.mostlyclean): Likewise.
794         (java.clean): Likewise.
795         (JAVA_LEX_C): Removed.
796         (buffer.o, check-init.o, parse.o): Remove unused targets.
797         (typeck.o): Updated.
798         * jcf-parse.c (read_class): Comment out unused code.
799         (java_layout_seen_class_methods): New function.
800         (parse_source_file_1, parse_source_file_2, parse_source_file_3):
801         Removed.
802         (java_parse_file): Comment out unused code.  Don't use 'ctxp'.
803         (init_jcf_parse): Removed.
804         * config-lang.in (gtfiles): Remove deleted files.
805         * decl.c (java_init_decl_processing): Don't initialize
806         finit_identifier_node, instinit_identifier_node,
807         length_identifier_node, super_identifier_node,
808         continue_identifier_node, access0_identifier_node.  Don't call
809         init_jcf_parse.
810         * class.c (cyclic_inheritance_report): New global.
811         (add_method_1): Don't use
812         DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND.
813         (maybe_layout_super_class): Comment out code.
814         (safe_layout_class): New function.
815         * java-gimplify.c (java_gimplify_expr): Removed CASE_EXPR,
816         DEFAULT_EXPR, NEW_ARRAY_INIT, JAVA_CATCH_EXPR, JAVA_EXC_OBJ_EXPR,
817         UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_ANONYMOUS_ARRAY_EXPR,
818         NEW_CLASS_EXPR, SYNCHRONIZED_EXPR, CONDITIONAL_EXPR,
819         INSTANCEOF_EXPR, CLASS_LITERAL, THIS_EXPR.
820         (java_gimplify_case_expr): Removed.
821         (java_gimplify_default_expr): Likewise.
822         (java_gimplify_new_array_init): Likewise.
823         * parse.y: Removed.
824         * keyword.gperf, keyword.h: Removed.
825         * chartables.h: Removed.
826         * check-init.c: Removed.
827         * buffer.c, buffer.h: Removed.
828         * convert.h: Removed.
829         * gen-table.pl: Removed.
830         * lex.c, lex.h: Removed.
831
832 2007-01-02  Andrew Haley  <aph@redhat.com>
833
834         * expr.c (expand_java_arraystore): Make sure we perform a bounds
835         check at runtime before we perform a type check.
836
837 2006-12-19  Andrew Haley  <aph@redhat.com>
838
839         * decl.c: Bump minor BC ABI version.
840
841 2006-12-13  Gary Benson  <gbenson@redhat.com>
842
843         * jcf-depend.c (jcf_dependency_add_file): Mark filename unused.
844
845 2006-12-12  Tom Tromey  <tromey@redhat.com>
846
847         * lang-specs.h: Pass -M options to jc1.
848         * jcf-depend.c (jcf_dependency_add_file): Don't emit
849         dependencies.
850
851 2006-12-07  Mohan Embar  <gnustuff@thisiscool.com>
852
853         * jcf-path.c (jcf_path_compute): Use platform PATH_SEPARATOR.
854
855 2006-12-06  Mohan Embar  <gnustuff@thisiscool.com>
856
857         * lang-specs.h: Pass '%U'-based options as separate arguments.
858
859 2006-12-05  Tom Tromey  <tromey@redhat.com>
860
861         PR java/29495:
862         * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Mark fields and
863         classes as well.
864         * class.c (add_field): Handle ACC_SYNTHETIC.
865         (add_method_1): Likewise.  Handle bridge and varargs.
866         (get_access_flags_from_decl): Handle synthetic, bridge, varargs,
867         annotation.
868         (set_class_decl_access_flags): Handle synthetic and annotation.
869         * java-tree.h (METHOD_BRIDGE): New macro.
870         (METHOD_VARARGS): Likewise.
871         (TYPE_SYNTHETIC): Likewise.
872         (TYPE_ANNOTATION): Likewise.
873         (lang_type): New fields 'synthetic' and 'annotation'.
874         (lang_decl_func): New fields 'varargs' and 'bridge'.
875
876 2006-12-04  Andrew Haley  <aph@redhat.com>
877
878         * jcf-parse.c (rewrite_reflection_indexes): Don't do anything if
879         there's no map.
880
881 2006-11-29  Gary Benson  <gbenson@redhat.com>
882
883         * expr.c (rewrite_arglist_getcaller): Reorder.
884
885 2006-11-29  Andrew Haley  <aph@redhat.com>
886
887         * expr.c (rewrite_arglist_getcaller): Remove DECL_INLINE.
888         * lang.c (java_decl_ok_for_sibcall): Check for DECL_INLINE.
889
890 2006-11-23  Andrew Haley  <aph@redhat.com>
891
892         * expr.c (rewrite_arglist_getcaller): New.
893         (rewrite_arglist_getclass): Fix indentation.
894         (rules): Add gnu.classpath.VMStackWalker.getCallingClass() and 
895         gnu.classpath.VMStackWalker.getCallingClassLoader().
896         * builtins.c (initialize_builtins): Remove duplicate def'n of
897         __sync_synchronize.
898         Add __builtin_return_address.
899
900 2006-11-22  Andrew Haley  <aph@redhat.com>
901
902         * jcf-reader.c (get_attribute): Mark attr_type unused.
903
904         * builtins.c (compareAndSwapObject_builtin): Fix declaration.
905
906 2007-01-08  Richard Guenther  <rguenther@suse.de>
907
908         * lex.c (do_java_lex): Use build_int_cst_wide_type.
909         * jcf-parse.c (get_constant): Likewise.
910
911 2006-11-12  Jan Hubicka  <jh@suse.cz>
912
913         * resource.c (compile_resource_data): Update for new varpool names.
914         * java/class.c (build_utf8_ref): Likewise.
915
916 2006-11-12  David Daney  <ddaney@avtrex.com>
917
918         PR java/29805
919         * typeck.c (build_java_array_type): Increase buffer sizes.
920
921 2006-11-11  Richard Guenther  <rguenther@suse.de>
922
923         * check-init.c (check_init): Remove handling of FIX_CEIL_EXPR,
924         FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
925
926 2006-11-06  Andrew Haley  <aph@redhat.com>
927
928         * java-tree.h (CONSTANT_LazyFlag): New.
929         * constants.c (build_constants_constructor): Mask CONSTANT_LazyFlag.
930         * jcf-parse.c (handle_innerclass_attribute): Write attribute to
931         reflection_data.
932         (handle_constant): Return 0 for dummy cpool entries.
933         Handle constants of kind Class.
934         Handle constants of kind NameAndType.
935         (handle_enclosingmethod_attribute): New.
936         (handle_signature_attribute): New.
937         (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New.
938         (HANDLE_SIGNATURE_ATTRIBUTE): New.
939         (handle_constant): Use unmangle_classname()rather than calling
940         identifier_subst() directly.
941
942 2006-11-02  Andrew Haley  <aph@redhat.com>
943
944         * java-tree.h (FIELD_ENUM): New.
945         (lang_decl_var.field_enum): New.
946         (lang_type.enum_class): New.
947         (CLASS_ENUM): New.
948         * class.c (set_class_decl_access_flags): Handle enum types.
949         (add_field): Handle enum fields.
950         (get_access_flags_from_decl): Likewise.
951
952         * class.c (make_class_data): Put reflection_data into rodata.
953
954 2006-11-01  Andrew Haley  <aph@redhat.com>
955
956         * jcf-parse.c (field_offsets, bit_obstack): New variables.
957         (jcf_parse): Write end marker to annotation_data.
958         (java_parse_file): Create field_offsets bitmap.  Destroy it.
959         (annotation_grow, annotation_rewrite_byte) 
960         (annotation_rewrite_short, annotation_rewrite_int) 
961         (annotation_read_short, annotation_write_byte) 
962         (annotation_write_short, annotation_write_int) 
963         (handle_long_constant, handle_constant, handle_element_value) 
964         (handle_annotation, handle_annotations) 
965         (handle_annotation_attribute, rewrite_reflection_indexes) 
966         (handle_member_annotations, handle_parameter_annotations) 
967         (handle_default_annotation): New functions.
968         (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE) 
969         (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE) 
970         (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE) 
971         (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE) 
972         (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): New definitions.
973         * java-tree.h (enum jv_attr_type, enum jv_attr_kind): New. 
974         (TYPE_REFLECTION_DATA): New.
975         (TYPE_REFLECTION_DATASIZE): New.
976         * jcf.h (enum cpool_tag): Convert a bunch of #define constants to
977         an enum.
978         * jcf-reader.c (get_attribute): Pass field/method index and
979         attribute type to get_attribute().
980         * constants.c (find_class_or_string_constant): Make nonstatic.
981         (cpool_for_class): Likewise.
982         (build_constants_constructor): Separate string and scalar types.
983         * class.c (make_class_data): Generate field_indexes permutation.
984         Pass it to rewrite_reflection_indexes().
985         (make_class_data): Generate constructor for reflection_data field.
986
987 2006-10-20  Tom Tromey  <tromey@redhat.com>
988
989         * gcj.texi (Top): Don't mention jv-scan.
990         (Invoking gcj): Likewise.
991         (Invoking gcjh): Likewise.
992         (Invoking gjnih): Likewise.
993         (Invoking gij): Likewise.
994         (Invoking gcj-dbtool): Likewise.
995         (Invoking jv-scan): Removed.
996         * parse-scan.y: Removed.
997         * jv-scan.c: Removed.
998         * config-lang.in (stagestuff): Don't mention jv-scan.
999         * Make-lang.in (java): Removed jv-scan.
1000         (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1001         (JVSCAN_OBJS): Removed.
1002         (jv-scan$(exeext)): Likewise.
1003         (JAVA_MANFILES): Removed jv-scan.1.
1004         (java.uninstall): Don't mention jv-scan.
1005         (java.mostlyclean): Likewise.
1006         (java.maintainer-clean): Likewise.
1007         (.INTERMEDIATE): Likewise.
1008         (java/jv-scan.o): Removed.
1009         (jv-scan.pod): Likewise.
1010         (java.srcextra): Don't mention parse-scan.c.
1011         (java.mostlyclean): Likewise.
1012         (java/parse-scan.c): Removed.
1013         (java/parse-scan.o-warn): Removed.
1014         (java/parse-scan.o): Removed.
1015
1016 2006-10-20  Tom Tromey  <tromey@redhat.com>
1017
1018         * lang.c (java_handle_option): Don't use
1019         jcf_write_base_directory.
1020         * jcf.h (jcf_write_base_directory): Removed.
1021         * parse.y (java_expand_classes): Don't call write_classfile.
1022         * config-lang.in (gtfiles): Removed jcf-write.c.
1023         * Make-lang.in (JAVA_OBJS): Removed jcf-write.o.
1024         (java/jcf-write.o): Removed.
1025         * jcf-parse.c (parse_class_file): Don't call write_classfile.
1026         * java-tree.h (write_classfile): Removed declaration.
1027         * jcf-write.c: Removed.
1028
1029 2006-10-20  Tom Tromey  <tromey@redhat.com>
1030
1031         * Make-lang.in (java): Removed gjnih, gcjh.
1032         (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1033         (GCJH_OBJS): Removed.
1034         (GJNIH_OBJS): Likewise.
1035         (gjnih$(exeext)): Likewise.
1036         (gcjh$(exeext)): Likewise.
1037         (JAVA_MANFILES): Removed gcjh.1, gjnih.1.
1038         (java.install-common): Don't special case gcjh.
1039         (java.uninstall): Don't mention gcjh, gjnih.
1040         (java.mostlyclean): Likewise.
1041         (java.maintainer-clean): Likewise.
1042         (.INTERMEDIATE): Likewise.
1043         (gcjh.pod): Removed.
1044         (gjnih.pod): Likewise.
1045         (GCJH_TARGET_INSTALL_NAME): Removed.
1046         (java/gjavah-jni.o): Removed.
1047         (java/gjavah.o): Likewise.
1048         * config-lang.in (stagestuff): Removed gjnih, gcjh.
1049         * gjavah.c: Removed.
1050
1051 2006-10-17  Tom Tromey  <tromey@redhat.com>
1052
1053         * jcf-dump.c (print_element_value): Expect a utf8 constant in the
1054         "string" case.
1055
1056 2006-10-17  Tom Tromey  <tromey@redhat.com>
1057
1058         * jvgenmain.c (main): Handle -findirect-dispatch.
1059         * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to
1060         jvgenmain.
1061
1062 2006-10-06  Andrew Haley  <aph@redhat.com>
1063
1064         * builtins.c (compareAndSwapInt_builtin): Check that we really do
1065         have a compare_and_swap builtin.
1066         (compareAndSwapLong_builtin): Likewise.
1067         (compareAndSwapObject_builtin): Likewise.
1068
1069 2006-10-04  Andrew Haley  <aph@redhat.com>
1070
1071         * builtins.c (java_builtins): Add compareAndSwapInt,
1072         compareAndSwapLong, compareAndSwapObject, putOrderedInt,
1073         putOrderedLong, putOrderedObject, putIntVolatile, putLongVolatile,
1074         putObjectVolatile, getObjectVolatile, getIntVolatile,
1075         getLongVolatile, getLong.
1076         (UNMARSHAL3): New macro.
1077         (UNMARSHAL4): Likewise.
1078         (UNMARSHAL5): Likewise.
1079         (build_arglist_for_builtin): New function.
1080         (build_addr_sum, build_check_this): New functions.
1081         (putObject_builtin. compareAndSwapInt_builtin,
1082         compareAndSwapLong_builtin, compareAndSwapObject_builtin,
1083         putVolatile_builtin, getVolatile_builtin): New builtins.
1084
1085 2006-06-08  Andrew Haley  <aph@redhat.com>
1086  
1087         * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
1088         get_symbol_table_index().
1089         (maybe_rewrite_invocation): Set SPECIAL if we need to access a
1090         private method.
1091         (build_known_method_ref): New arg: special.  Pass it to
1092         get_symbol_table_index.
1093         (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
1094         the method list.
1095         (build_invokevirtual): New arg: special.  Pass it to
1096         get_symbol_table_index.
1097         (expand_invoke): New variable: special.
1098         Pass it to maybe_rewrite_invocation().
1099         Pass it to build_known_method_ref().
1100         * class.c (build_symbol_entry): Add new arg: special.  Use it to
1101         build the symbol table conbstructor.
1102         (emit_symbol_table): Extract SPECIAL from the method list and pass
1103         it to build_symbol_entry().
1104         * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
1105         special accordingly.
1106  
1107 2006-09-08  Andrew Haley  <aph@redhat.com>
1108
1109         * class.c (layout_class_method): Use build_java_signature, not
1110         build_java_argument_signature.  Use lookup_java_method, not
1111         lookup_argument_method.
1112
1113 2006-08-16  Jakub Jelinek  <jakub@redhat.com>
1114             Bryce McKinlay  <bryce@mckinlay.net.nz>
1115
1116         * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
1117
1118 2006-07-18  Tom Tromey  <tromey@redhat.com>
1119
1120         * lang.opt: Added missing -W options.
1121
1122 2006-07-12  Tom Tromey  <tromey@redhat.com>
1123
1124         PR java/28329:
1125         * lang-specs.h: Pass '%U'-based options as separate arguments.
1126         Use -faux-classpath.
1127         * lang.c (java_handle_option): Handle OPT_faux_classpath.
1128         * lang.opt (faux-classpath): New option.
1129
1130 2006-07-07  Tom Tromey  <tromey@redhat.com>
1131
1132         * class.c (make_class_data): Set value for reflection_data field.
1133         * decl.c (java_init_decl_processing): Add reflection_data field.
1134
1135 2006-07-07  Tom Tromey  <tromey@redhat.com>
1136
1137         * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): Declare locals
1138         earlier.
1139         (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
1140
1141 2006-07-07  Andrew Haley  <aph@redhat.com>
1142
1143         * jcf-parse.c (set_source_filename): Don't check for
1144         CLASS_FROM_CURRENTLY_COMPILED_P.
1145         Remove // comments.
1146
1147 2006-07-07  Andrew Haley  <aph@redhat.com>
1148
1149         * java-tree.h (java_read_sourcefilenames): Declare.
1150         * lang.c (java_handle_option): Call java_read_sourcefilenames().
1151         * lang.opt (fsource-filename): New opt.
1152         * lang-specs.h: Add -fsource-filename.
1153         * jcf-parse.c (num_files, filenames): New variables.
1154         (reverse, cmpstringp, java_read_sourcefilenames,
1155         find_sourcefile): New.
1156         (set_source_filename): Call find_sourcefile to find the real name
1157         of a source file.
1158
1159 2006-06-27  Tom Tromey  <tromey@redhat.com>
1160
1161         * jcf-reader.c (get_attribute): Handle EnclosingMethod,
1162         Signature, LocalVariableTypeTable, annotation attributes.
1163         * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New macro.
1164         (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
1165         (HANDLE_START_FIELD): Mention 'descriptor', not 'signature'.
1166         (HANDLE_METHOD): Likewise.
1167         (HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE): New macro.
1168         (print_annotation): New function.
1169         (print_element_value): Likewise.
1170         (indent): Likewise.
1171         (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE): New macro.
1172         (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE): Likewise.
1173         (print_parameter_annotations): New function.
1174         (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): New macro.
1175         (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE):
1176         Likewise.
1177         (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): Likewise.
1178         (print_annotations): New function.
1179
1180 2006-06-23  Tom Tromey  <tromey@redhat.com>
1181
1182         * lang-specs.h: Default -fsource and -ftarget to 1.5.  If
1183         emitting class files, always use 1.5.
1184         * gcj.texi (Input Options): Document -fsource.
1185         (Code Generation): Document -ftarget.
1186
1187 2006-06-21  Tom Tromey  <tromey@redhat.com>
1188
1189         PR java/28089:
1190         * expr.c (expand_java_field_op): Initialize field's declaring
1191         class.
1192
1193 2006-06-20  Tom Tromey  <tromey@redhat.com>
1194
1195         * expr.c (push_value): Always flush quick stack.
1196
1197 2006-06-19  Tom Tromey  <tromey@redhat.com>
1198
1199         * expr.c (push_value): Also flush quick stack if value is a
1200         component_ref.
1201
1202 2006-06-19  Tom Tromey  <tromey@redhat.com>
1203
1204         * expr.c (push_value): Flush quick stack if value has side
1205         effects.
1206
1207 2006-06-13  Tom Tromey  <tromey@redhat.com>
1208
1209         * class.c (is_compiled_class): Explicitly check for current
1210         class.
1211
1212 2006-06-09  Tom Tromey  <tromey@redhat.com>
1213
1214         * gjavah.c (decompile_method): Don't decompile a static field
1215         accessor method.
1216
1217 2006-06-06  Tom Tromey  <tromey@redhat.com>
1218
1219         * lang-specs.h <jc1>: Add .jar file to command line if
1220         -fsaw-java-file.  Also, remove -ffilelist-file in this case.
1221
1222 2006-06-05  Tom Tromey  <tromey@redhat.com>
1223
1224         * jcf-dump.c (print_access_flags): Handle varargs, bridge,
1225         synthetic, enum, annotation.
1226         * jcf.h (ACC_BRIDGE): New macro.
1227         (ACC_VARARGS): Likewise.
1228         (ACC_SYNTHETIC): Likewise.
1229         (ACC_ENUM): Likewise.
1230         (ACC_ANNOTATION): Likewise.
1231
1232 2006-06-04  Tom Tromey  <tromey@redhat.com>
1233
1234         * lang.opt (-fsaw-java-file, -fsource, -ftarget): New options.
1235         * jvspec.c (jvgenmain_spec): Remove -fsaw-java-file, -fsource,
1236         and -ftarget.
1237         (lang_specific_driver): Removed dead code.  Add -fsaw-java-file
1238         when needed.  Handle classpath-setting.
1239         * Make-lang.in ($(GCJ)$(exeext)): Link in jcf-path.o.
1240         * lang-specs.h: Rewrote.
1241
1242 2006-06-04  Tom Tromey  <tromey@redhat.com>
1243
1244         * jcf-io.c (find_class): Set source_ok to 0.
1245         * jcf-parse.c (jcf_parse): Disable gnu.gcj.gcj-compiled warning.
1246         (parse_class_file): Don't call java_mark_class_local.
1247         (java_parse_file): Skip .java files.  Call java_mark_class_local
1248         before lowering any code.
1249         (parse_zip_file_entries): Don't call duplicate_class_warning
1250         here.
1251         (process_zip_dir): ... call it here.
1252         * class.c (add_field): Don't mark field external if it is being
1253         compiled into this object.
1254         (make_class_data): Handle situation where class_dtable_decl is
1255         created before Class is compiled.
1256         (is_compiled_class): Don't assume files in zip are compiled into
1257         this object.
1258         (layout_class_method): Don't mark method external if it is being
1259         compiled into this object.
1260
1261 2006-06-04  Tom Tromey  <tromey@redhat.com>
1262
1263         * jcf-path.c (jcf_path_compute): New function.
1264         * jcf.h (jcf_path_compute): Declare.
1265
1266 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
1267
1268         * decl.c: Include langhooks.h.
1269         (builtin_function): Remove.
1270         (java_init_decl_processing): Replace calls to builtin_function
1271         with add_builtin_function.
1272         * Make-lang.in (jc1$(exeext)): Depend on and link with attribs.o.
1273         (java/decl.o): Depend on langhooks.h.
1274         * java-tree.h (builtin_function): Remove.
1275
1276 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
1277
1278         * Make-lang.in: Added "java.pdf", "gcj.pdf" target support.
1279
1280 2006-09-12  Tom Tromey  <tromey@redhat.com>
1281
1282         * expr.c (push_value): Always flush quick stack.
1283
1284 2006-09-12  Tom Tromey  <tromey@redhat.com>
1285
1286         PR java/29013:
1287         * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Always note
1288         the push of the called method's return result.
1289
1290 2006-09-12  Tom Tromey  <tromey@redhat.com>
1291
1292         * jvspec.c (lang_specific_driver): Read spec file even if
1293         -fsyntax-only.
1294
1295 2006-09-12  Tom Tromey  <tromey@redhat.com>
1296
1297         PR java/28754:
1298         * expr.c (expand_java_field_op): Initialize field's declaring
1299         interface if necessary.
1300
1301 2006-09-12  Tom Tromey  <tromey@redhat.com>
1302
1303         PR java/28892:
1304         * expr.c (expand_java_field_op): No error for assignments not in
1305         class initializer or constructor.
1306
1307 2006-08-22  Andrew Haley  <aph@redhat.com>
1308
1309         * decl.c (java_add_stmt): Give the statement list a type.
1310
1311 2006-08-16  Jakub Jelinek  <jakub@redhat.com>
1312             Bryce McKinlay  <bryce@mckinlay.net.nz>
1313
1314         * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
1315
1316 2006-08-10  Simon Martin  <simartin@users.sourceforge.net>
1317
1318         PR java/8923
1319         * parse.y (build_incdec): Emit an error instead of an ICE if '++'
1320         or '--' is used with a constant operand.
1321         (java_complete_lhs): When processing a '++' or '--' expression,
1322         don't call java_complete_tree but java_complete_lhs, so that a
1323         static final variable operand is never replaced by its value. This
1324         avoids an ICE later on.
1325         (patch_unaryop): Fixed typo in comment.
1326
1327 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1328
1329         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
1330
1331 2006-07-12  Bryce McKinlay  <mckinlay@redhat.com>
1332
1333         * builtins.c (check_for_builtin): If a builtin could result in a
1334         direct call being generated, don't use it if flag_indirect_dispatch
1335         is set.
1336
1337 2006-07-12  Bryce McKinlay  <mckinlay@redhat.com>
1338
1339         * gcj.texi (Invocation): Corrections for Invocation API example.
1340
1341 2006-07-04  Andrew Haley  <aph@redhat.com>
1342
1343         * class.c (build_fieldref_cache_entry): Set DECL_IGNORED_P on the
1344         entry.
1345
1346 2006-06-21  Andrew Haley  <aph@redhat.com>
1347
1348         * java-tree.h (update_aliases): Remove
1349         * expr.c (expand_iinc): Remove call to update_aliases().
1350         (STORE_INTERNAL): Likewise.
1351         * decl.c (update_aliases, initialize_local_variable) 
1352         (maybe_pushlevels): Set DECL_VALUE_EXPR for debugging decls.
1353
1354 2006-06-19  Andrew Haley  <aph@redhat.com>
1355
1356         PR java/1305
1357         PR java/27908
1358         * expr.c (java_modify_addr_for_volatile): New function.
1359         (expand_java_field_op): Handle volatile fields.
1360         * java-gimplify.c (java_gimplify_component_ref): Call
1361         java_modify_addr_for_volatile to give the field_ref the correct
1362         volatile type.
1363         (java_gimplify_modify_expr): Likewise.
1364         * java-tree.h (java_modify_addr_for_volatile): New decl.
1365
1366 2006-06-17  Karl Berry  <karl@gnu.org>
1367
1368         * gcj.texi (@dircategory): Use "Software development" instead
1369         of "Programming", following the Free Software Directory.
1370
1371 2006-06-16  Andrew Haley  <aph@redhat.com>
1372
1373         * class.c (make_class_data): When using flag_indirect_classes,
1374         don't initialize the vtable of Class instances.
1375
1376 2006-06-09  Andrew Haley  <aph@redhat.com>
1377
1378         PR java/1305
1379         PR java/27908
1380         * builtins.c (initialize_builtins): Add __sync_synchronize().
1381         * class.c (add_field): Mark volatile fields.
1382         * java-gimplify.c (java_gimplify_expr): Call new functions to
1383         handle self-modifying exprs and COMPONENT_REFs.
1384         (java_gimplify_component_ref): New.
1385         (java_gimplify_modify_expr): Add handling for volatiles.
1386
1387 2006-06-08  Tom Tromey  <tromey@redhat.com>
1388
1389         * gcj.texi (libgcj Runtime Properties): Document
1390         gnu.gcj.user.realname.
1391
1392 2006-06-08  Andrew Haley  <aph@redhat.com>
1393
1394         * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
1395         get_symbol_table_index().
1396         (maybe_rewrite_invocation): Set SPECIAL if we need to access a
1397         private method.
1398         (build_known_method_ref): New arg: special.  Pass it to
1399         get_symbol_table_index.
1400         (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
1401         the method list.
1402         (build_invokevirtual): New arg: special.  Pass it to
1403         get_symbol_table_index.
1404         (expand_invoke): New variable: special.
1405         Pass it to maybe_rewrite_invocation().
1406         Pass it to build_known_method_ref().
1407         * class.c (build_symbol_entry): Add new arg: special.  Use it to
1408         build the symbol table conbstructor.
1409         (emit_symbol_table): Extract SPECIAL from the method list and pass
1410         it to build_symbol_entry().
1411         * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
1412         special accordingly.
1413
1414 2006-06-06  David Daney  <ddaney@avtrex.com>
1415
1416         * gcj.texi (libgcj Runtime Properties): Document
1417         gnu.gcj.runtime.NameFinder.show_raw and
1418         gnu.gcj.runtime.NameFinder.remove_unknown.
1419
1420 2006-06-06  Tom Tromey  <tromey@redhat.com>
1421
1422         * jcf-dump.c (print_access_flags): Handle varargs, bridge,
1423         synthetic, enum, annotation.
1424         * jcf.h (ACC_BRIDGE): New macro.
1425         (ACC_VARARGS): Likewise.
1426         (ACC_SYNTHETIC): Likewise.
1427         (ACC_ENUM): Likewise.
1428         (ACC_ANNOTATION): Likewise.
1429
1430 2006-06-06  Mike Stump  <mrs@apple.com>
1431
1432         * Make-lang.in: Rename to htmldir to build_htmldir to avoid
1433         installing during build.
1434
1435 2006-05-31  Thomas Fitzsimmons  <fitzsim@redhat.com>
1436
1437         * gcj.texi (Extensions): Document the new gcj-dbtool-based
1438         classname-to-library resolution mechanism.
1439         Declare the old gnu.gcj.runtime.VMClassLoader.library_control
1440         mechanism deprecated.
1441         (libgcj Runtime Properties): Document
1442         gnu.gcj.runtime.VMClassLoader.library_control's new default.
1443
1444 2006-05-29  Jakub Jelinek  <jakub@redhat.com>
1445
1446         * javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64)
1447         bit wide type.
1448         (jword): Define to uint64 on 64-bit arches.
1449         * jcf-dump.c (print_constant): Cast JPOOL_UINT to long.
1450
1451 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
1452
1453         * class.c, except.c, expr.c, java-gimplify.c: Fix comment
1454         typos.
1455
1456 2006-05-26  Tom Tromey  <tromey@redhat.com>
1457
1458         * expr.c (java_push_constant_from_pool): Handle 'ldc class'.
1459         * verify-glue.c (vfy_class_type): New function.
1460         * verify-impl.c (check_constant): Allow 'ldc class'.
1461         * verify.h (vfy_class_type): Declare.
1462
1463 2006-05-25  Andrew Haley  <aph@redhat.com>
1464
1465         PR java/27756
1466         * decl.c (maybe_pushlevels): When variable ranges are non-nested
1467         update all lifetimes, not just the first one.
1468
1469 2006-05-24  Tom Tromey  <tromey@redhat.com>
1470
1471         * java-tree.h: Fixed flag documentation.
1472
1473 2006-05-24  Tom Tromey  <tromey@redhat.com>
1474
1475         PR libgcj/27729:
1476         * jcf.h (ACC_INVISIBLE): Changed value.
1477
1478 2006-05-24  Andrew Haley  <aph@redhat.com>
1479
1480         PR java/27754
1481         * decl.c (java_add_stmt): Use a STATEMENT_LIST rather than a
1482         COMPOUND_EXPR.
1483
1484 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
1485
1486         * lang.opt (femit-class-file): Remove VarExists.
1487
1488 2006-05-16  Tom Tromey  <tromey@redhat.com>
1489
1490         * verify-impl.c (verify_instructions_0) <op_return>: Special case
1491         for Object.<init>.
1492
1493 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
1494
1495         PR driver/26885
1496         * Make-lang.in ($(GCJ)$(exeext)): Replace gcc.o with
1497         $(GCC_OBJS).
1498
1499 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1500
1501         * Make-lang.in (java/decl.o): Add dependency on $(TARGET_H).
1502         (java/expr.o): Replace target.h with $(TARGET_H).
1503         (java/parse.o): Likewise.
1504
1505 2006-05-10  Andrew Haley  <aph@redhat.com>
1506
1507         * class.c (emit_indirect_register_classes): Fix comment.
1508
1509 2006-05-04  Tom Tromey  <tromey@redhat.com>
1510
1511         * java-tree.h (uses_jv_markobj_p): Declare.
1512         * class.c (uses_jv_markobj_p): Removed.
1513         * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): New define.
1514         (get_boehm_type_descriptor): Use it.
1515         (uses_jv_markobj_p): Moved from class.c.  Return bool.
1516
1517 2006-05-04  Tom Tromey  <tromey@redhat.com>
1518
1519         * java-tree.def (THIS_EXPR): Now a tcc_expression.
1520
1521 2006-05-04  Andrew Haley  <aph@redhat.com>
1522
1523         * class.c (make_field_value): Always build_address_of fdecl if
1524         there is an initializer.
1525
1526 2006-05-03  Andrew Haley  <aph@redhat.com>
1527
1528         PR libgcj/27352
1529         * expr.c (maybe_rewrite_invocation): New function.
1530         (rewrite_arglist_getclass): Likewise.
1531         (rules): New.
1532         (expand_invoke): Call maybe_rewrite_invocation.
1533         * parse.y (patch_invoke): Likewise.
1534         * java-tree.h: (maybe_rewrite_invocation): New function.
1535
1536 2006-04-21  Andrew Haley  <aph@redhat.com>
1537
1538         * lang.c (java_init): Handle flag_indirect_classes.
1539         * jvgenmain.c: Use "class$$" instead of "class$".
1540         * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as
1541         DECLs.
1542         (mangle_class_field): Special case "class$$" as well as "class$".
1543         * constants.c (build_ref_from_constant_pool): If
1544         flag_indirect_classes, generate a ref into the heap.
1545         * decl.c (constants_field_decl_node,
1546         constants_data_field_decl_node): New.
1547         * class.c (build_static_class_ref): New.
1548         (build_classdollar_field): Factor out from build_class_ref().
1549         (make_field_value): Handle static fields in heap.
1550         (make_class_data): Make sure we get a static ref to class.
1551         Make class initializer const if flag_indirect_classes.
1552         (register_class): Build a class_ref for initialization if
1553         flag_indirect_classes.
1554         (emit_indirect_register_classes): New.
1555
1556 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
1557
1558         * expr.c, gjavah.c: Fix comment typos.
1559
1560 2006-04-03  Andrew Haley  <aph@redhat.com>
1561
1562         PR java/26858
1563         * expr.c (build_field_ref): Don't check the field offset if
1564         flag_syntax_only.
1565
1566 2006-03-30  Andrew Haley  <aph@redhat.com>
1567
1568         PR java/26858
1569         * lang.c (java_attribute_table): New.
1570         (LANG_HOOKS_ATTRIBUTE_TABLE): Define.
1571         * expr.c (build_field_ref): Add a null pointer check for all
1572         fields of offset > 4k.  Don't do so for accesses via the this
1573         pointer, which we know can never be null.
1574         * class.c (build_java_method_type): Mark arg 1 of all nonstatic
1575         methods nonnull.
1576
1577 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
1578
1579         * Make-lang.in: Rename docdir to gcc_docdir.
1580
1581 2006-03-30  Tom Tromey  <tromey@redhat.com>
1582
1583         PR java/26042:
1584         * parse.y (java_reorder_fields): Reset superclass field's size as
1585         well.
1586
1587 2006-03-28  Tom Tromey  <tromey@redhat.com>
1588
1589         PR java/26390:
1590         * parse.y (find_most_specific_methods_list): Added 'class'
1591         argument.
1592         (lookup_method_invoke): Updated.
1593
1594 2006-03-15  Tom Tromey  <tromey@redhat.com>
1595
1596         * jcf-write.c (generate_bytecode_insns): Use qualifying type for
1597         non-static method calls.
1598
1599 2006-03-15  David Daney  <ddaney@avtrex.com>
1600
1601         * java-tree.h : Moved comment for TYPE_DOT_CLASS adjacent to its
1602         declaration.
1603
1604 2006-03-15  David Daney  <ddaney@avtrex.com>
1605
1606         * lang.opt (-freduced-reflection): New option.
1607         * lang.c (java_post_options): Generate an error if
1608         -freduced-reflection used with -fjni or -findirect-dispatch.
1609         * java-tree.h (flag_reduced_reflection): Declare new variable.
1610         * boehm.c (get_boehm_type_descriptor): Indicate all pointers
1611         if bitmap overflows and flag_reduced_reflection set.
1612         * class.c (uses_jv_markobj_p): New function.
1613         (make_class_data): Moved generation of vtable to before
1614         reflection data, generate less reflection data if
1615         flag_reduced_reflection set.
1616         * gcj.texi: Document -freduced-reflection.
1617
1618 2006-03-15  Tom Tromey  <tromey@redhat.com>
1619
1620         PR java/26638:
1621         * class.c (get_interface_method_index): Don't put <clinit> into
1622         interface table.
1623
1624 2006-03-15  Tom Tromey  <tromey@redhat.com>
1625
1626         * parse.y (analyze_clinit_body): Ignore empty statements.
1627
1628 2006-03-08  David Daney  <ddaney@avtrex.com>
1629
1630         * gcj.texi: Document -static-libgcj option.
1631
1632 2006-02-20  Andrew Haley  <aph@redhat.com>
1633
1634         * jcf-parse.c (parse_class_file): Set input_location from
1635         current_class.
1636
1637 2006-02-15  Andrew Haley  <aph@redhat.com>
1638
1639         * class.c (GEN_TABLE): Don't pushdecl *_SYMS_DECL here.
1640         (make_class_data): pushdecl_top_level TYPE_OTABLE_SYMS_DECL,
1641         TYPE_ATABLE_SYMS_DECL, TYPE_ITABLE_SYMS_DECL here.
1642
1643 2006-02-09  Andrew Haley  <aph@redhat.com>
1644
1645         PR java/26192
1646         * expr.c (expand_invoke): Allow methods in arrays to be resolved
1647         in their superclass.
1648
1649         * typeck.c (build_java_array_type): Generate TYPE_STUB_DECLs for
1650         array types.
1651         
1652 2006-02-08  Tom Tromey  <tromey@redhat.com>
1653
1654         PR java/22578:
1655         * check-init.c (check_init): Handle VIEW_CONVERT_EXPR.
1656         * builtins.c (convert_real): New function.
1657         (java_builtins): Handle Float.intBitsToFloat,
1658         Float.floatToRawIntBits, Double.longBitsToDouble,
1659         Double.doubleToRawLongBits.
1660
1661 2006-02-07  Andrew Haley  <aph@redhat.com>
1662
1663         * expr.c (expand_invoke): (BC mode.)  If we find a method in a
1664         class other than the one in which we expected to find it, ignore
1665         the result.
1666
1667         PR java/25535
1668         * constants.c (build_constants_constructor): move initializer into
1669         first halfword on a 64-bit big-endian machine.
1670
1671 2006-02-04  Tom Tromey  <tromey@redhat.com>
1672
1673         PR java/25676:
1674         * builtins.c (max_builtin): Skip floating point 'max'.
1675         (min_builtin): Skip floating point 'min'.
1676         (check_for_builtin): Never return NULL_TREE.
1677
1678 2006-02-04  Tom Tromey  <tromey@redhat.com>
1679
1680         PR java/26097:
1681         * expr.c (push_type): Avoid side effect in gcc_assert.
1682
1683 2006-02-04  Roger Sayle  <roger@eyesopen.com>
1684
1685         * decl.c (java_init_decl_processing): Create char_type_node as a
1686         regular INTEGER_TYPE node.
1687         (push_promoted_type): Preserve TYPE_STRING_FLAG on types.
1688         * typeck.c (convert): No longer check for CHAR_TYPEs but instead
1689         test for char_type_node and promoted_char_type_node as special
1690         instances of INTEGER_TYPE tree codes.
1691         (promote_type,build_java_signature): Likewise.
1692         * jcf-write.c (adjust_typed_op): Likewise.
1693         * mangle.c (mangle_type): Likewise.
1694         * parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE.
1695         * parse.h (JINTEGRAL_TYPE_P): Likewise.
1696
1697 2006-02-04  Andreas Tobler  <a.tobler@schweiz.ch>
1698
1699         * expr.c (java_stack_swap): Revert gcc_assert patch.
1700
1701 2006-02-03  Ben Elliston  <bje@au.ibm.com>
1702
1703         * java-gimplify.c: Use gcc_assert and gcc_unreachable throughout.
1704         * typeck.c: Likewise.
1705         * verify-impl.c: Likewise.
1706         * class.c: Likewise.
1707         * decl.c: Likewise.
1708         * jcf-parse.c: Likewise.
1709         * constants.c: Likewise.
1710         * check-init.c: Likewise.
1711         * jcf-write.c: Likewise.
1712         * verify-glue.c: Likewise.
1713         * mangle.c: Likewise.
1714         * expr.c: Likewise.
1715         * lang.c: Likewise.
1716         * boehm.c: Likewise.
1717
1718 2006-02-01  Jan Hubicka  <jh@suse.cz>
1719
1720         * decl.c (end_java_method): Kill hack disabling unit-at-a-time.
1721         * lang.c (java_init_options): Set no_unit_at_a_time_default.
1722
1723 2006-01-30  Andrew Haley  <aph@redhat.com>
1724
1725         PR java/21428
1726         * parse.y: (source_start_java_method): Mark DECL_ARTIFICIAL("this").
1727
1728 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
1729
1730         * jv-scan.c (version), jcf-dump.c (version), gjavah.c (version):
1731         Update copyright notice dates.
1732
1733 2006-01-16  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
1734
1735         * jvspec.c (lang_specific_spec_functions): Remove.
1736
1737 2006-01-06  Tom Tromey  <tromey@redhat.com>
1738
1739         * gcj.texi (Arrays): Added more documentation for
1740         JvNewObjectArray.
1741         (Primitive types): Correct information about primitive classes.
1742         (Reference types): New node.
1743         (Index): New node.
1744
1745 2005-12-16  Alexandre Oliva  <aoliva@redhat.com>
1746
1747         * jcf-parse.c (set_source_filename): Set the decl source location
1748         even when returning early.
1749
1750 2005-12-15  Tom Tromey  <tromey@redhat.com>
1751             Andrew Haley  <aph@redhat.com>
1752
1753         PR java/25429
1754         * parse.y (resolve_expression_name): Don't generate accessor
1755         methods for constant fields.
1756
1757 2005-12-13  Andrew Haley  <aph@redhat.com>
1758
1759         PR java/25366
1760         PR java/25368
1761         * class.c (maybe_layout_super_class): Update current_class before
1762         calling do_resolve_class.
1763
1764 2005-12-12  H.J. Lu  <hongjiu.lu@intel.com>
1765
1766         PR java/25330
1767         * jcf-write.c (write_classfile): Use PID in temporary class
1768         file. Save/restore errno when reporting error.
1769
1770 2005-12-10  Terry Laurenzo  <tlaurenzo@gmail.com>
1771
1772         PR java/9861
1773         * mangle.c (mangle_method_decl): Mangle Java methods by prepending 'J'
1774         to bare_function_type and including the return type
1775         * builtins.c (initialize_builtins) : Change builtin mangled name
1776         constants to conform to new mangling scheme
1777
1778 2005-12-08  Andrew Haley  <aph@redhat.com>
1779
1780         PR libgcj/25265
1781         * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
1782         (soft_abstractmethod_node): New.
1783         * expr.c (build_field_ref): Add in-line check for missing field.
1784         * decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
1785
1786 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
1787
1788         * Make-lang.in (java.all.build, java.install-normal): Remove.
1789
1790 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
1791
1792         * Make-lang.in: Remove all dependencies on s-gtype, except for
1793         gt-java-parse.h.
1794
1795 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1796
1797         * class.c (build_utf8_ref, emit_register_classes): Use
1798         switch_to_section and get_section.
1799
1800 2005-12-06  Tom Tromey  <tromey@redhat.com>
1801
1802         PR java/25283:
1803         * parse.y (patch_new_array_init): Revert previous patch.
1804         (lookup_method_invoke): Use size-less array type when creating an
1805         anonymous constructor.
1806
1807 2005-12-05  Tom Tromey  <tromey@redhat.com>
1808
1809         * parse.y (patch_new_array_init): Don't set length on array.
1810
1811 2005-12-02  Richard Guenther  <rguenther@suse.de>
1812
1813         * java-gimplify.c (java_gimplify_labeled_block_expr): Use
1814         buildN instead of build.
1815         * class.c (finish_class): Likewise.
1816         * expr.c (java_create_object): Likewise.
1817
1818 2005-11-28  Tom Tromey  <tromey@redhat.com>
1819
1820         PR java/18278:
1821         * expr.c (build_jni_stub): Unwrap the return value.
1822         * java-tree.h (soft_unwrapjni_node): New define.
1823         (enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE.
1824         * decl.c (java_init_decl_processing): Initialize
1825         soft_unwrapjni_node.
1826
1827 2005-11-24  Bryce McKinlay  <mckinlay@redhat.com>
1828
1829         * gcj.texi (gij options): Add -Xss documentation.
1830
1831 2005-11-08  Wil Mahan  <wmahan@gmail.com>
1832
1833         PR java/23617
1834         * zextract.c (read_zip_archive): Fix out of memory error when
1835         reading jar files with zip-style comments.
1836
1837 2005-11-07   Terry Laurenzo   <tlaurenzo@gmail.com>
1838
1839         * gjavah.c (HANDLE_CODE_ATTRIBUTE): Only define for ELF Object
1840         formats.
1841         * gjavah.c (decompile_method): Add ATTRIBUTE_UNUSED
1842
1843 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
1844             Wil Mahan <wmahan@gmail.com>
1845
1846         PR java/23620
1847         * class.c (make_class): Create empty binfo here.
1848         (set_super_info): Only create binfo if we have superclasses.
1849
1850 2005-10-03  Ranjit Mathew  <rmathew@gcc.gnu.org>
1851
1852         PR java/24127
1853         * parse.y (method_header): Make the result of the rule a NULL_TREE
1854         when a parsing error occurs.
1855
1856 2005-09-29  Tom Tromey  <tromey@redhat.com>
1857
1858         PR java/24120:
1859         * jcf-io.c (memoized_dirlist_hash): New function.
1860         (caching_stat): Use it.
1861
1862 2005-09-21  Ranjit Mathew  <rmathew@gcc.gnu.org>
1863
1864         PR java/21418
1865         * class.c (inherits_from_p): Try to lay out super class
1866         if it is not already laid out.
1867         (maybe_layout_super_class): Handle the case where SUPER_CLASS
1868         is a NULL_TREE.
1869
1870 2005-09-18  James A. Morrison  <phython@gcc.gnu.org>
1871
1872         * builtins.c (max_builtin, min_builtin, abs_builtin,
1873         java_build_function_call_expr): Use fold_buildN.
1874         * class.c (layout_class_method): Likewise.
1875         * expr.c (java_truthvalue_conversion, build_java_jsr,
1876         build_java_arrayaccess, expand_java_arrayload, expand_iinc,
1877         build_java_binop, build_field_ref, expand_compare,
1878         build_known_method_ref, build_invokevirtual,
1879         process_jvm_instruction): Likewise.
1880         * parse.y (patch_binop, patch_exit_expr): Likewise.
1881         * typeck.c (convert_ieee_real_to_integer): Likewise.
1882         (convert): Don't call fold after convert_ieee_real_to_integer.
1883
1884 2005-09-14  Bryce McKinlay  <mckinlay@redhat.com>
1885
1886         PR java/23891
1887         * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
1888         the newly created type. Set import lists here, not in create_class.
1889         (jdep_resolve_class): Set current_class.
1890         (do_resolve_class): Use current_class's TYPE_PACKAGE to determine 
1891         the current package context, not ctxp->package.
1892         (cicp_cache): Removed.
1893         (class_in_current_package): Simplify implementation using TYPE_PACKAGE.
1894         * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
1895         * java-tree.h (TYPE_PACKAGE): New macro.
1896         (struct lang_type): New member 'package'.
1897
1898 2005-09-09  Andrew Haley  <aph@redhat.com>
1899
1900         PR libgcj/23182 
1901         * expr.c (pop_type_0): If the expected type is object or ptr
1902         (i.e. void*), return the type of the object we just popped from
1903         the stack.
1904
1905 2005-09-06  Andrew Pinski  <pinskia@physics.uc.edu>
1906
1907         * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
1908         BLOCK_EXPR_BODY before returning the new BIND_EXPR.
1909
1910 2005-09-06  Kazu Hirata  <kazu@codesourcery.com>
1911
1912         * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
1913         jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
1914         typos.  Follow spelling conventions.
1915
1916 2005-09-05  Ranjit Mathew  <rmathew@hotmail.com>
1917
1918         PR java/23431
1919         * typeck.c (lookup_do): Look up interfaces for the original class,
1920         not the base class.
1921         * parse.y (java_check_regular_methods): Fix diagnostic message for
1922         more restrictive overriding of a method from an interface.
1923
1924 2005-08-16  Tom Tromey  <tromey@redhat.com>
1925
1926         * class.c (make_class_data): Always emit JV_STATE_PRELOADING for
1927         class' initial state.
1928
1929 2005-08-16  Ranjit Mathew  <rmathew@hotmail.com>
1930
1931         PR java/22113
1932         * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
1933         `literal_token' for large numeric input tokens.
1934
1935 2005-08-16  Ranjit Mathew  <rmathew@hotmail.com>
1936
1937         PR java/19870
1938         * parse.y (nested_field_access_p): Rename to nested_member_access_p
1939         and expand to handle method accesses across nested classes.
1940         (build_outer_method_access_method): Rename to
1941         build_nested_method_access_method.  Minor adjustments to comments.
1942         (resolve_expression_name): Use the newly-renamed
1943         nested_member_access_p method.
1944         (resolve_qualified_expression_name): Likewise.
1945         (patch_method_invocation): Also consider static methods for access
1946         method generation.  Minor adjustments to comments.
1947         (maybe_use_access_method): Use the more general
1948         nested_memeber_access_p to determine access across nested class
1949         boundaries.  Allow THIS_ARG to be NULL (for static methods).
1950
1951 2005-08-15  Tom Tromey  <tromey@redhat.com>
1952
1953         PR java/23300.
1954         * expr.c (build_field_ref): Don't generate otable reference when
1955         DECL_FIELD_OFFSET is 0.
1956         * class.c (maybe_layout_super_class): Pass outer class to
1957         do_resolve_class.
1958
1959 2005-08-15  Tom Tromey  <tromey@redhat.com>
1960
1961         * java-tree.h (LABEL_IN_SUBR): Removed.
1962         (LABEL_IN_SUBR): Likewise.
1963         (LABEL_IS_SUBR_START): Likewise.
1964         (LABEL_SUBR_START): Likewise.
1965         (LABEL_SUBR_CONTEXT): Likewise.
1966         (LABEL_CHANGED): Likewise.
1967         (LABEL_RETURN_LABEL): Likewise.
1968         (LABEL_RETURN_TYPE_STATE): Likewise.
1969         (LABEL_RETURN_LABELS): Likewise.
1970         (RETURN_MAP_ADJUSTED): Likewise.
1971         (LABEL_PENDING_CHAIN): Likewise.
1972
1973 2005-08-15  Tom Tromey  <tromey@redhat.com>
1974
1975         * Make-lang.in (JAVA_OBJS): Removed verify.o
1976         (java/verify.o): Removed.
1977         * verify.c: Removed.
1978         * lang.c (flag_new_verifier): Removed.
1979         (java_post_options): Updated.
1980         * java-tree.h (flag_new_verifier): Removed.
1981         (verify_jvm_instructions): Removed.
1982         * expr.c (pop_type_0): Assume flag_new_verifier is true.
1983         (build_java_check_indexed_type): Likewise.
1984         (expand_java_arraystore): Likewise.
1985         (expand_java_arrayload): Likewise.
1986         (pop_arguments): Likewise.
1987         (expand_byte_code): Likewise.
1988         (process_jvm_instruction): Likewise.
1989
1990 2005-08-10  Andrew Haley  <aph@redhat.com>
1991
1992         * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
1993         type mismatches to make legal GIMPLE.
1994
1995 2005-08-10  Robin Green <greenrd@greenrd.org>
1996
1997         PR java/23230:
1998         * parse.y (maybe_use_access_method): Generalize check from
1999         java.lang.Object to any superclass of current_class
2000
2001 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
2002
2003         * class.c (build_class_ref): Wrap the primary class type in a
2004         NOP_EXPR.
2005         * parse.y (java_complete_lhs) <COMPONENT_REF case>: Extract the
2006         primary class type from the NOP_EXPR in which it was placed.
2007
2008 2005-07-28  Diego Novillo  <dnovillo@redhat.com>
2009
2010         * expr.c (expand_load_internal): Fix missing parens in
2011         predicate.
2012
2013 2005-07-28  Andrew Haley  <aph@redhat.com>
2014
2015         * expr.c (expand_load_internal): Convert to destination type.
2016
2017 2005-07-22  Manfred Hollstein  <mh@suse.com>
2018
2019         * verify-impl.c (check_class_constant): Fix uninitialised warnings.
2020         (check_constant): Likewise.
2021         (check_wide_constant): Likewise.
2022
2023 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
2024
2025         Make CONSTRUCTOR use VEC to store initializers.
2026         * check-init.c (check_init): Update to cope with VEC in
2027         CONSTRUCTOR_ELTS.
2028         * class.c (make_field_value, make_method_value, get_dispatch_table,
2029         make_class_data, emit_symbol_table, emit_catch_table,
2030         emit_assertion_table): Use build_constructor_from_list instead of
2031         build_constructor.
2032         * constants.c (build_constants_constructor): Likewise.
2033         * java-gimplify.c (java_gimplify_new_array_init): Update to cope with
2034         VEC in CONSTRUCTOR_ELTS.
2035         * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
2036         PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
2037         of a TREE_LIST.
2038         * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
2039         CONSTRUCTOR_ELTS.
2040         * parse.y (build_new_array_init): Use build_constructor_from_list
2041         instead of build_constructor.
2042         (patch_new_array_init): Update to cope with VEC in
2043         CONSTRUCTOR_ELTS.
2044         (array_constructor_check_entry): Likewise.
2045
2046 2005-07-12  Tom Tromey  <tromey@redhat.com>
2047
2048         * jvspec.c (lang_specific_driver): Put filelist_filename first on
2049         command line.
2050
2051 2005-07-12  Tom Tromey  <tromey@redhat.com>
2052
2053         PR java/19674:
2054         * parse-scan.y (interface_member_declaration): Added
2055         empty_statement.
2056
2057 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
2058         
2059         * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
2060         (LABEL_PENDING_CHAIN): Ditto.
2061         (LABEL_PC): Ditto.
2062         (DECL_BIT_INDEX): Ditto.        
2063
2064 2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>
2065
2066         PR java/18119
2067         * parse.y (inner_class_accessible): New function. Logic moved from
2068         check_inner_class_access.
2069         (check_inner_class_access): Use inner_class_accessible.
2070         (resolve_inner_class): Simplify arguments. Create circularity hash
2071         here. Keep looking for classes if we found one that was inaccessible. 
2072         Return the inaccessible class only if there is no other match.
2073         (do_resolve_class): Update for new resolve_inner_class arguments.
2074         Don't create circularity_hash here.
2075
2076 2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>
2077
2078         PR java/21045
2079         * parse.y (add_exception_to_throws): New function.
2080         (purge_unchecked_exceptions): Removed.
2081         (get_constructor_super): Renamed from verify_constructor_super. Now
2082         returns the super constructor after verification.
2083         (java_complete_expand_method): Don't use purge_unchecked_exceptions
2084         or save/restore the exception list.
2085         (check_thrown_exceptions): Add uncaught exceptions in anonymous
2086         class initializers and constructors to the throws clause of the method. 
2087
2088 2005-07-05  Bryce McKinlay  <mckinlay@redhat.com>
2089
2090         PR java/19674
2091         * parse.y (interface_member_declaration): Allow empty statements in
2092         interface declarations.
2093
2094 2005-07-05  Paolo Bonzini  <bonzini@gnu.org>
2095
2096         * Makefile.in (parse.o): Adjust dependencies.
2097         * parse.y: Include tree-dump.h.
2098
2099 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
2100
2101         * class.c, decl.c, expr.c: Use '+' flag instead of %J.  Use 'q'
2102         flag for quoting.
2103
2104 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
2105
2106         * parse.y (issue_warning_error_from_context): Call
2107         pp_output_formatted_text to be able to get the buffer.
2108
2109 2005-06-30  Andrew Pinski  <pinskia@physics.uc.edu>
2110
2111         * parse.y (issue_warning_error_from_context): Update for the
2112         renaming of pp_format_text to pp_format.
2113
2114 2005-06-28  Paul Brook  <paul@codesourcery.com>
2115
2116         * decl.c (java_init_decl_processing): Call
2117         default_init_unwind_resume_libfunc.
2118
2119 2005-06-27  Tom Tromey  <tromey@redhat.com>
2120
2121         PR java/21540, PR java/13788:
2122         * parse.y (java_complete_lhs) <CASE_EXPR>: Use
2123         fold_constant_for_init.
2124         (patch_binop): Added 'folding' argument.  Updated all callers.
2125         (patch_unaryop) <NOP_EXPR>: New case.
2126         (fold_constant_for_init) <NOP_EXPR>: Likewise.
2127         (fold_constant_for_init) <COND_EXPR>: Fix sense of test.
2128
2129 2005-06-25  Jan Hubicka  <jh@suse.cz>
2130
2131         * builtins.c (define_builtin): Accept new flags parameter.
2132         (initialize_builtins): Mark the builtins const and nothrow accordingly.
2133
2134 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
2135
2136         * all files: Update FSF address in copyright headers.
2137
2138 2005-06-24  Tom Tromey  <tromey@redhat.com>
2139
2140         * verify-impl.c (verify_instructions_0): Correctly handle
2141         situation where PC falls off end.
2142
2143 2005-06-23  Bryce McKinlay  <mckinlay@redhat.com>
2144
2145         PR java/20697
2146         * parse.y (find_most_specific_methods_list): Remove special case for
2147         inner classes.
2148
2149 2005-06-15  Tom Tromey  <tromey@redhat.com>
2150
2151         PR libgcj/21906:
2152         * class.c (make_method_value): Use soft_abstractmethod_node for
2153         abstract method.
2154         * java-tree.h (soft_abstractmethod_node): New define.
2155         (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
2156         * decl.c (java_init_decl_processing): Initialize
2157         soft_abstractmethod_node.
2158
2159 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
2160
2161         * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
2162
2163 2005-06-13  Per Bothner  <per@bothner.com>
2164
2165         * expr.c (int highest_label_pc_this_method,
2166         start_label_pc_this_method): New globals.
2167         (lookup_label): Add start_label_pc_this_method to pc for label, and
2168         update highest_label_pc_this_method.  This prevents conflicts between
2169         labels from different methods.
2170         * java-tree.h: Declare new globals.
2171         * jcf-parse.c (parse_class_file): If needed bump
2172         start_label_pc_this_method and reset highest_label_pc_this_method.
2173
2174 2005-06-13  Tom Tromey  <tromey@redhat.com>
2175
2176         PR java/21844:
2177         * parse.y (nested_field_access_p): Handle case where outer field
2178         is inherited by enclosing class.
2179
2180 2005-06-12  Per Bothner  <per@bothner.com>
2181
2182         * class.c (inherits_from_p): Do load_class if needed.
2183
2184 2005-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2185
2186         * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
2187         * java-tree.h (parse_error_context): Move...
2188         * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
2189         * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
2190         * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
2191
2192 2005-06-08  Roger Sayle  <roger@eyesopen.com>
2193
2194         * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
2195
2196 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
2197
2198         * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
2199         msgid for argument name.
2200         * gjavah.c (error): Likewise.
2201         * java-tree.h (parse_error_context): Likewise.
2202         * parse.y (parse_error_context, parse_warning_context,
2203         issue_warning_error_from_context): Likewise.
2204
2205 2005-06-01  Tom Tromey  <tromey@redhat.com>
2206
2207         PR java/21722:
2208         * class.c (build_static_field_ref): Don't fold constant fields if
2209         current class is from a .class file and we're using indirect
2210         dispatch.
2211
2212 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2213
2214         * java/verify-glue.c: Don't include errors.h and include toplev.h.
2215         * java/Make-lang.in: Updates dependencies.
2216
2217 2005-05-26  Ranjit Mathew  <rmathew@hotmail.com>
2218
2219         PR java/19870.
2220         * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
2221         NESTED_FIELD_ACCESS_IDENTIFIER_P.
2222         (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
2223         (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
2224         * jcf-write.c (generate_classfile): Use
2225         NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
2226         OUTER_FIELD_ACCESS_IDENTIFIER_P.
2227         * parse.y (build_outer_field_access): Rename to
2228         build_nested_field_access. Support static fields and outer-to-inner
2229         class accesses.
2230         (outer_field_access_p): Rename to nested_field_access_p. Support
2231         static fields and generalise to outer-to-inner class and sibling
2232         inner class accesses.
2233         (outer_field_expanded_access_p): Rename to
2234         nested_field_expanded_access_p and support static fields.
2235         (outer_field_access_fix): Rename to nested_field_access_fix and
2236         support static fields.
2237         (build_outer_field_access_expr): Rename to
2238         build_nested_field_access_expr and support static fields.
2239         (build_outer_field_access_methods): Rename to
2240         build_nested_field_access_methods and support static fields. For
2241         static fields, generate accessors without class instance parameters.
2242         (build_outer_field_access_method): Rename to
2243         build_nested_field_access_method and support static fields.
2244         (build_outer_method_access_method): Use
2245         NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
2246         OUTER_FIELD_ACCESS_IDENTIFIER_P.
2247         (resolve_expression_name): Consider static field accesses across
2248         nested classes.
2249         (resolve_qualified_expression_name): Likewise.
2250         (java_complete_lhs): Use nested_field_access_fix instead of
2251         outer_field_access_fix.
2252         (patch_unary_op): Rename outer_field_flag to nested_field_flag.
2253         Use nested_field_expanded_access_p instead of
2254         outer_field_expanded_access_p. Use nested_field_access_fix instead
2255         of outer_field_access_fix.
2256         (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
2257         instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
2258
2259 2005-05-26  Bryce McKinlay  <mckinlay@redhat.com>
2260
2261         * decl.c (GCJ_BINARYCOMPAT_ADDITION, 
2262         GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
2263         (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
2264         MINOR_BINARYCOMPAT_ABI_VERSION): New.
2265         (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
2266         (parse_version): Calculate version ID using new method. Use bit-flags
2267         for flag_indirect_dispatch and flag_bootstrap_classes.
2268
2269 2005-05-25  Richard Henderson  <rth@redhat.com>
2270
2271         PR libgcj/21692
2272         * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
2273         * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
2274         DECL_CONTEXT; avoid pushdecl_top_level.
2275         (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
2276         (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
2277         (layout_class_method): Likewise.
2278         * decl.c (java_mark_cni_decl_local): New.
2279         (java_mark_class_local): Use it.
2280         * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
2281         (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
2282         (struct lang_decl_func): Add local_cni;
2283         (struct lang_decl_var): Add class_field, vtable.
2284         (java_mangle_decl): Declare.
2285         * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
2286         * mangle.c: Remove dup obstack.h; include langhooks-def.h.
2287         (mangle_obstack_1): New.
2288         (java_mangle_decl): Remove obstack argument.  Call mangle_class_field,
2289         mangle_vtable, and mangle_local_cni_method_decl.  Fall back to
2290         lhd_set_decl_assembler_name for things that don't need mangling.
2291         (mangle_class_field): Rename from java_mangle_class_field, make
2292         static, don't call init_mangling or finish_mangling.
2293         (mangle_vtable): Similarly.
2294         (mangle_local_cni_method_decl): New.
2295         (init_mangling): Remove obstack argument.  Use &mangle_obstack_1,
2296         gcc_assert, and MANGLE_RAW_STRING.
2297         (finish_mangling): Use gcc_assert, remove if 0 debugging code.
2298
2299 2005-05-25  DJ Delorie  <dj@redhat.com>
2300
2301         * class.c (set_constant_value): Move warning control from if() to
2302         warning(OPT_*).
2303
2304 2005-05-24  Richard Henderson  <rth@redhat.com>
2305
2306         * builtins.c (define_builtin): Don't call make_decl_rtl.
2307         * constants.c (build_constant_data_ref): Likewise.
2308         * class.c (build_utf8_ref): Likewise.
2309         (build_fieldref_cache_entry, build_static_field_ref): Likewise.
2310         (get_dispatch_table, layout_class_method): Likewise.
2311         (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
2312         by hand.
2313         (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
2314         (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
2315         to determine if we need a non-zero address.
2316         * decl.c (builtin_function): Don't call make_decl_rtl.
2317         (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
2318         * expr.c (build_known_method_ref): Don't call make_decl_rtl.
2319         * resource.c (compile_resource_data): Likewise.
2320         * parse.y (resolve_field_access): Re-word comment to avoid
2321         building DECL_RTL.
2322
2323 2005-05-24  Richard Henderson  <rth@redhat.com>
2324
2325         * class.c (registered_class): Take it out of class_roots; turn into
2326         a vec of trees.
2327         (register_class): Make static.  Don't duplicate decl node.  Use
2328         VEC_safe_push.
2329         (emit_register_classes): Use VEC_iterate.  Use output_constant
2330         instead of assemble_integer.  Don't call mark_decl_referenced
2331         directly.
2332         * java-tree.h (register_class): Remove decl.
2333
2334 2005-05-19  Paolo Bonzini  <bonzini@gnu.org>
2335
2336         PR java/17845
2337
2338         * parse.y (register_package, package_list): Remove.
2339         (package_declaration): Do not call register_package.
2340         (do_resolve_class): Do not use package_list.
2341
2342 2005-05-15  Gerald Pfeifer  <gerald@pfeifer.com>
2343
2344         * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Remove
2345         unused variable.
2346
2347 2005-05-15  Tom Tromey  <tromey@redhat.com>
2348
2349         PR java/21519:
2350         * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call
2351         NOTE_PUSH.
2352
2353 2005-05-12  Aaron Luchko <aluchko@redhat.com>
2354
2355         * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
2356
2357 2005-05-11  Tom Tromey  <tromey@redhat.com>
2358
2359         * gcj.texi (Code Generation): Document -fbootstrap-classes.
2360         * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
2361         (parse_version): Use it.
2362         * lang.opt (-fbootstrap-classes): New option.
2363
2364 2005-05-10  Paolo Bonzini  <bonzini@gnu.org>
2365
2366         PR java/21436
2367         * class.c (maybe_layout_super_class): Look for imports in this_class.
2368         * parse.h (ctxp_for_generation_last): New.
2369         (do_resolve_class): Add a parameter.
2370         * parse.y (ctxp_for_generation_last): New.
2371         (java_pop_parser_context): Add at end of list.
2372         (find_in_imports, find_in_imports_on_demand): Look in ctxp
2373         if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
2374         the given type are NULL.
2375         (do_resolve_class): Look into the imports of the new second parameter.
2376         Adjust recursive calls.
2377         (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
2378         calls to do_resolve_class.
2379         (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
2380         (java_complete_class): Do not do that here.
2381
2382 2005-05-03  Thomas Fitzsimmons  <fitzsim@redhat.com>
2383
2384         PR java/20309
2385         * Make-lang.in (java): Add gjnih.
2386         (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
2387         (GJNIH_OBJS): New variable.
2388         (gjnih$(exeext)): New target.
2389         (JAVA_MANFILES): Add gjnih.1.
2390         (java.uninstall): Add gjnih.1.
2391         (java.mostlyclean): Add gjnih.
2392         (java.maintainer-clean): Add gjnih.1.
2393         (java/gjavah-jni.o): New target.
2394         (.INTERMEDIATE): Add gjnih.pod.
2395         (gjnih.pod): New target.
2396         * config-lang.in (stagestuff): Add gjnih.
2397         * gcj.texi (Top): Add gjnih node.
2398         (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
2399         -bootclasspath options.
2400         (Invoking gjnih): New node.
2401         * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
2402         (TOOLNAME): New macro.
2403         (error): Replace hard-coded gcjh with TOOLNAME.
2404         (process_file): Likewise.
2405         (usage): Likewise.
2406         (version): Likewise.
2407         (help): Likewise.  Add help output for -force, -old, -trace and -J
2408         options.
2409         (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
2410         (options): Add force, old, trace and J fields.
2411         (main): Handle -force, -old, -trace and -J options.
2412
2413 2005-05-03  Tom Tromey  <tromey@redhat.com>
2414
2415         PR java/21245:
2416         * gjavah.c (main): Unlink output file on error.
2417
2418 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
2419
2420         * constants.c, jvgenmain.c, lang.opt, resource.c: Update
2421         copyright.
2422
2423 2005-04-29  Tom Tromey  <tromey@redhat.com>
2424
2425         * expr.c (build_jni_stub): Updated for change to build_block.
2426
2427 2005-04-29  Andrew Pinski  <pinskia@gcc.gnu.org>
2428
2429         * expr.c (force_evaluation_order): Declare 'saved' earlier.
2430
2431 2005-04-28  Andrew Haley  <aph@redhat.com>
2432
2433         PR java/19285
2434         * java-tree.h (soft_resolvepoolentry_node): New.
2435         (alloc_constant_fieldref): Declare.
2436         * expr.c (expand_java_field_op): Don't call class_init for
2437         accesses to static fields with indirect dispatch.
2438         * builtins.c (initialize_builtins): Add "__builtin_expect".
2439         * decl.c (soft_resolvepoolentry_node): New variable.
2440         (java_init_decl_processing): Create a decl for
2441         "_Jv_ResolvePoolEntry".
2442         * class.c (build_fieldref_cache_entry): New function.
2443         (build_static_field_ref): Rewrite for indirect dispatch.
2444         * constants.c (find_name_and_type_constant_tree): New function.
2445         (alloc_constant_fieldref): Likewise.
2446         (build_constants_constructor): Handle CONSTANT_Fieldref and
2447         CONSTANT_NameAndType.
2448
2449         PR java/21115
2450         * expr.c (force_evaluation_order): Convert outgoing args smaller
2451         than integer.
2452
2453 2005-04-27  Bryce McKinlay  <mckinlay@redhat.com>
2454
2455         * gcj.texi (libgcj Runtime Properties): Remove obsolete
2456         gnu.gcj.runtime.NameFinder.* system properties. Update documentation 
2457         for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
2458
2459 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2460
2461         * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
2462         to `unlock_stream' with `unlock_std_streams'.
2463
2464 2005-04-25  Jakub Jelinek  <jakub@redhat.com>
2465
2466         * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
2467         instead of just expr.h.
2468
2469 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2470
2471         * gjavah.c (main): Unlock the stdio streams.
2472         * jcf-dump.c (main): Likewise.
2473         * jv-scan.c (main): Likewise.
2474         * jvgenmain.c (main): Likewise.
2475
2476 2005-04-23  DJ Delorie  <dj@redhat.com>
2477
2478         * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
2479         parse.y: Adjust warning() callers.
2480
2481 2005-04-21  Bryce McKinlay  <mckinlay@redhat.com>
2482
2483         * gcj.texi (Object fields): Change "Integer" to "Int" in example
2484         contructor.
2485
2486 2005-04-20  Bryce McKinlay  <mckinlay@redhat.com>
2487
2488         * gcj.texi: Fix typos and bogus example.
2489
2490 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
2491
2492         * except.c: Fix a comment typo.
2493
2494 2005-04-19  Julian Brown  <julian@codesourcery.com>
2495
2496         * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
2497         indirect dispatch with PIC.
2498
2499 2005-04-18  Andrew Haley  <aph@redhat.com>
2500
2501         * java-except.h (struct eh_range.handler): Remove unused field.
2502         (handle_nested_ranges): Remove function declaration.
2503         (sanity_check_exception_range): Add function declaration.       
2504         * verify.c (verify_jvm_instructions): Remove call to
2505         handle_nested_ranges.
2506         * verify-glue.c (verify_jvm_instructions_new): Call
2507         sanity_check_exception_range.
2508         * except.c (link_handler, eh_range_freelist, link_handler,
2509         handle_nested_ranges): Remove.
2510         (add_handler): Rewrite.
2511         (sanity_check_exception_range): New function.
2512         (print_ranges): New function.
2513
2514 2005-04-13  Julian Brown  <julian@codesourcery.com>
2515
2516         * decl.c (finish_method): Give methods once-only linkage.
2517
2518 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
2519
2520         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
2521
2522 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2523
2524         * java-tree.h: Don't use PARAMS().
2525
2526 2005-04-07  Per Bothner  <per@bothner.com>
2527
2528         * class.c (push_class): By default, suppress debug output.
2529         (finish_class): Enable debug output for classes we're emitting.
2530
2531 2005-04-07  Andrew Haley  <aph@redhat.com>
2532
2533         * gcj.texi: Correct gcj-dbtool instructions.
2534
2535 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
2536
2537         * gcj.texi: Fix a typo.
2538         * lang.c: Fix a comment typo.
2539
2540 2005-04-01  Thomas Fitzsimmons  <fitzsim@redhat.com>
2541
2542         * gcj.texi (Invoking gij): Add descriptions of new -X options.
2543         Mention recognized-and-ignored compatibility options.
2544         (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
2545         JvFree.
2546         (About CNI): Add Memory allocation section.
2547
2548 2005-04-01  Tom Tromey  <tromey@redhat.com>
2549
2550         * decl.c (java_init_decl_processing): Fix types of
2551         _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
2552         _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
2553         _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
2554
2555 2005-03-31  Jan Hubicka  <jh@suse.cz>
2556
2557         * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
2558         * class.c: Include cgraph.h
2559         (make_local_functoin_alias): Mark aslias as needed.
2560         * resource.c: Include cgraph.h
2561         (compile_resource_data): Go via cgraph interface.
2562
2563 2005-03-30  Ian Lance Taylor  <ian@airs.com>
2564
2565         * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
2566
2567 2005-03-30  Tom Tromey  <tromey@redhat.com>
2568
2569         * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
2570         inner_class_info_index==0 or outer_class_info_index==0.
2571
2572 2005-03-29  Tom Tromey  <tromey@redhat.com>
2573
2574         * gcj.texi (libgcj Runtime Properties): Document
2575         gnu.gcj.runtime.endorsed.dirs.
2576
2577 2005-03-24  Anthony Green  <green@redhat.com>
2578
2579         * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
2580         'gcj-dbtool -p'.
2581
2582 2005-03-23  Tom Tromey  <tromey@redhat.com>
2583
2584         * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
2585         (parse_version): Use it.
2586
2587 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2588
2589         * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2590
2591 2005-03-18  Andrew Haley  <aph@redhat.com>
2592
2593         PR java/20522
2594         * decl.c (update_aliases): Don't update variables that are about
2595         to die.
2596         (maybe_poplevels): Add comment.
2597
2598 2005-03-17  Bryce McKinlay  <mckinlay@redhat.com>
2599
2600         PR java/20502
2601         * jcf-parse.c (duplicate_class_warning): New function.
2602         (java_parse_file): Call duplicate_class_warning if 
2603         CLASS_FROM_CURRENTLY_COMPILED_P is already set.
2604         (parse_zip_file_entries): Likewise. Also set
2605         CLASS_FROM_CURRENTLY_COMPILED_P.
2606
2607 2005-03-16  Andrew Haley  <aph@redhat.com>
2608
2609         * expr.c (expand_java_arrayload): Don't generate a
2610         NullPointerException based on the type of the node.
2611         (build_java_array_length_access): Likewise.
2612
2613 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
2614
2615         * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
2616
2617 2005-03-11  Tom Tromey  <tromey@redhat.com>
2618
2619         * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
2620         (libgcj Runtime Properties): Document the default .db.
2621
2622 2005-03-10  Ranjit Mathew  <rmathew@hotmail.com>
2623
2624         PR java/20312
2625         * parse.y (checks_throws_clauses): Check exceptions list even when
2626         the base class does not come from a source file being compiled.
2627         (java_complete_lhs): Remove unused variable 'wfl'.
2628
2629 2005-03-09  Ranjit Mathew  <rmathew@hotmail.com>
2630
2631         PR java/20338
2632         * decl.c (finish_method): Emit _Jv_InitClass for private static
2633         methods inside inner classes as well.
2634
2635 2005-03-08  Julian Brown  <julian@codesourcery.com>
2636         * Revert patch from 2005-03-08 for causing bootstrap failure on
2637         ppc-darwin.
2638
2639 2005-03-08  Julian Brown  <julian@codesourcery.com>
2640
2641         * decl.c (finish_method): Give methods once-only linkage.
2642
2643 2005-03-07  Ranjit Mathew  <rmathew@hotmail.com>
2644
2645         * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
2646
2647 2005-03-07  Bryce McKinlay  <mckinlay@redhat.com>
2648
2649         * verify-glue.c (vfy_is_assignable_from): Perform static check using
2650         can_widen_reference_to if the C++ ABI is in use.
2651         (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
2652         * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
2653         type_isresolved, init_state, set_pc, state_get_pc,
2654         _Jv_BytecodeVerifier): Clean up unused and disabled functions.
2655         (verify_fail): Report the current PC from the verifier context.
2656         (free_state): Remove #if 0 block to enable this function.
2657         (free_verifier_context): Call free_state on state_list iterator
2658         values before freeing them.
2659         * expr.c (pop_type_0): Pop correct type for error message when stack
2660         contains a multi-word type.
2661
2662 2005-03-07  Ranjit Mathew  <rmathew@hotmail.com>
2663
2664         * expr.c (build_java_array_length_access): Remove !flag_new_verifier
2665         for known NULL array length access.
2666
2667 2005-03-07  Tom Tromey  <tromey@redhat.com>
2668
2669         * gcj.texi (Invoking gcj-dbtool): Document '-f'.
2670
2671 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
2672
2673         * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
2674         typeck.c: Update copyright.
2675
2676 2005-03-06  Ranjit Mathew  <rmathew@hotmail.com>
2677
2678         Remove xref code.
2679         * xref.c, xref.h: Remove file.
2680         * Make-lang.in (java/xref.o): Remove.
2681         * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
2682         * lang.c (flag_emit_xref): Remove definition.
2683         * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
2684         * typeck.c (convert): Remove use of do_not_fold.
2685         * parse.y (do_not_fold): Remove definition.
2686         (parser grammar): Remove xref code.
2687         (maybe_create_class_interface_decl, create_class): Likewise.
2688         (register_fields, method_header, finish_method_declaration): Likewise.
2689         (declare_local_variables, source_end_java_method): Likewise.
2690         (java_complete_expand_classes): Do not set do_not_fold.
2691         (java_complete_expand_method): Remove xref code.
2692         (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
2693         (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
2694         (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
2695         (patch_synchronized_statement, patch_throw_statement): Likewise.
2696         (maybe_build_class_init_for_field): Likewise.
2697
2698 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
2699
2700         * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
2701         instead of IS_NON_TYPE_CODE_CLASS.
2702
2703 2005-03-04  Andrew Haley  <aph@redhat.com>
2704
2705         PR java/18362
2706         * class.c (set_method_index): Don't set method_index if it is
2707         NULL_TREE.
2708         (layout_class_method): Don't complain about "non-static method foo
2709         overrides static method" in the case of indirect dispatch.
2710
2711 2005-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2712
2713         * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
2714         warning.
2715         * Make-lang.in: Don't elide warnings in jcf-io.c.
2716
2717 2005-03-01  Per Bothner  <per@bothner.com>
2718
2719         PR java/8608
2720         * check-init.c (wfl): Remove static.
2721         (final_assign_error, check_init): Replace calls to parse_error_context
2722         by plain error.
2723         (check_init): Save, set, and restore input_location for each exp.
2724
2725 2005-03-01  Per Bothner  <per@bothner.com>
2726
2727         * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
2728         if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
2729         * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
2730
2731 2005-03-01  Per Bothner  <per@bothner.com>
2732
2733         * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
2734
2735 2005-02-23  Thomas Fitzsimmons  <fitzsim@redhat.com>
2736
2737         PR libgcj/16923
2738         * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
2739         JvVMOption.
2740
2741 2005-02-22  Tom Tromey  <tromey@redhat.com>
2742
2743         PR java/20056:
2744         * verify-impl.c (EITHER): New define.
2745         (types_compatible): Handle it.
2746         (check_field_constant): Use it.
2747
2748 2005-02-18  Tom Tromey  <tromey@redhat.com>
2749
2750         PR java/20056:
2751         * verify-impl.c (types_equal): Fixed test.
2752
2753         PR java/20056:
2754         * verify-glue.c (vfy_class_has_field): New function.
2755         * verify.h (vfy_class_has_field): Declare.
2756         * verify-impl.c (check_field_constant): Added 'putfield'
2757         argument.
2758         (verify_instructions_0): Updated.
2759         (types_equal): New function.
2760
2761 2005-02-14  Tom Tromey  <tromey@redhat.com>
2762
2763         PR java/19921:
2764         * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the
2765         stack effect of multianewarray.
2766
2767 2005-02-14  Andrew Haley  <aph@redhat.com>
2768
2769         PR java/19907
2770         * expr.c (expand_byte_code): Call promote_arguments().
2771         (promote_arguments): New function.
2772         * decl.c (check_local_unnamed_variable): Remove special case for
2773         new verifier.
2774         (find_local_variable): Promote all boolean types to int
2775         when searching for local variable decls.
2776
2777 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
2778
2779         * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
2780         parse-scan.y: Update copyright.
2781
2782 2005-02-11  Per Bothner  <per@bothner.com>
2783
2784         PR java/15543
2785         * parse-scan.y (input_location): Remove variable.
2786         (main_input_filename): New - replaces input_filename, which isn't
2787         settable if USE_MAPPED_LOCATION.
2788         * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
2789         so we don't reference input_location or wfl_operator in that case.
2790         * jv-scan.c (expand_location): Remove - no longer used.
2791         (main): Set main_input_filename rather than input_filename.
2792
2793 2005-02-09  Richard Henderson  <rth@redhat.com>
2794
2795         * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
2796         * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
2797
2798 2005-02-08  Marcin Dalecki  <martin@dalecki.de>
2799
2800         * expr.c (add_type_assertion): Use the proper enumeration type,
2801         since this is what htab_find_slot() is expecting.
2802
2803 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
2804
2805         * gcj.texi: Update copyright dates.
2806
2807 2005-02-02  Tom Tromey  <tromey@redhat.com>
2808
2809         * gcj.texi (libgcj Runtime Properties): Default library_control
2810         to 'cache'.
2811
2812 2005-02-02  Ranjit Mathew  <rmathew@hotmail.com>
2813
2814         PR java/15543
2815         * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
2816         (modifiers) when square brackets are present in a declaration for
2817         a final paramter.
2818         * jv-scan.c (main): Set input_filename and input_line.
2819
2820 2005-02-01  Tom Tromey  <tromey@redhat.com>
2821
2822         PR java/19742:
2823         * gjavah.c (get_field_name): Don't override name for JNI header.
2824
2825 2005-02-01  Roger Sayle  <roger@eyesopen.com>
2826
2827         * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
2828         of unsigned types using iushr and lushr JVM bytecodes.
2829
2830 2005-02-01  Ranjit Mathew  <rmathew@hotmail.com>
2831
2832         PR java/19738
2833         * gjavah.c (jni_print_float): Do not emit floating-point
2834         initialiser for a static final field.
2835         (jni_print_double): Likewise.
2836
2837 2005-02-01  Mark Mitchell  <mark@codesourcery.com>
2838
2839         Revert:
2840         2005-01-31  Mark Mitchell  <mark@codesourcery.com>
2841         * gjavah.c (print_field_info): Mark static data members of
2842         floating-point type with "__extension__".
2843
2844 2005-01-31  Mark Mitchell  <mark@codesourcery.com>
2845
2846         * gjavah.c (print_field_info): Mark static data members of
2847         floating-point type with "__extension__".
2848
2849 2005-02-01  Ranjit Mathew  <rmathew@hotmail.com>
2850
2851         PR java/9157
2852         * parse.y (build_string_concatenation): Remove redundant if.
2853         (patch_conditional_expr): Attempt to patch_string() the condition
2854         of a ?: as well, in addition to its other operands.
2855
2856 2005-01-25  Tom Tromey  <tromey@redhat.com>
2857
2858         * Make-lang.in (java/java-tree-inline.o): Removed.
2859
2860 2005-01-25  Ranjit Mathew  <rmathew@hotmail.com>
2861
2862         PR java/19070
2863         * parse.y (patch_binop): Allow comparisons against NULL only
2864         if the other operand is of a reference type.
2865
2866 2005-01-24  Tom Tromey  <tromey@redhat.com>
2867
2868         * java-tree.h (gcj_abi_version): Declare.
2869         * class.c (make_class_data): Push gcj_abi_version into "next"
2870         field.  Renamed field.
2871         * decl.c (gcj_abi_version): New global.
2872         (parse_version): New function.
2873         (java_init_decl_processing): Call it.  Renamed 'next' field.
2874         Include version.h.
2875         (GCJ_BINARYCOMPAT_ADDITION): New define.
2876
2877 2005-01-24  Roger Sayle  <roger@eyesopen.com>
2878
2879         PR java/19295
2880         * jcf-write.c (generate_bytecode_insns): Conversions between
2881         integer types of the same precision shouldn't generate widening
2882         or narrowing conversion bytecodes.
2883
2884 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
2885
2886         * java-except.h, java-tree.h: Remove unused prototypes.
2887
2888 2005-01-20  Andrew Pinski  <pinskia@gcc.gnu.org>
2889
2890         PR java/18091:
2891         * jcf-write.c (perform_relocations): Don't call memcpy if source
2892         and destination are the same.
2893
2894 2005-01-17  Tom Tromey  <tromey@redhat.com>
2895
2896         * verify-impl.c (get_short): Sign extend.
2897         (get_int): Likewise.
2898
2899 2005-01-12  Ranjit Mathew  <rmathew@hotmail.com>
2900
2901         * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
2902         with TYPE_SIZE.
2903
2904 2005-01-10  Ranjit Mathew  <rmathew@hotmail.com>
2905
2906         * verify.c: Revert to the version before the BC-ABI merge.
2907
2908 2005-01-10  Ranjit Mathew  <rmathew@hotmail.com>
2909
2910         PR java/19277
2911         * check-init.c (check_init): Take care of references that do not
2912         have an explicit final variable declaration (e.g. array length
2913         access) for pre/post in/de-crement operators.
2914
2915 2005-01-08  Mark Wielaard  <mark@klomp.org>
2916
2917         * parse.y (process_imports): Allocate (and free) original_name only
2918         when not already defined.
2919         * jcf-parse.c (read_class): Free results of find_class() and
2920         lrealpath().
2921         (java_parse_file): Keep pointer to head of file_list and free when
2922         done. Free result of lrealpath().
2923
2924 2005-01-05  Tom Tromey  <tromey@redhat.com>
2925
2926         * gcj.texi (Standard Properties): java.ext.dirs is now used.
2927
2928 2004-12-20  Andrew Haley  <aph@redhat.com>
2929
2930         * typeck.c: Use fold_convert for ints and booleans.
2931
2932 2004-12-17  Andrew Haley  <aph@redhat.com>
2933
2934         PR java/18931
2935         * typeck.c (convert): Use a CONVERT_EXPR when converting to
2936         BOOLEAN_TYPE or CHAR_TYPE.
2937         (convert_to_boolean, convert_to_char) : Remove.
2938         * convert.h (convert_to_boolean, convert_to_char) : Remove.
2939         * expr.c (expand_load_internal): Do type conversion if type is not
2940         as required.
2941
2942 2004-12-13  Danny Smith  <dannysmith@users.sourceforge.net>
2943
2944         PR target/18459
2945         * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
2946         Update comment.
2947
2948 2004-12-07  Andrew Haley  <aph@redhat.com>
2949
2950         PR java/18811:
2951         * jcf-parse.c (load_class): Remove sanity test for missing inner
2952         class file.
2953
2954 2004-12-06  Tom Tromey  <tromey@redhat.com>
2955
2956         * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
2957         (java.uninstall): Likewise.
2958         (java.maintainer-clean): Likewise.
2959         (.INTERMEDIATE): Likewise.
2960         (java.install-man): Likewise.
2961         (gcj-dbtool.pod): New target.
2962         * gcj.texi (Code Generation): Document -findirect-dispatch.
2963         (libgcj Runtime Properties): Document
2964         gnu.gcj.precompiled.db.path.
2965         (Top): Link to "Invoking gcj-dbtool".
2966
2967 2004-12-06  Tom Tromey  <tromey@redhat.com>
2968
2969         PR java/14853:
2970         * java-tree.h (extract_field_decl): Declare.
2971         * parse.y (extract_field_decl): Renamed from
2972         strip_out_static_field_access_decl.  No longer static.
2973         * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
2974
2975 2004-12-03  Tom Tromey  <tromey@redhat.com>
2976
2977         * lang.c (flag_new_verifier): Define.
2978         (java_post_options): Set flag_new_verifier if indirect dispatch
2979         is being used.
2980         * lang.opt (fnew-verifier): Removed.
2981
2982 2004-12-03  Tom Tromey  <tromey@redhat.com>
2983
2984         PR bootstrap/14614:
2985         * Make-lang.in (java.install-common): Only install transformed
2986         gcjh if gcj-cross exists.
2987
2988 2004-12-03  Andrew Haley  <aph@redhat.com>
2989
2990         PR java/18812
2991         * except.c (link_handler): Patch 'outer' field of siblings of the
2992         range we're demoting.
2993
2994 2004-12-03  Andrew Haley  <aph@redhat.com>
2995
2996         PR java/18697
2997         * class.c (layout_class_method): Don't fail to override a method
2998         simply because it has DECL_ARTIFICIAL set.
2999
3000 2004-12-02  Tom Tromey  <tromey@redhat.com>
3001
3002         PR java/16675:
3003         * parse.y (craft_constructor): Special case null_pointer_node.
3004
3005 2004-12-02  Tom Tromey  <tromey@redhat.com>
3006
3007         PR java/18741:
3008         * java-gimplify.c (java_gimplify_expr): Don't call
3009         SET_EXPR_LOCATION unless wrapped tree is an expression.
3010
3011 2004-11-27  Per Bothner  <per@bothner.com>
3012
3013         * jcf-parse.c (set_source_filename):  Improvement to Andrew's fix:
3014         Fix fencepost error in 'i', which got executed one too many times.
3015         Also, fold memcpy into explicit loop, as originally intended.
3016         Also, free temporary 'buf' which otherwise leaks.
3017
3018 2004-11-27  Per Bothner  <per@bothner.com>
3019
3020         * expr.c (build_expr_wfl): Only declare last_file and last_filenode
3021         local static variables if not USE_MAPPED_LOCATION.
3022
3023 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
3024
3025         * class.c, decl.c, expr.c: Fix comment typos.
3026
3027 2004-11-26  Andrew Pinski  <pinskia@physics.uc.edu>
3028
3029         PR java/18305
3030         * decl.c (end_java_method): Call
3031         attach_init_test_initialization_flags on all the init_decls.
3032         * parse.y (attach_init_test_initialization_flags): Move to ...
3033         * expr.c (attach_init_test_initialization_flags): here and
3034         support BIND_EXPR also.
3035         * java-tree.h (attach_init_test_initialization_flags): Prototype.
3036         * jcf-parse.c (parse_class_file): Don't disable class init
3037         optimization.
3038
3039 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
3040
3041         * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
3042         in diagnostics.
3043
3044 2004-11-24  Richard Henderson  <rth@redhat.com>
3045
3046         * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
3047         vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
3048
3049 2004-11-24  Tom Tromey  <tromey@redhat.com>
3050
3051         * verify.c (defer_merging): Don't use C++-style comment.
3052         * verify.h (java_opcode): Added java_opcode_end.
3053         * class.c (build_class_ref): Remove C++ comment and old FIXME.
3054
3055         * verify-impl.c (vfy_push_type): Removed bogus "return".
3056         (initialize_stack): Use vfy_alloc and vfy_free.
3057         (verify_instructions_0): Likewise.
3058
3059         * Merged gcj-abi-2-dev-branch to trunk.
3060
3061 2004-11-24  Andrew Haley  <aph@redhat.com>
3062
3063         * jcf-parse.c (parse_class_file): Set file_start_location.
3064
3065 2004-11-10  Tom Tromey  <tromey@redhat.com>
3066
3067         * class.c (make_field_value): Don't call build_static_field_ref.
3068         (build_static_field_ref): Don't emit direct references when using
3069         indirect dispatch.
3070
3071         * gcj.texi (Invoking gij): Document -verbose.  Put -verbose and
3072         -verbose:class into man page synopsis.
3073
3074 2004-11-09  Tom Tromey  <tromey@redhat.com>
3075
3076         * expr.c (build_java_arraystore_check): Still generate check if
3077         element type is itself an array.
3078
3079 2004-11-08  Tom Tromey  <tromey@redhat.com>
3080
3081         * java-tree.h (soft_check_assignment_node): Removed.
3082         (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
3083         * decl.c (java_init_decl_processing): Don't initialize
3084         soft_check_assignment_node.
3085
3086 2004-11-05  Tom Tromey  <tromey@redhat.com>
3087
3088         * class.c (layout_class_methods): Don't add Miranda methods when
3089         using indirect dispatch.
3090
3091 2004-11-05  Bryce McKinlay  <mckinlay@redhat.com>
3092
3093         * class.c (make_class_data): Call emit_assertion_table to set the
3094         'assertion_table' field.
3095         (build_signature_for_libgcj): Move here from expr.c.
3096         (add_assertion_table_entry): New function. Callback for assertion
3097         hashtable traversal.
3098         (emit_assertion_table): New. Take class argument, and generate
3099         assertion table DECL based on the TYPE_ASSERTIONS hashtable.
3100         * decl.c (init_decl_processing): Define assertion_entry_type record.
3101         Push 'assertion_table' class field instead of 'verify'.
3102         * expr.c (type_assertion_eq): Compare 'assertion_code' field.
3103         (type_assertion_hash): Include 'assertion_code' in hash.
3104         (add_type_assertion): Rewritten. Take class and assertion_code
3105         arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
3106         (can_widen_reference_to): Use new add_type_assertion() arguments.
3107         * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
3108         JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
3109         (verify_identifier_node): Removed.
3110         (assertion_entry_type, assertion_table_type): New.
3111         (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
3112         assertion code definitions.
3113         (struct type_assertion): Add assertion_code. Rename 'source_type' and
3114         'target_type' to 'op1' and 'op2'.
3115         (add_type_assertion): Declare.
3116         (lang_printable_name_wls): Remove unused definition.
3117         * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
3118         to emit runtime assertion.
3119         (vfy_note_stack_type): Clean up non-C90 declarations.
3120         (vfy_note_local_type): Likewise.
3121         * verify.h (vfy_is_assignable_from): Declare.
3122         * verify-impl.c (is_assignable_from_slow): Remove unused function.
3123         (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
3124         instead of is_assignable_from_slow().
3125         (types_compatible): Reinstate ref_compatible() call.
3126
3127 2004-11-04  Tom Tromey  <tromey@redhat.com>
3128
3129         * class.c (build_static_field_ref): Reverted previous patch.
3130
3131         * class.c (build_static_field_ref): Don't emit direct references
3132         when using indirect dispatch.
3133
3134 2004-11-03  Tom Tromey  <tromey@redhat.com>
3135
3136         * expr.c (expand_java_arrayload): Set lhs_type_node.
3137         (expand_java_arraystore): Set rhs_type_node.
3138
3139 2004-11-02  Tom Tromey  <tromey@redhat.com>
3140
3141         * jcf-parse.c (compute_class_name): Use filename length from zip
3142         directory, not strlen.
3143
3144         * expr.c (expand_invoke): Mark new interface methods as abstract.
3145
3146 2004-11-01  Tom Tromey  <tromey@redhat.com>
3147
3148         * verify-impl.c (push_jump): Removed check for uninitialized
3149         objects.
3150         (push_exception_jump): Likewise.
3151         (handle_ret_insn): Likewise.
3152         (handle_jsr_insn): Likewise.
3153         (state_check_no_uninitialized_objects): Removed.
3154
3155         * decl.c (check_local_unnamed_variable): Recognize
3156         promoted-to-int parameters when using the new verifier.
3157         * expr.c (expand_java_arraystore): Explicitly request array type
3158         when using new verifier.
3159         (expand_java_arrayload): Likewise.
3160         (invoke_build_dtable): Don't pass object_type_node as
3161         expression argument to build_java_indirect_ref.
3162         (build_java_check_indexed_type): Do nothing.
3163         (build_java_arraystore_check): Handle case where array doesn't
3164         have array type.
3165         (build_java_array_length_access): Likewise.
3166         (expand_invoke): Handle case where interface overrides a method
3167         from Object.
3168         (pop_type_0): Always succeed for reference types.
3169         (process_jvm_instruction): Don't pop a value in a dead
3170         exception handler.
3171         (pop_arguments): Convert arguments to correct types.
3172
3173 2004-10-29  Andrew Haley  <aph@redhat.com>
3174
3175         * jcf-parse.c (give_name_to_class): Remove line that was
3176         incorrectly merged.
3177
3178 2004-10-29  Andrew Haley  <aph@redhat.com>
3179
3180         * jcf-parse.c (set_source_filename): Add code to build new sfname.
3181
3182 2004-10-20  Andrew Haley  <aph@redhat.com>
3183
3184         * decl.c (end_java_method): Don't expand if flag_syntax_only.
3185
3186 2004-10-26  Tom Tromey  <tromey@redhat.com>
3187
3188         * verify.h (vfy_notify_verified): Removed.
3189         * verify-glue.c (vfy_notify_verified): Removed.
3190
3191 2004-10-26  Tom Tromey  <tromey@redhat.com>
3192
3193         * verify-impl.c (debug_print_state): Declare `i' before code.
3194         (merge_types): Modify `t' when it is null_type.
3195
3196 2004-10-26  Tom Tromey  <tromey@redhat.com>
3197
3198         * verify-impl.c (type_print): Renamed from print.  Now static and
3199         takes an argument.
3200         (debug_print_state): Use type_print.
3201
3202 2004-10-25  Tom Tromey  <tromey@redhat.com>
3203
3204         * expr.c (build_invokeinterface): Compute correct offset for
3205         index into interface methods.
3206
3207 2004-10-20  Tom Tromey  <tromey@redhat.com>
3208
3209         * java-tree.h (verify_jvm_instructions_new): Declare.
3210
3211         * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
3212         command line.
3213
3214         * verify-impl.c (verify_instructions): Correctly handle wide
3215         types on the stack.
3216         * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
3217         (vfy_get_component_type): Strip pointer types.
3218         (vfy_find_class): Use get_type_from_signature.  Strip pointer
3219         types.
3220         Include java-except.h.
3221
3222 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
3223
3224         * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
3225         vfy_push_type_t, set_variable, add_new_state, merge_into,
3226         handle_jsr_insn, branch_prepass, check_class_constant,
3227         check_wide_constant, get_one_type, compute_static_types,
3228         verify_instructions_0): Clean up C99 declarations after statements.
3229
3230 2004-10-20  Tom Tromey  <tromey@redhat.com>
3231
3232         * verify-impl.c (merge_refs): Compare reference against iterator,
3233         not ref2.
3234
3235         * verify-glue.c (vfy_tag): Mask off resolved flag.
3236
3237 2004-10-19  Tom Tromey  <tromey@redhat.com>
3238
3239         * verify-impl.c (verify_instructions): Call vfy_note_local_type.
3240         (init_state_with_stack): Initialize `this_type' in state.
3241         (verify_method): Use debug_print.
3242         * verify-glue.c (vfy_is_primitive): Removed debugging print.
3243         (vfy_note_stack_depth): Reverted last patch.
3244         (vfy_note_stack_type): Note pointer to Object, not Object.
3245         (vfy_note_local_type): Likewise.
3246
3247         * verify.h (vfy_note_instruction_seen): Declare.
3248         * verify-glue.c (verify_jvm_instructions_new): Set
3249         BCODE_EXCEPTION_TARGET on target instruction.
3250         (vfy_note_instruction_seen): New function.
3251         * verify-impl.c (FLAG_INSN_SEEN): New define.
3252         (verify_instructions_0): Set flag on instruction.  Save state for
3253         PC=0 later.
3254         (verify_instructions): Call vfy_note_instruction_seen.
3255
3256         * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
3257         (verify_jvm_instructions_new): Call method_init_exceptions,
3258         add_handler, and handle_nested_ranges.
3259         * verify-impl.c (verify_method): Return 1 on success.
3260         (verify_instructions_0): Save the state at PC=0.
3261
3262         * verify-impl.c (init_type_from_class): Set is_resolved and
3263         ref_next on new ref_intersection.
3264         (init_type_from_string): Likewise.
3265
3266 2004-10-15  Bryce McKinlay  <mckinlay@redhat.com>
3267
3268         * expr.c (expand_bytecode): Use verify_jvm_instructions_new
3269         if flag_new_verifier is set.
3270         * java-tree.h (flag_new_verifier): Declare.
3271         * lang.opt (fnew-verifier): New option.
3272         * verify-impl.c: Work around namespace pollution by undef'ing
3273         'current_class'.
3274         (struct verifier_context): Make 'bytecode' const.
3275         (verify_fail_pc): Pass -1 PC argument to vfy_fail.
3276         (types_compatible): For the BC-ABI, always consider reference types
3277         compatible.
3278         (check_class_constant): Use vfr->current_class.
3279         (check_constant): Likewise.
3280         (check_wide_constant): Likewise.
3281         (check_field_constant): Check for 'L' at start of type name.
3282         (get_one_type): Return pointer instead of type. Set type result in
3283         caller via passed type pointer.
3284         (compute_argument_types): Update to use new get_one_type arguments.
3285         (compute_return_type): Likewise.
3286         (make_verifier_context): New. Allocate and initialize 'vfr'.
3287         (free_verifier_context): New. Free 'vfr' and its contents.
3288         (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
3289         and free_verifier_context.
3290
3291 2004-10-15  Tom Tromey  <tromey@redhat.com>
3292
3293         * verify-glue.c (vfy_note_local_type): Mark argument as unused.
3294         * verify.h (vfy_fail): Fixed formatting.
3295
3296         * verify-impl.c (vfr): Fixed comment formatting.
3297         (collapse_type): New function.
3298         (verify_instructions): Notify compiler about type map.
3299         * verify.h (vfy_note_stack_depth): Updated.
3300         (vfy_note_stack_type): Likewise.
3301         (vfy_note_local_type): Likewise.
3302         (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
3303         Declare.
3304         * verify-glue.c (vfy_note_stack_depth): Correctly size type
3305         state.  Added `method' argument.
3306         (vfy_note_stack_type): Renamed from vfy_note_type.  Added `method'
3307         argument.
3308         (vfy_note_local_type): New function.
3309         (vfy_unsuitable_type): Likewise.
3310         (vfy_return_address_type): Likewise.
3311         (vfy_null_type): Likewise.
3312
3313         * verify.h (VFY_IN_GCC): Removed.
3314         (VFY_WANT_TYPEMAP): Removed.
3315         * verify-impl.c (verify_instructions_0): Removed useless "\".
3316         (struct state) <next>: Uncomment.
3317
3318 2004-10-13  Bryce McKinlay  <mckinlay@redhat.com>
3319
3320         * verify-impl.c: Formatting fixes. Reformat C++-style comments to
3321         C-style.
3322
3323 2004-10-06  Bryce McKinlay  <mckinlay@redhat.com>
3324
3325         * Make-lang.in (verify.o): Re-enabled this target.
3326         * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
3327         (vfy_get_interface): Likewise.
3328         (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
3329         * verify.h (verify_jvm_instructions_new): Declare.
3330         * verify-impl.c (free_state): Temporarily comment out unused
3331         function.
3332
3333 2004-10-06  Tom Tromey  <tromey@redhat.com>
3334
3335         * java-tree.h (JV_STATE_READ): New enum value.
3336
3337 2004-10-06  Bryce McKinlay  <mckinlay@redhat.com>
3338
3339         * verify.h: New file.
3340
3341 2004-10-05  Bryce McKinlay  <mckinlay@redhat.com>
3342
3343         * verify-impl.c, verify-glue.c, verify.h: New files.
3344         * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
3345
3346 2004-09-24  Andrew Haley  <aph@redhat.com>
3347
3348         * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
3349         for a slot if it's of pointer type.
3350
3351 2004-09-14  Tom Tromey  <tromey@redhat.com>
3352
3353         * class.c (make_class_data): Correctly initialize "state" field.
3354         Initialize "engine" field.
3355         * decl.c (java_init_decl_processing): Add "engine" field.
3356
3357 2004-09-10  Andrew Haley  <aph@redhat.com>
3358
3359         PR java/12760
3360         * expr.c (build_invokeinterface): Use fast method for interface
3361         dispatch.
3362         * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
3363         JTI_ITABLE_PTR_TYPE.
3364         (struct lang_type): Add  itable_methods, itable_decl, itable_syms_decl.
3365         (emit_symbol_table): Add new arg, element_size.
3366         * decl.c (java_init_decl_processing): Initialize Class.itable.
3367         * class.c (GEN_TABLE): New macro.
3368         (gen_indirect_dispatch_tables): Use it.  Add itable.
3369         (make_class_data): Add new arg for emit_symbol_table().
3370         Emit itable.
3371         (add_miranda_methods): Make sure search_class has been parsed.
3372         (emit_symbol_table): Add new arg, element_size.
3373
3374 2004-09-06  Andrew Haley  <aph@redhat.com>
3375
3376         * verify.c (merge_types): Return Object for all merges of
3377         interfaces.
3378         * expr.c (add_type_assertion): Don't generate assertions when
3379         source type is array of Object.
3380
3381 2004-09-03  Andrew Haley  <aph@redhat.com>
3382
3383         * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
3384
3385         * lang.c (java_post_options): Force flag_verify_invocations if
3386         we're not using indirect dispatch.
3387
3388         * expr.c (pop_type_0): Move test for interfaces before call to
3389         can_widen_reference_to().
3390         (build_signature_for_libgcj): Remove generation of canonical array
3391         type.
3392         (add_type_assertion): Canonicalize both arrays.
3393         Don't assert that type X can be assigned to Object.
3394         Don't assert that type X an be assigned to type X.
3395         Don't assert that Object can be assigned to type X.
3396         (can_widen_reference_to): Warn whenever we generate an assertion.
3397         (process_jvm_instruction): Use throwable_type_node for the type of
3398         an exception class.
3399
3400 2004-09-01  Andrew Haley  <aph@redhat.com>
3401
3402         * decl.c (java_init_decl_processing): Change
3403         verify_identifier_node to "__verify".
3404         * expr.c (add_type_assertion): Use verify_identifier_node for name.
3405         * java-tree.h (verify_identifier_node): Change to "__verify".
3406
3407         * expr.c (build_signature_for_libgcj): New function.
3408         (add_type_assertion): Use it to construct signatures for
3409         source_type and target_type.
3410
3411 2004-08-27  Andrew Haley  <aph@redhat.com>
3412
3413         * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
3414         (verify_identifier_node): New.
3415         (TYPE_VERIFY_METHOD): New.
3416         (struct type_assertion): New type.
3417         * expr.c (type_assertion_eq): New function.
3418         (type_assertion_hash): New function.
3419         (add_type_assertion): New function.
3420         (can_widen_reference_to): Call add_type_assertion().
3421         * decl.c (java_init_decl_processing): Add verify_identifier_node.
3422         * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
3423         (finish_class): Output TYPE_VERIFY_METHOD (type).
3424
3425         * decl.c (end_java_method): Nullify unused fields.
3426
3427 2004-08-17  Andrew Haley  <aph@redhat.com>
3428
3429         * verify.c (defer_merging): Quieten.
3430         * jcf-parse.c (load_class): Only try to open a class file if it's
3431         java.lang.Object or if it's part of the current compilation.
3432         Check that the class we just tried to load is the class we just
3433         loaded.  Quieten.
3434         (java_parse_file): Set flag_verify_invocations off if we're
3435         compiling from .class.
3436         (parse_zip_file_entries): Abort if we try to read a dummy class.
3437         * expr.c (can_widen_reference_to): Quieten.
3438         (build_invokevirtual): Abort if we try to invokevirtual an
3439         interface.
3440         (expand_invoke): Don't build a non-interface call to an interface.
3441         (build_instanceof): Don't do premature optimization if
3442         flag_verify_invocations is not set.
3443         * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
3444         from superclass.
3445         (build_static_field_ref): Add correct type conversion for
3446         field_address.
3447         (add_miranda_methods): Disable generation of Miranda methods for
3448         dummy classes.
3449         (layout_class_method): Don't complain about non-static method
3450         overrides static method with dummy classes.
3451
3452 2004-08-13  Tom Tromey  <tromey@redhat.com>
3453
3454         * class.c (build_static_field_ref): Re-enable atable lookups for
3455         static fields.
3456
3457         * parse.y (strip_out_static_field_access_decl): Indentation fix.
3458
3459 2004-08-11  Tom Tromey  <tromey@redhat.com>
3460
3461         * gcj.texi (libgcj Runtime Properties): Document new properties.
3