OSDN Git Service

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