OSDN Git Service

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