OSDN Git Service

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