OSDN Git Service

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