OSDN Git Service

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