OSDN Git Service

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