OSDN Git Service

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