OSDN Git Service

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