OSDN Git Service

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