OSDN Git Service

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