OSDN Git Service

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