OSDN Git Service

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