OSDN Git Service

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