OSDN Git Service

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