OSDN Git Service

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