OSDN Git Service

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