OSDN Git Service

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