OSDN Git Service

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