OSDN Git Service

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