OSDN Git Service

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