OSDN Git Service

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