OSDN Git Service

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