OSDN Git Service

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