OSDN Git Service

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