OSDN Git Service

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