OSDN Git Service

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