1 2007-01-23 Andrew Pinski <pinskia@gmail.com>
4 * jcf-io.c (opendir_in_zip): Close the file
5 and free zipf before returning after an error.
7 2007-01-16 Tom Tromey <tromey@redhat.com>
9 * java-tree.def: Added copyright header.
11 2007-01-15 Tom Tromey <tromey@redhat.com>
13 * lang.c (dump_compound_expr) <EXPR_WITH_FILE_LOCATION>: Removed
15 * java-gimplify.c (java_gimplify_expr) <EXPR_WITH_FILE_LOCATION>:
17 * java-tree.h (EXPR_WFL_EMIT_LINE_NOTE): Removed.
18 (EXPR_WFL_NODE): Likewise.
19 (EXPR_WFL_LINECOL): Likewise.
20 (EXPR_WFL_FILENAME): Likewise.
21 (EXPR_WFL_LINENO): Likewise.
22 (build_expr_wfl, expr_add_location): Don't declare.
23 (build_unknown_wfl): Removed.
24 (EXPR_WFL_FILENAME_NODE): Removed.
25 (EXPR_WFL_COLNO): Removed.
26 (EXPR_WFL_SET_LINECOL): Removed.
27 (DECL_FUNCTION_WFL): Removed.
28 (DECL_FIELD_FINAL_WFL): Removed.
29 (struct lang_decl_func) <wfl>: Removed field.
30 <called_constructor>: Likewise.
31 <inner_access>: Likewise.
32 (struct lang_decl_var) <wfl>: Removed field.
33 (DECL_CONSTRUCTOR_CALLS): Removed.
34 (DECL_FUNCTION_ACCESS_DECL): Likewise.
35 (DECL_FUNCTION_INNER_ACCESS): Likewise.
36 (DECL_SPECIFIC_COUNT): Likewise.
37 * java-tree.def (EXPR_WITH_FILE_LOCATION): Removed.
38 * expr.c (build_expr_wfl): Removed.
39 (expr_add_location): Likewise.
41 2007-01-12 Tom Tromey <tromey@redhat.com>
43 * jcf-dump.c (main): Updated call to find_class.
44 * lang.c (java_init): Removed dead code.
45 * jcf-parse.c (read_class): Don't use java_source field. Removed
47 (parse_zip_file_entries): Don't use java_source field.
48 (process_zip_dir): Likewise.
49 (jcf_parse): Removed dead code.
50 (java_parse_file): Likewise.
51 (read_class): Updated call to find_class.
52 * jcf-io.c (find_class): Don't use java_source field. Removed
53 'source_ok' argument, .java logic.
54 * jcf.h (JCF) <java_source>: Removed field.
55 (JCF_ZERO): Updated. (find_class): Updated.
56 * decl.c: Removed dead code.
57 * class.c: Removed dead code.
59 2007-01-11 Tom Tromey <tromey@redhat.com>
61 * typeck.c (convert): Don't use flag_emit_class_files.
62 * lang.c (java_post_options): Don't use flag_emit_class_files.
63 (java_handle_option): Don't use flag_extraneous_semicolon or
65 * jcf-parse.c (HANDLE_CONSTANTVALUE): Don't use
66 flag_emit_class_files.
67 (load_class): Likewise.
68 * java-tree.h (flag_emit_class_files): Don't declare.
69 (STATIC_CLASS_INIT_OPT_P): Don't use flag_emit_class_files.
70 (flag_extraneous_semicolon): Don't declare.
71 (flag_not_overriding): Likewise.
72 (flag_static_local_jdk1_1): Likewise.
73 (flag_redundant): Likewise.
74 * expr.c (build_newarray): Don't use flag_emit_class_files.
75 * class.c (DEFAULT_ENABLE_ASSERT): Don't use
76 flag_emit_class_files.
77 (build_class_ref): Likewise.
78 * builtins.c (check_for_builtin): Don't use
79 flag_emit_class_files.
81 2007-01-10 Tom Tromey <tromey@redhat.com>
83 * lang.c (java_can_use_bit_fields_p): Removed.
84 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
86 2007-01-09 Andrew Haley <aph@redhat.com>
88 * expr.c (build_java_arrayaccess): Rewrite to generate array
89 access in canonical form.
90 (expand_java_arraystore): Use build_fold_addr_expr() on address of
93 2007-01-03 Andrew Haley <aph@redhat.com>
96 * expr.c (expand_java_field_op): If we're initializing a field's
97 declaring interface we should not also initialize the class
98 context in which it was referenced.
100 2007-01-02 Tom Tromey <tromey@redhat.com>
102 * java-tree.h (compiling_from_source, current_encoding,
103 JTI_FINIT_IDENTIFIER_NODE, JTI_INSTINIT_IDENTIFIER_NODE,
104 JTI_LENGTH_IDENTIFIER_NODE, JTI_SUPER_IDENTIFIER_NODE,
105 JTI_CONTINUE_IDENTIFIER_NODE, JTI_ACCESS0_IDENTIFIER_NODE,
106 JTI_WFL_OPERATOR): Removed
107 (finit_identifier_node, instinit_identifier_node,
108 length_identifier_node, super_identifier_node,
109 continue_identifier_node, access0_identifier_node, wfl_operator):
111 (cyclic_inheritance_report,
112 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND,
113 DECL_FUNCTION_NAP, DECL_FUNCTION_SYNTHETIC_CTOR,
114 DECL_FIXED_CONSTRUCTOR_P): Removed.
115 (struct lang_decl_func) <smic, nap, synthetic_ctor, fixed_ctor>:
117 (TYPE_FINIT_STMT_LIST, TYPE_CLINIT_STMT_LIST, TYPE_II_STMT_LIST,
118 TYPE_IMPORT_LIST, TYPE_IMPORT_DEMAND_LIST): Removed.
119 (struct lang_type) <finit_stmt_list, clinit_stmt_list, ii_block,
120 import_list, import_demand_list>: Removed.
121 (java_layout_seen_class_methods, init_jcf_parse, init_src_parse,
122 cxx_keyword_p): Removed.
123 (DECL_FINIT_P, DECL_INSTINIT_P, ID_FINIT_P, ID_INSTINIT_P,
124 TYPE_UNUSED, TYPE_UNDERFLOW, TYPE_UNEXPECTED,
125 CLASS_ACCESS0_GENERATED_P, CLASS_HAS_FINIT_P,
126 IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P, IS_A_CLASSFILE_NAME,
127 IS_AN_IMPORT_ON_DEMAND_P, COMPOUND_ASSIGN_P, SWITCH_HAS_DEFAULT,
128 PRIMARY_P, MODIFY_EXPR_FROM_INITIALIZATION_P,
129 CLASS_METHOD_CHECKED_P, FOR_LOOP_P, ANONYMOUS_CLASS_P,
130 LOCAL_CLASS_P, ARG_FINAL_P, SUPPRESS_UNREACHABLE_ERROR,
131 RESOLVE_PACKAGE_NAME_P, RESOLVE_TYPE_NAME_P, IS_BREAK_STMT_P,
132 IS_CRAFTED_STRING_BUFFER_P, IS_INIT_CHECKED, CALL_USING_SUPER,
133 NESTED_FIELD_ACCESS_IDENTIFIER_P, TOPLEVEL_CLASS_DECL_P,
134 PURE_INNER_CLASS_TYPE_P, TOPLEVEL_CLASS_TYPE_P,
135 CALL_CONSTRUCTOR_P, CALL_EXPLICIT_CONSTRUCTOR_P,
136 CALL_THIS_CONSTRUCTOR_P, CALL_SUPER_CONSTRUCTOR_P,
137 FINALLY_EXPR_LABEL, FINALLY_EXPR_BLOCK, BLOCK_IS_IMPLICIT,
138 BLOCK_EMPTY_P, IS_UNCHECKED_EXCEPTION_P, java_error_count,
139 java_parse_abort_on_error, extract_field_decl): Removed.
141 * lang.c: (compiling_from_source, current_encoding): Removed.
142 (java_handle_option): Ignore -fencoding.
143 * parse.h: Don't include lex.h.
144 (java_error_count, int_fits_type_p, stabilize_reference, RULE,
145 RECOVERED, DRECOVERED, RECOVER, DRECOVER, YYERROR_NOW,
146 YYNOT_TWICE, CLASS_MODIFIERS, FIELD_MODIFIERS, METHOD_MODIFIERS,
147 INTERFACE_MODIFIERS, INTERFACE_INNER_MODIFIERS,
148 INTERFACE_METHOD_MODIFIERS, INTERFACE_FIELD_MODIFIERS,
149 MODIFIER_WFL, THIS_MODIFIER_ONLY, parse_error_context,
150 ABSTRACT_CHECK, JCONSTRUCTOR_CHECK, exit_java_complete_class,
151 CLASS_OR_INTERFACE, GET_REAL_TYPE, GET_TYPE_NAME,
152 OBSOLETE_MODIFIER_WARNING, OBSOLETE_MODIFIER_WARNING2,
153 BUILD_PTR_FROM_NAME, INCOMPLETE_TYPE_P,
154 JAVA_MAYBE_GENERATE_DEBUG_INFO, JBSC_TYPE_P, JSTRING_P,
155 JNULLP_TYPE_P, JDECL_P, TYPE_INTERFACE_P, TYPE_CLASS_P,
156 IDENTIFIER_INNER_CLASS_OUTER_FIELD_ACCESS,
157 MANGLE_OUTER_LOCAL_VARIABLE_NAME,
158 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_ID,
159 MANGLE_ALIAS_INITIALIZER_PARAMETER_NAME_STRING,
160 SKIP_THIS_AND_ARTIFICIAL_PARMS, MARK_FINAL_PARMS,
161 UNMARK_FINAL_PARMS, CRAFTED_PARAM_LIST_FIXUP,
162 AIPL_FUNCTION_CREATION, AIPL_FUNCTION_DECLARATION,
163 AIPL_FUNCTION_CTOR_INVOCATION, AIPL_FUNCTION_FINIT_INVOCATION,
164 ERROR_CANT_CONVERT_TO_BOOLEAN, ERROR_CANT_CONVERT_TO_NUMERIC,
165 ERROR_CAST_NEEDED_TO_INTEGRAL, ERROR_VARIABLE_NOT_INITIALIZED,
166 LOOP_EXPR_BODY_MAIN_BLOCK, LOOP_EXPR_BODY_UPDATE_BLOCK,
167 LOOP_EXPR_BODY_CONDITION_EXPR, LOOP_EXPR_BODY_LABELED_BODY,
168 LOOP_EXPR_BODY_BODY_EXPR, PUSH_LABELED_BLOCK, POP_LABELED_BLOCK,
169 PUSH_LOOP, POP_LOOP, PUSH_EXCEPTIONS, POP_EXCEPTIONS,
170 IN_TRY_BLOCK_P, EXCEPTIONS_P, ANONYMOUS_ARRAY_BASE_TYPE,
171 ANONYMOUS_ARRAY_DIMS_SIG, ANONYMOUS_ARRAY_INITIALIZER,
172 INVOKE_STATIC, INVOKE_NONVIRTUAL, INVOKE_SUPER, INVOKE_INTERFACE,
173 INVOKE_VIRTUAL, jdep_code, struct _jdep, JDEP_DECL, JDEP_DECL_WFL,
174 JDEP_KIND, JDEP_WFL, JDEP_MISC, JDEP_ENCLOSING, JDEP_CLASS,
175 JDEP_APPLY_PATCH, JDEP_GET_PATCH, JDEP_CHAIN, JDEP_TO_RESOLVE,
176 JDEP_RESOLVED_DECL, JDEP_RESOLVED, JDEP_RESOLVED_P, struct
177 jdeplist_s, jdeplists, CLASSD_FIRST, CLASSD_LAST, CLASSD_CHAIN,
178 JDEP_INSERT, SET_TYPE_FOR_RESOLUTION, WFL_STRIP_BRACKET,
179 STRING_STRIP_BRACKETS, PROMOTE_RECORD_IF_COMPLETE,
180 BLOCK_CHAIN_DECL, GET_CURRENT_BLOCK, EXPR_WFL_GET_LINECOL,
181 EXPR_WFL_QUALIFICATION, QUAL_WFL, QUAL_RESOLUTION, QUAL_DECL_TYPE,
182 GET_SKIP_TYPE, COMPLETE_CHECK_OP, COMPLETE_CHECK_OP_0,
183 COMPLETE_CHECK_OP_1, COMPLETE_CHECK_OP_2, BUILD_APPEND,
184 BUILD_STRING_BUFFER, BUILD_THROW, SET_WFL_OPERATOR,
185 PATCH_METHOD_RETURN_ERROR, CHECK_METHODS, CLEAR_DEPRECATED,
186 CHECK_DEPRECATED_NO_RESET, CHECK_DEPRECATED, REGISTER_IMPORT,
187 CURRENT_OSB, struct parser_ctxt, GET_CPC_LIST, CPC_INNER_P,
188 GET_CPC, GET_CPC_UN, GET_CPC_UN_MODE, GET_CPC_DECL_NODE,
189 GET_ENCLOSING_CPC, GET_NEXT_ENCLOSING_CPC,
190 GET_ENCLOSING_CPC_CONTEXT, INNER_ENCLOSING_SCOPE_CHECK, PUSH_CPC,
191 PUSH_ERROR, POP_CPC, DEBUG_CPC, CPC_INITIALIZER_LIST,
192 CPC_STATIC_INITIALIZER_LIST, CPC_INSTANCE_INITIALIZER_LIST,
193 CPC_INITIALIZER_STMT, CPC_STATIC_INITIALIZER_STMT,
194 CPC_INSTANCE_INITIALIZER_STMT, SET_CPC_INITIALIZER_STMT,
195 SET_CPC_STATIC_INITIALIZER_STMT,
196 SET_CPC_INSTANCE_INITIALIZER_STMT, JAVA_NOT_RADIX10_FLAG,
197 java_complete_class, java_check_circular_reference,
198 java_fix_constructors, java_layout_classes, java_reorder_fields,
199 java_method_add_stmt, java_get_line_col, reset_report,
200 java_init_lex, yyparse, java_parse, yyerror, java_expand_classes,
201 java_finish_classes, ctxp, ctxp_for_generation,
202 ctxp_for_generation_last): Removed.
203 * expr.c (force_evaluation_order): Don't mention NEW_CLASS_EXPR.
204 * mangle.c (utf8_cmp): New function.
205 (cxx_keywords): New global.
206 (cxx_keyword_p): New function.
207 * jvspec.c (JAVA_START_CHAR): Removed obsolete comment.
208 * java-tree.def (UNARY_PLUS_EXPR, NEW_ARRAY_EXPR,
209 NEW_ANONYMOUS_ARRAY_EXPR, NEW_CLASS_EXPR, THIS_EXPR,
210 CASE_EXPR, DEFAULT_EXPR, JAVA_CATCH_EXPR, SYNCHRONIZED_EXPR,
211 THROW_EXPR, CONDITIONAL_EXPR, INSTANCEOF_EXPR, NEW_ARRAY_INIT,
212 CLASS_LITERAL, JAVA_EXC_OBJ_EXPR): Removed.
213 * Make-lang.in (java.srcextra): Do nothing.
214 (parse.c, keyword.h, gt-java-parse.h): Removed targets.
215 (JAVA_OBJS): Don't mention deleted files.
216 (java.mostlyclean): Likewise.
217 (java.clean): Likewise.
218 (JAVA_LEX_C): Removed.
219 (buffer.o, check-init.o, parse.o): Remove unused targets.
221 * jcf-parse.c (read_class): Comment out unused code.
222 (java_layout_seen_class_methods): New function.
223 (parse_source_file_1, parse_source_file_2, parse_source_file_3):
225 (java_parse_file): Comment out unused code. Don't use 'ctxp'.
226 (init_jcf_parse): Removed.
227 * config-lang.in (gtfiles): Remove deleted files.
228 * decl.c (java_init_decl_processing): Don't initialize
229 finit_identifier_node, instinit_identifier_node,
230 length_identifier_node, super_identifier_node,
231 continue_identifier_node, access0_identifier_node. Don't call
233 * class.c (cyclic_inheritance_report): New global.
234 (add_method_1): Don't use
235 DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND.
236 (maybe_layout_super_class): Comment out code.
237 (safe_layout_class): New function.
238 * java-gimplify.c (java_gimplify_expr): Removed CASE_EXPR,
239 DEFAULT_EXPR, NEW_ARRAY_INIT, JAVA_CATCH_EXPR, JAVA_EXC_OBJ_EXPR,
240 UNARY_PLUS_EXPR, NEW_ARRAY_EXPR, NEW_ANONYMOUS_ARRAY_EXPR,
241 NEW_CLASS_EXPR, SYNCHRONIZED_EXPR, CONDITIONAL_EXPR,
242 INSTANCEOF_EXPR, CLASS_LITERAL, THIS_EXPR.
243 (java_gimplify_case_expr): Removed.
244 (java_gimplify_default_expr): Likewise.
245 (java_gimplify_new_array_init): Likewise.
247 * keyword.gperf, keyword.h: Removed.
248 * chartables.h: Removed.
249 * check-init.c: Removed.
250 * buffer.c, buffer.h: Removed.
251 * convert.h: Removed.
252 * gen-table.pl: Removed.
253 * lex.c, lex.h: Removed.
255 2007-01-02 Andrew Haley <aph@redhat.com>
257 * expr.c (expand_java_arraystore): Make sure we perform a bounds
258 check at runtime before we perform a type check.
260 2006-12-19 Andrew Haley <aph@redhat.com>
262 * decl.c: Bump minor BC ABI version.
264 2006-12-13 Gary Benson <gbenson@redhat.com>
266 * jcf-depend.c (jcf_dependency_add_file): Mark filename unused.
268 2006-12-12 Tom Tromey <tromey@redhat.com>
270 * lang-specs.h: Pass -M options to jc1.
271 * jcf-depend.c (jcf_dependency_add_file): Don't emit
274 2006-12-07 Mohan Embar <gnustuff@thisiscool.com>
276 * jcf-path.c (jcf_path_compute): Use platform PATH_SEPARATOR.
278 2006-12-06 Mohan Embar <gnustuff@thisiscool.com>
280 * lang-specs.h: Pass '%U'-based options as separate arguments.
282 2006-12-05 Tom Tromey <tromey@redhat.com>
285 * jcf-parse.c (HANDLE_SYNTHETIC_ATTRIBUTE): Mark fields and
287 * class.c (add_field): Handle ACC_SYNTHETIC.
288 (add_method_1): Likewise. Handle bridge and varargs.
289 (get_access_flags_from_decl): Handle synthetic, bridge, varargs,
291 (set_class_decl_access_flags): Handle synthetic and annotation.
292 * java-tree.h (METHOD_BRIDGE): New macro.
293 (METHOD_VARARGS): Likewise.
294 (TYPE_SYNTHETIC): Likewise.
295 (TYPE_ANNOTATION): Likewise.
296 (lang_type): New fields 'synthetic' and 'annotation'.
297 (lang_decl_func): New fields 'varargs' and 'bridge'.
299 2006-12-04 Andrew Haley <aph@redhat.com>
301 * jcf-parse.c (rewrite_reflection_indexes): Don't do anything if
304 2006-11-29 Gary Benson <gbenson@redhat.com>
306 * expr.c (rewrite_arglist_getcaller): Reorder.
308 2006-11-29 Andrew Haley <aph@redhat.com>
310 * expr.c (rewrite_arglist_getcaller): Remove DECL_INLINE.
311 * lang.c (java_decl_ok_for_sibcall): Check for DECL_INLINE.
313 2006-11-23 Andrew Haley <aph@redhat.com>
315 * expr.c (rewrite_arglist_getcaller): New.
316 (rewrite_arglist_getclass): Fix indentation.
317 (rules): Add gnu.classpath.VMStackWalker.getCallingClass() and
318 gnu.classpath.VMStackWalker.getCallingClassLoader().
319 * builtins.c (initialize_builtins): Remove duplicate def'n of
321 Add __builtin_return_address.
323 2006-11-22 Andrew Haley <aph@redhat.com>
325 * jcf-reader.c (get_attribute): Mark attr_type unused.
327 * builtins.c (compareAndSwapObject_builtin): Fix declaration.
329 2007-01-08 Richard Guenther <rguenther@suse.de>
331 * lex.c (do_java_lex): Use build_int_cst_wide_type.
332 * jcf-parse.c (get_constant): Likewise.
334 2006-11-12 Jan Hubicka <jh@suse.cz>
336 * resource.c (compile_resource_data): Update for new varpool names.
337 * java/class.c (build_utf8_ref): Likewise.
339 2006-11-12 David Daney <ddaney@avtrex.com>
342 * typeck.c (build_java_array_type): Increase buffer sizes.
344 2006-11-11 Richard Guenther <rguenther@suse.de>
346 * check-init.c (check_init): Remove handling of FIX_CEIL_EXPR,
347 FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
349 2006-11-06 Andrew Haley <aph@redhat.com>
351 * java-tree.h (CONSTANT_LazyFlag): New.
352 * constants.c (build_constants_constructor): Mask CONSTANT_LazyFlag.
353 * jcf-parse.c (handle_innerclass_attribute): Write attribute to
355 (handle_constant): Return 0 for dummy cpool entries.
356 Handle constants of kind Class.
357 Handle constants of kind NameAndType.
358 (handle_enclosingmethod_attribute): New.
359 (handle_signature_attribute): New.
360 (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New.
361 (HANDLE_SIGNATURE_ATTRIBUTE): New.
362 (handle_constant): Use unmangle_classname()rather than calling
363 identifier_subst() directly.
365 2006-11-02 Andrew Haley <aph@redhat.com>
367 * java-tree.h (FIELD_ENUM): New.
368 (lang_decl_var.field_enum): New.
369 (lang_type.enum_class): New.
371 * class.c (set_class_decl_access_flags): Handle enum types.
372 (add_field): Handle enum fields.
373 (get_access_flags_from_decl): Likewise.
375 * class.c (make_class_data): Put reflection_data into rodata.
377 2006-11-01 Andrew Haley <aph@redhat.com>
379 * jcf-parse.c (field_offsets, bit_obstack): New variables.
380 (jcf_parse): Write end marker to annotation_data.
381 (java_parse_file): Create field_offsets bitmap. Destroy it.
382 (annotation_grow, annotation_rewrite_byte)
383 (annotation_rewrite_short, annotation_rewrite_int)
384 (annotation_read_short, annotation_write_byte)
385 (annotation_write_short, annotation_write_int)
386 (handle_long_constant, handle_constant, handle_element_value)
387 (handle_annotation, handle_annotations)
388 (handle_annotation_attribute, rewrite_reflection_indexes)
389 (handle_member_annotations, handle_parameter_annotations)
390 (handle_default_annotation): New functions.
391 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE)
392 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE)
393 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
394 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE)
395 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): New definitions.
396 * java-tree.h (enum jv_attr_type, enum jv_attr_kind): New.
397 (TYPE_REFLECTION_DATA): New.
398 (TYPE_REFLECTION_DATASIZE): New.
399 * jcf.h (enum cpool_tag): Convert a bunch of #define constants to
401 * jcf-reader.c (get_attribute): Pass field/method index and
402 attribute type to get_attribute().
403 * constants.c (find_class_or_string_constant): Make nonstatic.
404 (cpool_for_class): Likewise.
405 (build_constants_constructor): Separate string and scalar types.
406 * class.c (make_class_data): Generate field_indexes permutation.
407 Pass it to rewrite_reflection_indexes().
408 (make_class_data): Generate constructor for reflection_data field.
410 2006-10-20 Tom Tromey <tromey@redhat.com>
412 * gcj.texi (Top): Don't mention jv-scan.
413 (Invoking gcj): Likewise.
414 (Invoking gcjh): Likewise.
415 (Invoking gjnih): Likewise.
416 (Invoking gij): Likewise.
417 (Invoking gcj-dbtool): Likewise.
418 (Invoking jv-scan): Removed.
419 * parse-scan.y: Removed.
420 * jv-scan.c: Removed.
421 * config-lang.in (stagestuff): Don't mention jv-scan.
422 * Make-lang.in (java): Removed jv-scan.
423 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
424 (JVSCAN_OBJS): Removed.
425 (jv-scan$(exeext)): Likewise.
426 (JAVA_MANFILES): Removed jv-scan.1.
427 (java.uninstall): Don't mention jv-scan.
428 (java.mostlyclean): Likewise.
429 (java.maintainer-clean): Likewise.
430 (.INTERMEDIATE): Likewise.
431 (java/jv-scan.o): Removed.
432 (jv-scan.pod): Likewise.
433 (java.srcextra): Don't mention parse-scan.c.
434 (java.mostlyclean): Likewise.
435 (java/parse-scan.c): Removed.
436 (java/parse-scan.o-warn): Removed.
437 (java/parse-scan.o): Removed.
439 2006-10-20 Tom Tromey <tromey@redhat.com>
441 * lang.c (java_handle_option): Don't use
442 jcf_write_base_directory.
443 * jcf.h (jcf_write_base_directory): Removed.
444 * parse.y (java_expand_classes): Don't call write_classfile.
445 * config-lang.in (gtfiles): Removed jcf-write.c.
446 * Make-lang.in (JAVA_OBJS): Removed jcf-write.o.
447 (java/jcf-write.o): Removed.
448 * jcf-parse.c (parse_class_file): Don't call write_classfile.
449 * java-tree.h (write_classfile): Removed declaration.
450 * jcf-write.c: Removed.
452 2006-10-20 Tom Tromey <tromey@redhat.com>
454 * Make-lang.in (java): Removed gjnih, gcjh.
455 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
456 (GCJH_OBJS): Removed.
457 (GJNIH_OBJS): Likewise.
458 (gjnih$(exeext)): Likewise.
459 (gcjh$(exeext)): Likewise.
460 (JAVA_MANFILES): Removed gcjh.1, gjnih.1.
461 (java.install-common): Don't special case gcjh.
462 (java.uninstall): Don't mention gcjh, gjnih.
463 (java.mostlyclean): Likewise.
464 (java.maintainer-clean): Likewise.
465 (.INTERMEDIATE): Likewise.
467 (gjnih.pod): Likewise.
468 (GCJH_TARGET_INSTALL_NAME): Removed.
469 (java/gjavah-jni.o): Removed.
470 (java/gjavah.o): Likewise.
471 * config-lang.in (stagestuff): Removed gjnih, gcjh.
474 2006-10-17 Tom Tromey <tromey@redhat.com>
476 * jcf-dump.c (print_element_value): Expect a utf8 constant in the
479 2006-10-17 Tom Tromey <tromey@redhat.com>
481 * jvgenmain.c (main): Handle -findirect-dispatch.
482 * jvspec.c (jvgenmain_spec): Pass -findirect-dispatch to
485 2006-10-06 Andrew Haley <aph@redhat.com>
487 * builtins.c (compareAndSwapInt_builtin): Check that we really do
488 have a compare_and_swap builtin.
489 (compareAndSwapLong_builtin): Likewise.
490 (compareAndSwapObject_builtin): Likewise.
492 2006-10-04 Andrew Haley <aph@redhat.com>
494 * builtins.c (java_builtins): Add compareAndSwapInt,
495 compareAndSwapLong, compareAndSwapObject, putOrderedInt,
496 putOrderedLong, putOrderedObject, putIntVolatile, putLongVolatile,
497 putObjectVolatile, getObjectVolatile, getIntVolatile,
498 getLongVolatile, getLong.
499 (UNMARSHAL3): New macro.
500 (UNMARSHAL4): Likewise.
501 (UNMARSHAL5): Likewise.
502 (build_arglist_for_builtin): New function.
503 (build_addr_sum, build_check_this): New functions.
504 (putObject_builtin. compareAndSwapInt_builtin,
505 compareAndSwapLong_builtin, compareAndSwapObject_builtin,
506 putVolatile_builtin, getVolatile_builtin): New builtins.
508 2006-06-08 Andrew Haley <aph@redhat.com>
510 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
511 get_symbol_table_index().
512 (maybe_rewrite_invocation): Set SPECIAL if we need to access a
514 (build_known_method_ref): New arg: special. Pass it to
515 get_symbol_table_index.
516 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
518 (build_invokevirtual): New arg: special. Pass it to
519 get_symbol_table_index.
520 (expand_invoke): New variable: special.
521 Pass it to maybe_rewrite_invocation().
522 Pass it to build_known_method_ref().
523 * class.c (build_symbol_entry): Add new arg: special. Use it to
524 build the symbol table conbstructor.
525 (emit_symbol_table): Extract SPECIAL from the method list and pass
526 it to build_symbol_entry().
527 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
530 2006-09-08 Andrew Haley <aph@redhat.com>
532 * class.c (layout_class_method): Use build_java_signature, not
533 build_java_argument_signature. Use lookup_java_method, not
534 lookup_argument_method.
536 2006-08-16 Jakub Jelinek <jakub@redhat.com>
537 Bryce McKinlay <bryce@mckinlay.net.nz>
539 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
541 2006-07-18 Tom Tromey <tromey@redhat.com>
543 * lang.opt: Added missing -W options.
545 2006-07-12 Tom Tromey <tromey@redhat.com>
548 * lang-specs.h: Pass '%U'-based options as separate arguments.
550 * lang.c (java_handle_option): Handle OPT_faux_classpath.
551 * lang.opt (faux-classpath): New option.
553 2006-07-07 Tom Tromey <tromey@redhat.com>
555 * class.c (make_class_data): Set value for reflection_data field.
556 * decl.c (java_init_decl_processing): Add reflection_data field.
558 2006-07-07 Tom Tromey <tromey@redhat.com>
560 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): Declare locals
562 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
564 2006-07-07 Andrew Haley <aph@redhat.com>
566 * jcf-parse.c (set_source_filename): Don't check for
567 CLASS_FROM_CURRENTLY_COMPILED_P.
570 2006-07-07 Andrew Haley <aph@redhat.com>
572 * java-tree.h (java_read_sourcefilenames): Declare.
573 * lang.c (java_handle_option): Call java_read_sourcefilenames().
574 * lang.opt (fsource-filename): New opt.
575 * lang-specs.h: Add -fsource-filename.
576 * jcf-parse.c (num_files, filenames): New variables.
577 (reverse, cmpstringp, java_read_sourcefilenames,
578 find_sourcefile): New.
579 (set_source_filename): Call find_sourcefile to find the real name
582 2006-06-27 Tom Tromey <tromey@redhat.com>
584 * jcf-reader.c (get_attribute): Handle EnclosingMethod,
585 Signature, LocalVariableTypeTable, annotation attributes.
586 * jcf-dump.c (HANDLE_ENCLOSINGMETHOD_ATTRIBUTE): New macro.
587 (HANDLE_SIGNATURE_ATTRIBUTE): Likewise.
588 (HANDLE_START_FIELD): Mention 'descriptor', not 'signature'.
589 (HANDLE_METHOD): Likewise.
590 (HANDLE_LOCALVARIABLETYPETABLE_ATTRIBUTE): New macro.
591 (print_annotation): New function.
592 (print_element_value): Likewise.
594 (HANDLE_RUNTIMEVISIBLEANNOTATIONS_ATTRIBUTE): New macro.
595 (HANDLE_RUNTIMEINVISIBLEANNOTATIONS_ATTRIBUTE): Likewise.
596 (print_parameter_annotations): New function.
597 (HANDLE_RUNTIMEVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE): New macro.
598 (HANDLE_RUNTIMEINVISIBLEPARAMETERANNOTATIONS_ATTRIBUTE):
600 (HANDLE_ANNOTATIONDEFAULT_ATTRIBUTE): Likewise.
601 (print_annotations): New function.
603 2006-06-23 Tom Tromey <tromey@redhat.com>
605 * lang-specs.h: Default -fsource and -ftarget to 1.5. If
606 emitting class files, always use 1.5.
607 * gcj.texi (Input Options): Document -fsource.
608 (Code Generation): Document -ftarget.
610 2006-06-21 Tom Tromey <tromey@redhat.com>
613 * expr.c (expand_java_field_op): Initialize field's declaring
616 2006-06-20 Tom Tromey <tromey@redhat.com>
618 * expr.c (push_value): Always flush quick stack.
620 2006-06-19 Tom Tromey <tromey@redhat.com>
622 * expr.c (push_value): Also flush quick stack if value is a
625 2006-06-19 Tom Tromey <tromey@redhat.com>
627 * expr.c (push_value): Flush quick stack if value has side
630 2006-06-13 Tom Tromey <tromey@redhat.com>
632 * class.c (is_compiled_class): Explicitly check for current
635 2006-06-09 Tom Tromey <tromey@redhat.com>
637 * gjavah.c (decompile_method): Don't decompile a static field
640 2006-06-06 Tom Tromey <tromey@redhat.com>
642 * lang-specs.h <jc1>: Add .jar file to command line if
643 -fsaw-java-file. Also, remove -ffilelist-file in this case.
645 2006-06-05 Tom Tromey <tromey@redhat.com>
647 * jcf-dump.c (print_access_flags): Handle varargs, bridge,
648 synthetic, enum, annotation.
649 * jcf.h (ACC_BRIDGE): New macro.
650 (ACC_VARARGS): Likewise.
651 (ACC_SYNTHETIC): Likewise.
652 (ACC_ENUM): Likewise.
653 (ACC_ANNOTATION): Likewise.
655 2006-06-04 Tom Tromey <tromey@redhat.com>
657 * lang.opt (-fsaw-java-file, -fsource, -ftarget): New options.
658 * jvspec.c (jvgenmain_spec): Remove -fsaw-java-file, -fsource,
660 (lang_specific_driver): Removed dead code. Add -fsaw-java-file
661 when needed. Handle classpath-setting.
662 * Make-lang.in ($(GCJ)$(exeext)): Link in jcf-path.o.
663 * lang-specs.h: Rewrote.
665 2006-06-04 Tom Tromey <tromey@redhat.com>
667 * jcf-io.c (find_class): Set source_ok to 0.
668 * jcf-parse.c (jcf_parse): Disable gnu.gcj.gcj-compiled warning.
669 (parse_class_file): Don't call java_mark_class_local.
670 (java_parse_file): Skip .java files. Call java_mark_class_local
671 before lowering any code.
672 (parse_zip_file_entries): Don't call duplicate_class_warning
674 (process_zip_dir): ... call it here.
675 * class.c (add_field): Don't mark field external if it is being
676 compiled into this object.
677 (make_class_data): Handle situation where class_dtable_decl is
678 created before Class is compiled.
679 (is_compiled_class): Don't assume files in zip are compiled into
681 (layout_class_method): Don't mark method external if it is being
682 compiled into this object.
684 2006-06-04 Tom Tromey <tromey@redhat.com>
686 * jcf-path.c (jcf_path_compute): New function.
687 * jcf.h (jcf_path_compute): Declare.
689 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
691 * decl.c: Include langhooks.h.
692 (builtin_function): Remove.
693 (java_init_decl_processing): Replace calls to builtin_function
694 with add_builtin_function.
695 * Make-lang.in (jc1$(exeext)): Depend on and link with attribs.o.
696 (java/decl.o): Depend on langhooks.h.
697 * java-tree.h (builtin_function): Remove.
699 2006-10-10 Brooks Moses <bmoses@stanford.edu>
701 * Make-lang.in: Added "java.pdf", "gcj.pdf" target support.
703 2006-09-12 Tom Tromey <tromey@redhat.com>
705 * expr.c (push_value): Always flush quick stack.
707 2006-09-12 Tom Tromey <tromey@redhat.com>
710 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Always note
711 the push of the called method's return result.
713 2006-09-12 Tom Tromey <tromey@redhat.com>
715 * jvspec.c (lang_specific_driver): Read spec file even if
718 2006-09-12 Tom Tromey <tromey@redhat.com>
721 * expr.c (expand_java_field_op): Initialize field's declaring
722 interface if necessary.
724 2006-09-12 Tom Tromey <tromey@redhat.com>
727 * expr.c (expand_java_field_op): No error for assignments not in
728 class initializer or constructor.
730 2006-08-22 Andrew Haley <aph@redhat.com>
732 * decl.c (java_add_stmt): Give the statement list a type.
734 2006-08-16 Jakub Jelinek <jakub@redhat.com>
735 Bryce McKinlay <bryce@mckinlay.net.nz>
737 * jvspec.c (lang_specific_driver): Add -s-bc-abi when needed.
739 2006-08-10 Simon Martin <simartin@users.sourceforge.net>
742 * parse.y (build_incdec): Emit an error instead of an ICE if '++'
743 or '--' is used with a constant operand.
744 (java_complete_lhs): When processing a '++' or '--' expression,
745 don't call java_complete_tree but java_complete_lhs, so that a
746 static final variable operand is never replaced by its value. This
747 avoids an ICE later on.
748 (patch_unaryop): Fixed typo in comment.
750 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
752 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
754 2006-07-12 Bryce McKinlay <mckinlay@redhat.com>
756 * builtins.c (check_for_builtin): If a builtin could result in a
757 direct call being generated, don't use it if flag_indirect_dispatch
760 2006-07-12 Bryce McKinlay <mckinlay@redhat.com>
762 * gcj.texi (Invocation): Corrections for Invocation API example.
764 2006-07-04 Andrew Haley <aph@redhat.com>
766 * class.c (build_fieldref_cache_entry): Set DECL_IGNORED_P on the
769 2006-06-21 Andrew Haley <aph@redhat.com>
771 * java-tree.h (update_aliases): Remove
772 * expr.c (expand_iinc): Remove call to update_aliases().
773 (STORE_INTERNAL): Likewise.
774 * decl.c (update_aliases, initialize_local_variable)
775 (maybe_pushlevels): Set DECL_VALUE_EXPR for debugging decls.
777 2006-06-19 Andrew Haley <aph@redhat.com>
781 * expr.c (java_modify_addr_for_volatile): New function.
782 (expand_java_field_op): Handle volatile fields.
783 * java-gimplify.c (java_gimplify_component_ref): Call
784 java_modify_addr_for_volatile to give the field_ref the correct
786 (java_gimplify_modify_expr): Likewise.
787 * java-tree.h (java_modify_addr_for_volatile): New decl.
789 2006-06-17 Karl Berry <karl@gnu.org>
791 * gcj.texi (@dircategory): Use "Software development" instead
792 of "Programming", following the Free Software Directory.
794 2006-06-16 Andrew Haley <aph@redhat.com>
796 * class.c (make_class_data): When using flag_indirect_classes,
797 don't initialize the vtable of Class instances.
799 2006-06-09 Andrew Haley <aph@redhat.com>
803 * builtins.c (initialize_builtins): Add __sync_synchronize().
804 * class.c (add_field): Mark volatile fields.
805 * java-gimplify.c (java_gimplify_expr): Call new functions to
806 handle self-modifying exprs and COMPONENT_REFs.
807 (java_gimplify_component_ref): New.
808 (java_gimplify_modify_expr): Add handling for volatiles.
810 2006-06-08 Tom Tromey <tromey@redhat.com>
812 * gcj.texi (libgcj Runtime Properties): Document
813 gnu.gcj.user.realname.
815 2006-06-08 Andrew Haley <aph@redhat.com>
817 * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
818 get_symbol_table_index().
819 (maybe_rewrite_invocation): Set SPECIAL if we need to access a
821 (build_known_method_ref): New arg: special. Pass it to
822 get_symbol_table_index.
823 (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
825 (build_invokevirtual): New arg: special. Pass it to
826 get_symbol_table_index.
827 (expand_invoke): New variable: special.
828 Pass it to maybe_rewrite_invocation().
829 Pass it to build_known_method_ref().
830 * class.c (build_symbol_entry): Add new arg: special. Use it to
831 build the symbol table conbstructor.
832 (emit_symbol_table): Extract SPECIAL from the method list and pass
833 it to build_symbol_entry().
834 * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
837 2006-06-06 David Daney <ddaney@avtrex.com>
839 * gcj.texi (libgcj Runtime Properties): Document
840 gnu.gcj.runtime.NameFinder.show_raw and
841 gnu.gcj.runtime.NameFinder.remove_unknown.
843 2006-06-06 Tom Tromey <tromey@redhat.com>
845 * jcf-dump.c (print_access_flags): Handle varargs, bridge,
846 synthetic, enum, annotation.
847 * jcf.h (ACC_BRIDGE): New macro.
848 (ACC_VARARGS): Likewise.
849 (ACC_SYNTHETIC): Likewise.
850 (ACC_ENUM): Likewise.
851 (ACC_ANNOTATION): Likewise.
853 2006-06-06 Mike Stump <mrs@apple.com>
855 * Make-lang.in: Rename to htmldir to build_htmldir to avoid
856 installing during build.
858 2006-05-31 Thomas Fitzsimmons <fitzsim@redhat.com>
860 * gcj.texi (Extensions): Document the new gcj-dbtool-based
861 classname-to-library resolution mechanism.
862 Declare the old gnu.gcj.runtime.VMClassLoader.library_control
863 mechanism deprecated.
864 (libgcj Runtime Properties): Document
865 gnu.gcj.runtime.VMClassLoader.library_control's new default.
867 2006-05-29 Jakub Jelinek <jakub@redhat.com>
869 * javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64)
871 (jword): Define to uint64 on 64-bit arches.
872 * jcf-dump.c (print_constant): Cast JPOOL_UINT to long.
874 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
876 * class.c, except.c, expr.c, java-gimplify.c: Fix comment
879 2006-05-26 Tom Tromey <tromey@redhat.com>
881 * expr.c (java_push_constant_from_pool): Handle 'ldc class'.
882 * verify-glue.c (vfy_class_type): New function.
883 * verify-impl.c (check_constant): Allow 'ldc class'.
884 * verify.h (vfy_class_type): Declare.
886 2006-05-25 Andrew Haley <aph@redhat.com>
889 * decl.c (maybe_pushlevels): When variable ranges are non-nested
890 update all lifetimes, not just the first one.
892 2006-05-24 Tom Tromey <tromey@redhat.com>
894 * java-tree.h: Fixed flag documentation.
896 2006-05-24 Tom Tromey <tromey@redhat.com>
899 * jcf.h (ACC_INVISIBLE): Changed value.
901 2006-05-24 Andrew Haley <aph@redhat.com>
904 * decl.c (java_add_stmt): Use a STATEMENT_LIST rather than a
907 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
909 * lang.opt (femit-class-file): Remove VarExists.
911 2006-05-16 Tom Tromey <tromey@redhat.com>
913 * verify-impl.c (verify_instructions_0) <op_return>: Special case
916 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
919 * Make-lang.in ($(GCJ)$(exeext)): Replace gcc.o with
922 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
924 * Make-lang.in (java/decl.o): Add dependency on $(TARGET_H).
925 (java/expr.o): Replace target.h with $(TARGET_H).
926 (java/parse.o): Likewise.
928 2006-05-10 Andrew Haley <aph@redhat.com>
930 * class.c (emit_indirect_register_classes): Fix comment.
932 2006-05-04 Tom Tromey <tromey@redhat.com>
934 * java-tree.h (uses_jv_markobj_p): Declare.
935 * class.c (uses_jv_markobj_p): Removed.
936 * boehm.c (PROCEDURE_OBJECT_DESCRIPTOR): New define.
937 (get_boehm_type_descriptor): Use it.
938 (uses_jv_markobj_p): Moved from class.c. Return bool.
940 2006-05-04 Tom Tromey <tromey@redhat.com>
942 * java-tree.def (THIS_EXPR): Now a tcc_expression.
944 2006-05-04 Andrew Haley <aph@redhat.com>
946 * class.c (make_field_value): Always build_address_of fdecl if
947 there is an initializer.
949 2006-05-03 Andrew Haley <aph@redhat.com>
952 * expr.c (maybe_rewrite_invocation): New function.
953 (rewrite_arglist_getclass): Likewise.
955 (expand_invoke): Call maybe_rewrite_invocation.
956 * parse.y (patch_invoke): Likewise.
957 * java-tree.h: (maybe_rewrite_invocation): New function.
959 2006-04-21 Andrew Haley <aph@redhat.com>
961 * lang.c (java_init): Handle flag_indirect_classes.
962 * jvgenmain.c: Use "class$$" instead of "class$".
963 * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as
965 (mangle_class_field): Special case "class$$" as well as "class$".
966 * constants.c (build_ref_from_constant_pool): If
967 flag_indirect_classes, generate a ref into the heap.
968 * decl.c (constants_field_decl_node,
969 constants_data_field_decl_node): New.
970 * class.c (build_static_class_ref): New.
971 (build_classdollar_field): Factor out from build_class_ref().
972 (make_field_value): Handle static fields in heap.
973 (make_class_data): Make sure we get a static ref to class.
974 Make class initializer const if flag_indirect_classes.
975 (register_class): Build a class_ref for initialization if
976 flag_indirect_classes.
977 (emit_indirect_register_classes): New.
979 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
981 * expr.c, gjavah.c: Fix comment typos.
983 2006-04-03 Andrew Haley <aph@redhat.com>
986 * expr.c (build_field_ref): Don't check the field offset if
989 2006-03-30 Andrew Haley <aph@redhat.com>
992 * lang.c (java_attribute_table): New.
993 (LANG_HOOKS_ATTRIBUTE_TABLE): Define.
994 * expr.c (build_field_ref): Add a null pointer check for all
995 fields of offset > 4k. Don't do so for accesses via the this
996 pointer, which we know can never be null.
997 * class.c (build_java_method_type): Mark arg 1 of all nonstatic
1000 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
1002 * Make-lang.in: Rename docdir to gcc_docdir.
1004 2006-03-30 Tom Tromey <tromey@redhat.com>
1007 * parse.y (java_reorder_fields): Reset superclass field's size as
1010 2006-03-28 Tom Tromey <tromey@redhat.com>
1013 * parse.y (find_most_specific_methods_list): Added 'class'
1015 (lookup_method_invoke): Updated.
1017 2006-03-15 Tom Tromey <tromey@redhat.com>
1019 * jcf-write.c (generate_bytecode_insns): Use qualifying type for
1020 non-static method calls.
1022 2006-03-15 David Daney <ddaney@avtrex.com>
1024 * java-tree.h : Moved comment for TYPE_DOT_CLASS adjacent to its
1027 2006-03-15 David Daney <ddaney@avtrex.com>
1029 * lang.opt (-freduced-reflection): New option.
1030 * lang.c (java_post_options): Generate an error if
1031 -freduced-reflection used with -fjni or -findirect-dispatch.
1032 * java-tree.h (flag_reduced_reflection): Declare new variable.
1033 * boehm.c (get_boehm_type_descriptor): Indicate all pointers
1034 if bitmap overflows and flag_reduced_reflection set.
1035 * class.c (uses_jv_markobj_p): New function.
1036 (make_class_data): Moved generation of vtable to before
1037 reflection data, generate less reflection data if
1038 flag_reduced_reflection set.
1039 * gcj.texi: Document -freduced-reflection.
1041 2006-03-15 Tom Tromey <tromey@redhat.com>
1044 * class.c (get_interface_method_index): Don't put <clinit> into
1047 2006-03-15 Tom Tromey <tromey@redhat.com>
1049 * parse.y (analyze_clinit_body): Ignore empty statements.
1051 2006-03-08 David Daney <ddaney@avtrex.com>
1053 * gcj.texi: Document -static-libgcj option.
1055 2006-02-20 Andrew Haley <aph@redhat.com>
1057 * jcf-parse.c (parse_class_file): Set input_location from
1060 2006-02-15 Andrew Haley <aph@redhat.com>
1062 * class.c (GEN_TABLE): Don't pushdecl *_SYMS_DECL here.
1063 (make_class_data): pushdecl_top_level TYPE_OTABLE_SYMS_DECL,
1064 TYPE_ATABLE_SYMS_DECL, TYPE_ITABLE_SYMS_DECL here.
1066 2006-02-09 Andrew Haley <aph@redhat.com>
1069 * expr.c (expand_invoke): Allow methods in arrays to be resolved
1070 in their superclass.
1072 * typeck.c (build_java_array_type): Generate TYPE_STUB_DECLs for
1075 2006-02-08 Tom Tromey <tromey@redhat.com>
1078 * check-init.c (check_init): Handle VIEW_CONVERT_EXPR.
1079 * builtins.c (convert_real): New function.
1080 (java_builtins): Handle Float.intBitsToFloat,
1081 Float.floatToRawIntBits, Double.longBitsToDouble,
1082 Double.doubleToRawLongBits.
1084 2006-02-07 Andrew Haley <aph@redhat.com>
1086 * expr.c (expand_invoke): (BC mode.) If we find a method in a
1087 class other than the one in which we expected to find it, ignore
1091 * constants.c (build_constants_constructor): move initializer into
1092 first halfword on a 64-bit big-endian machine.
1094 2006-02-04 Tom Tromey <tromey@redhat.com>
1097 * builtins.c (max_builtin): Skip floating point 'max'.
1098 (min_builtin): Skip floating point 'min'.
1099 (check_for_builtin): Never return NULL_TREE.
1101 2006-02-04 Tom Tromey <tromey@redhat.com>
1104 * expr.c (push_type): Avoid side effect in gcc_assert.
1106 2006-02-04 Roger Sayle <roger@eyesopen.com>
1108 * decl.c (java_init_decl_processing): Create char_type_node as a
1109 regular INTEGER_TYPE node.
1110 (push_promoted_type): Preserve TYPE_STRING_FLAG on types.
1111 * typeck.c (convert): No longer check for CHAR_TYPEs but instead
1112 test for char_type_node and promoted_char_type_node as special
1113 instances of INTEGER_TYPE tree codes.
1114 (promote_type,build_java_signature): Likewise.
1115 * jcf-write.c (adjust_typed_op): Likewise.
1116 * mangle.c (mangle_type): Likewise.
1117 * parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE.
1118 * parse.h (JINTEGRAL_TYPE_P): Likewise.
1120 2006-02-04 Andreas Tobler <a.tobler@schweiz.ch>
1122 * expr.c (java_stack_swap): Revert gcc_assert patch.
1124 2006-02-03 Ben Elliston <bje@au.ibm.com>
1126 * java-gimplify.c: Use gcc_assert and gcc_unreachable throughout.
1127 * typeck.c: Likewise.
1128 * verify-impl.c: Likewise.
1129 * class.c: Likewise.
1131 * jcf-parse.c: Likewise.
1132 * constants.c: Likewise.
1133 * check-init.c: Likewise.
1134 * jcf-write.c: Likewise.
1135 * verify-glue.c: Likewise.
1136 * mangle.c: Likewise.
1139 * boehm.c: Likewise.
1141 2006-02-01 Jan Hubicka <jh@suse.cz>
1143 * decl.c (end_java_method): Kill hack disabling unit-at-a-time.
1144 * lang.c (java_init_options): Set no_unit_at_a_time_default.
1146 2006-01-30 Andrew Haley <aph@redhat.com>
1149 * parse.y: (source_start_java_method): Mark DECL_ARTIFICIAL("this").
1151 2006-01-21 Joseph S. Myers <joseph@codesourcery.com>
1153 * jv-scan.c (version), jcf-dump.c (version), gjavah.c (version):
1154 Update copyright notice dates.
1156 2006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
1158 * jvspec.c (lang_specific_spec_functions): Remove.
1160 2006-01-06 Tom Tromey <tromey@redhat.com>
1162 * gcj.texi (Arrays): Added more documentation for
1164 (Primitive types): Correct information about primitive classes.
1165 (Reference types): New node.
1168 2005-12-16 Alexandre Oliva <aoliva@redhat.com>
1170 * jcf-parse.c (set_source_filename): Set the decl source location
1171 even when returning early.
1173 2005-12-15 Tom Tromey <tromey@redhat.com>
1174 Andrew Haley <aph@redhat.com>
1177 * parse.y (resolve_expression_name): Don't generate accessor
1178 methods for constant fields.
1180 2005-12-13 Andrew Haley <aph@redhat.com>
1184 * class.c (maybe_layout_super_class): Update current_class before
1185 calling do_resolve_class.
1187 2005-12-12 H.J. Lu <hongjiu.lu@intel.com>
1190 * jcf-write.c (write_classfile): Use PID in temporary class
1191 file. Save/restore errno when reporting error.
1193 2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
1196 * mangle.c (mangle_method_decl): Mangle Java methods by prepending 'J'
1197 to bare_function_type and including the return type
1198 * builtins.c (initialize_builtins) : Change builtin mangled name
1199 constants to conform to new mangling scheme
1201 2005-12-08 Andrew Haley <aph@redhat.com>
1204 * java-tree.h (enum java_tree_index): Add JTI_SOFT_NOSUCHFIELD_NODE.
1205 (soft_abstractmethod_node): New.
1206 * expr.c (build_field_ref): Add in-line check for missing field.
1207 * decl.c (java_init_decl_processing): Add soft_nosuchfield_node.
1209 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
1211 * Make-lang.in (java.all.build, java.install-normal): Remove.
1213 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
1215 * Make-lang.in: Remove all dependencies on s-gtype, except for
1218 2005-12-07 Richard Sandiford <richard@codesourcery.com>
1220 * class.c (build_utf8_ref, emit_register_classes): Use
1221 switch_to_section and get_section.
1223 2005-12-06 Tom Tromey <tromey@redhat.com>
1226 * parse.y (patch_new_array_init): Revert previous patch.
1227 (lookup_method_invoke): Use size-less array type when creating an
1228 anonymous constructor.
1230 2005-12-05 Tom Tromey <tromey@redhat.com>
1232 * parse.y (patch_new_array_init): Don't set length on array.
1234 2005-12-02 Richard Guenther <rguenther@suse.de>
1236 * java-gimplify.c (java_gimplify_labeled_block_expr): Use
1237 buildN instead of build.
1238 * class.c (finish_class): Likewise.
1239 * expr.c (java_create_object): Likewise.
1241 2005-11-28 Tom Tromey <tromey@redhat.com>
1244 * expr.c (build_jni_stub): Unwrap the return value.
1245 * java-tree.h (soft_unwrapjni_node): New define.
1246 (enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE.
1247 * decl.c (java_init_decl_processing): Initialize
1248 soft_unwrapjni_node.
1250 2005-11-24 Bryce McKinlay <mckinlay@redhat.com>
1252 * gcj.texi (gij options): Add -Xss documentation.
1254 2005-11-08 Wil Mahan <wmahan@gmail.com>
1257 * zextract.c (read_zip_archive): Fix out of memory error when
1258 reading jar files with zip-style comments.
1260 2005-11-07 Terry Laurenzo <tlaurenzo@gmail.com>
1262 * gjavah.c (HANDLE_CODE_ATTRIBUTE): Only define for ELF Object
1264 * gjavah.c (decompile_method): Add ATTRIBUTE_UNUSED
1266 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
1267 Wil Mahan <wmahan@gmail.com>
1270 * class.c (make_class): Create empty binfo here.
1271 (set_super_info): Only create binfo if we have superclasses.
1273 2005-10-03 Ranjit Mathew <rmathew@gcc.gnu.org>
1276 * parse.y (method_header): Make the result of the rule a NULL_TREE
1277 when a parsing error occurs.
1279 2005-09-29 Tom Tromey <tromey@redhat.com>
1282 * jcf-io.c (memoized_dirlist_hash): New function.
1283 (caching_stat): Use it.
1285 2005-09-21 Ranjit Mathew <rmathew@gcc.gnu.org>
1288 * class.c (inherits_from_p): Try to lay out super class
1289 if it is not already laid out.
1290 (maybe_layout_super_class): Handle the case where SUPER_CLASS
1293 2005-09-18 James A. Morrison <phython@gcc.gnu.org>
1295 * builtins.c (max_builtin, min_builtin, abs_builtin,
1296 java_build_function_call_expr): Use fold_buildN.
1297 * class.c (layout_class_method): Likewise.
1298 * expr.c (java_truthvalue_conversion, build_java_jsr,
1299 build_java_arrayaccess, expand_java_arrayload, expand_iinc,
1300 build_java_binop, build_field_ref, expand_compare,
1301 build_known_method_ref, build_invokevirtual,
1302 process_jvm_instruction): Likewise.
1303 * parse.y (patch_binop, patch_exit_expr): Likewise.
1304 * typeck.c (convert_ieee_real_to_integer): Likewise.
1305 (convert): Don't call fold after convert_ieee_real_to_integer.
1307 2005-09-14 Bryce McKinlay <mckinlay@redhat.com>
1310 * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
1311 the newly created type. Set import lists here, not in create_class.
1312 (jdep_resolve_class): Set current_class.
1313 (do_resolve_class): Use current_class's TYPE_PACKAGE to determine
1314 the current package context, not ctxp->package.
1315 (cicp_cache): Removed.
1316 (class_in_current_package): Simplify implementation using TYPE_PACKAGE.
1317 * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
1318 * java-tree.h (TYPE_PACKAGE): New macro.
1319 (struct lang_type): New member 'package'.
1321 2005-09-09 Andrew Haley <aph@redhat.com>
1324 * expr.c (pop_type_0): If the expected type is object or ptr
1325 (i.e. void*), return the type of the object we just popped from
1328 2005-09-06 Andrew Pinski <pinskia@physics.uc.edu>
1330 * java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
1331 BLOCK_EXPR_BODY before returning the new BIND_EXPR.
1333 2005-09-06 Kazu Hirata <kazu@codesourcery.com>
1335 * check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
1336 jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
1337 typos. Follow spelling conventions.
1339 2005-09-05 Ranjit Mathew <rmathew@hotmail.com>
1342 * typeck.c (lookup_do): Look up interfaces for the original class,
1344 * parse.y (java_check_regular_methods): Fix diagnostic message for
1345 more restrictive overriding of a method from an interface.
1347 2005-08-16 Tom Tromey <tromey@redhat.com>
1349 * class.c (make_class_data): Always emit JV_STATE_PRELOADING for
1350 class' initial state.
1352 2005-08-16 Ranjit Mathew <rmathew@hotmail.com>
1355 * lex.c (do_java_lex): Define MAX_TOKEN_LEN. Avoid overflowing
1356 `literal_token' for large numeric input tokens.
1358 2005-08-16 Ranjit Mathew <rmathew@hotmail.com>
1361 * parse.y (nested_field_access_p): Rename to nested_member_access_p
1362 and expand to handle method accesses across nested classes.
1363 (build_outer_method_access_method): Rename to
1364 build_nested_method_access_method. Minor adjustments to comments.
1365 (resolve_expression_name): Use the newly-renamed
1366 nested_member_access_p method.
1367 (resolve_qualified_expression_name): Likewise.
1368 (patch_method_invocation): Also consider static methods for access
1369 method generation. Minor adjustments to comments.
1370 (maybe_use_access_method): Use the more general
1371 nested_memeber_access_p to determine access across nested class
1372 boundaries. Allow THIS_ARG to be NULL (for static methods).
1374 2005-08-15 Tom Tromey <tromey@redhat.com>
1377 * expr.c (build_field_ref): Don't generate otable reference when
1378 DECL_FIELD_OFFSET is 0.
1379 * class.c (maybe_layout_super_class): Pass outer class to
1382 2005-08-15 Tom Tromey <tromey@redhat.com>
1384 * java-tree.h (LABEL_IN_SUBR): Removed.
1385 (LABEL_IN_SUBR): Likewise.
1386 (LABEL_IS_SUBR_START): Likewise.
1387 (LABEL_SUBR_START): Likewise.
1388 (LABEL_SUBR_CONTEXT): Likewise.
1389 (LABEL_CHANGED): Likewise.
1390 (LABEL_RETURN_LABEL): Likewise.
1391 (LABEL_RETURN_TYPE_STATE): Likewise.
1392 (LABEL_RETURN_LABELS): Likewise.
1393 (RETURN_MAP_ADJUSTED): Likewise.
1394 (LABEL_PENDING_CHAIN): Likewise.
1396 2005-08-15 Tom Tromey <tromey@redhat.com>
1398 * Make-lang.in (JAVA_OBJS): Removed verify.o
1399 (java/verify.o): Removed.
1400 * verify.c: Removed.
1401 * lang.c (flag_new_verifier): Removed.
1402 (java_post_options): Updated.
1403 * java-tree.h (flag_new_verifier): Removed.
1404 (verify_jvm_instructions): Removed.
1405 * expr.c (pop_type_0): Assume flag_new_verifier is true.
1406 (build_java_check_indexed_type): Likewise.
1407 (expand_java_arraystore): Likewise.
1408 (expand_java_arrayload): Likewise.
1409 (pop_arguments): Likewise.
1410 (expand_byte_code): Likewise.
1411 (process_jvm_instruction): Likewise.
1413 2005-08-10 Andrew Haley <aph@redhat.com>
1415 * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
1416 type mismatches to make legal GIMPLE.
1418 2005-08-10 Robin Green <greenrd@greenrd.org>
1421 * parse.y (maybe_use_access_method): Generalize check from
1422 java.lang.Object to any superclass of current_class
1424 2005-08-08 Nathan Sidwell <nathan@codesourcery.com>
1426 * class.c (build_class_ref): Wrap the primary class type in a
1428 * parse.y (java_complete_lhs) <COMPONENT_REF case>: Extract the
1429 primary class type from the NOP_EXPR in which it was placed.
1431 2005-07-28 Diego Novillo <dnovillo@redhat.com>
1433 * expr.c (expand_load_internal): Fix missing parens in
1436 2005-07-28 Andrew Haley <aph@redhat.com>
1438 * expr.c (expand_load_internal): Convert to destination type.
1440 2005-07-22 Manfred Hollstein <mh@suse.com>
1442 * verify-impl.c (check_class_constant): Fix uninitialised warnings.
1443 (check_constant): Likewise.
1444 (check_wide_constant): Likewise.
1446 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
1448 Make CONSTRUCTOR use VEC to store initializers.
1449 * check-init.c (check_init): Update to cope with VEC in
1451 * class.c (make_field_value, make_method_value, get_dispatch_table,
1452 make_class_data, emit_symbol_table, emit_catch_table,
1453 emit_assertion_table): Use build_constructor_from_list instead of
1455 * constants.c (build_constants_constructor): Likewise.
1456 * java-gimplify.c (java_gimplify_new_array_init): Update to cope with
1457 VEC in CONSTRUCTOR_ELTS.
1458 * java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
1459 PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
1461 * jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
1463 * parse.y (build_new_array_init): Use build_constructor_from_list
1464 instead of build_constructor.
1465 (patch_new_array_init): Update to cope with VEC in
1467 (array_constructor_check_entry): Likewise.
1469 2005-07-12 Tom Tromey <tromey@redhat.com>
1471 * jvspec.c (lang_specific_driver): Put filelist_filename first on
1474 2005-07-12 Tom Tromey <tromey@redhat.com>
1477 * parse-scan.y (interface_member_declaration): Added
1480 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
1482 * java-tree.h (LABEL_RETURN_LABELS): Use decl_non_common.
1483 (LABEL_PENDING_CHAIN): Ditto.
1485 (DECL_BIT_INDEX): Ditto.
1487 2005-07-07 Bryce McKinlay <mckinlay@redhat.com>
1490 * parse.y (inner_class_accessible): New function. Logic moved from
1491 check_inner_class_access.
1492 (check_inner_class_access): Use inner_class_accessible.
1493 (resolve_inner_class): Simplify arguments. Create circularity hash
1494 here. Keep looking for classes if we found one that was inaccessible.
1495 Return the inaccessible class only if there is no other match.
1496 (do_resolve_class): Update for new resolve_inner_class arguments.
1497 Don't create circularity_hash here.
1499 2005-07-07 Bryce McKinlay <mckinlay@redhat.com>
1502 * parse.y (add_exception_to_throws): New function.
1503 (purge_unchecked_exceptions): Removed.
1504 (get_constructor_super): Renamed from verify_constructor_super. Now
1505 returns the super constructor after verification.
1506 (java_complete_expand_method): Don't use purge_unchecked_exceptions
1507 or save/restore the exception list.
1508 (check_thrown_exceptions): Add uncaught exceptions in anonymous
1509 class initializers and constructors to the throws clause of the method.
1511 2005-07-05 Bryce McKinlay <mckinlay@redhat.com>
1514 * parse.y (interface_member_declaration): Allow empty statements in
1515 interface declarations.
1517 2005-07-05 Paolo Bonzini <bonzini@gnu.org>
1519 * Makefile.in (parse.o): Adjust dependencies.
1520 * parse.y: Include tree-dump.h.
1522 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
1524 * class.c, decl.c, expr.c: Use '+' flag instead of %J. Use 'q'
1527 2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
1529 * parse.y (issue_warning_error_from_context): Call
1530 pp_output_formatted_text to be able to get the buffer.
1532 2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
1534 * parse.y (issue_warning_error_from_context): Update for the
1535 renaming of pp_format_text to pp_format.
1537 2005-06-28 Paul Brook <paul@codesourcery.com>
1539 * decl.c (java_init_decl_processing): Call
1540 default_init_unwind_resume_libfunc.
1542 2005-06-27 Tom Tromey <tromey@redhat.com>
1544 PR java/21540, PR java/13788:
1545 * parse.y (java_complete_lhs) <CASE_EXPR>: Use
1546 fold_constant_for_init.
1547 (patch_binop): Added 'folding' argument. Updated all callers.
1548 (patch_unaryop) <NOP_EXPR>: New case.
1549 (fold_constant_for_init) <NOP_EXPR>: Likewise.
1550 (fold_constant_for_init) <COND_EXPR>: Fix sense of test.
1552 2005-06-25 Jan Hubicka <jh@suse.cz>
1554 * builtins.c (define_builtin): Accept new flags parameter.
1555 (initialize_builtins): Mark the builtins const and nothrow accordingly.
1557 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
1559 * all files: Update FSF address in copyright headers.
1561 2005-06-24 Tom Tromey <tromey@redhat.com>
1563 * verify-impl.c (verify_instructions_0): Correctly handle
1564 situation where PC falls off end.
1566 2005-06-23 Bryce McKinlay <mckinlay@redhat.com>
1569 * parse.y (find_most_specific_methods_list): Remove special case for
1572 2005-06-15 Tom Tromey <tromey@redhat.com>
1575 * class.c (make_method_value): Use soft_abstractmethod_node for
1577 * java-tree.h (soft_abstractmethod_node): New define.
1578 (JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
1579 * decl.c (java_init_decl_processing): Initialize
1580 soft_abstractmethod_node.
1582 2005-06-13 Geoffrey Keating <geoffk@apple.com>
1584 * Make-lang.in (rule for installing gcj.1): Depends on installdirs.
1586 2005-06-13 Per Bothner <per@bothner.com>
1588 * expr.c (int highest_label_pc_this_method,
1589 start_label_pc_this_method): New globals.
1590 (lookup_label): Add start_label_pc_this_method to pc for label, and
1591 update highest_label_pc_this_method. This prevents conflicts between
1592 labels from different methods.
1593 * java-tree.h: Declare new globals.
1594 * jcf-parse.c (parse_class_file): If needed bump
1595 start_label_pc_this_method and reset highest_label_pc_this_method.
1597 2005-06-13 Tom Tromey <tromey@redhat.com>
1600 * parse.y (nested_field_access_p): Handle case where outer field
1601 is inherited by enclosing class.
1603 2005-06-12 Per Bothner <per@bothner.com>
1605 * class.c (inherits_from_p): Do load_class if needed.
1607 2005-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1609 * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
1610 * java-tree.h (parse_error_context): Move...
1611 * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
1612 * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
1613 * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
1615 2005-06-08 Roger Sayle <roger@eyesopen.com>
1617 * typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
1619 2005-06-06 Jakub Jelinek <jakub@redhat.com>
1621 * jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
1622 msgid for argument name.
1623 * gjavah.c (error): Likewise.
1624 * java-tree.h (parse_error_context): Likewise.
1625 * parse.y (parse_error_context, parse_warning_context,
1626 issue_warning_error_from_context): Likewise.
1628 2005-06-01 Tom Tromey <tromey@redhat.com>
1631 * class.c (build_static_field_ref): Don't fold constant fields if
1632 current class is from a .class file and we're using indirect
1635 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1637 * java/verify-glue.c: Don't include errors.h and include toplev.h.
1638 * java/Make-lang.in: Updates dependencies.
1640 2005-05-26 Ranjit Mathew <rmathew@hotmail.com>
1643 * java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
1644 NESTED_FIELD_ACCESS_IDENTIFIER_P.
1645 (FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
1646 (FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
1647 * jcf-write.c (generate_classfile): Use
1648 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
1649 OUTER_FIELD_ACCESS_IDENTIFIER_P.
1650 * parse.y (build_outer_field_access): Rename to
1651 build_nested_field_access. Support static fields and outer-to-inner
1653 (outer_field_access_p): Rename to nested_field_access_p. Support
1654 static fields and generalise to outer-to-inner class and sibling
1655 inner class accesses.
1656 (outer_field_expanded_access_p): Rename to
1657 nested_field_expanded_access_p and support static fields.
1658 (outer_field_access_fix): Rename to nested_field_access_fix and
1659 support static fields.
1660 (build_outer_field_access_expr): Rename to
1661 build_nested_field_access_expr and support static fields.
1662 (build_outer_field_access_methods): Rename to
1663 build_nested_field_access_methods and support static fields. For
1664 static fields, generate accessors without class instance parameters.
1665 (build_outer_field_access_method): Rename to
1666 build_nested_field_access_method and support static fields.
1667 (build_outer_method_access_method): Use
1668 NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
1669 OUTER_FIELD_ACCESS_IDENTIFIER_P.
1670 (resolve_expression_name): Consider static field accesses across
1672 (resolve_qualified_expression_name): Likewise.
1673 (java_complete_lhs): Use nested_field_access_fix instead of
1674 outer_field_access_fix.
1675 (patch_unary_op): Rename outer_field_flag to nested_field_flag.
1676 Use nested_field_expanded_access_p instead of
1677 outer_field_expanded_access_p. Use nested_field_access_fix instead
1678 of outer_field_access_fix.
1679 (check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
1680 instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.
1682 2005-05-26 Bryce McKinlay <mckinlay@redhat.com>
1684 * decl.c (GCJ_BINARYCOMPAT_ADDITION,
1685 GCJ_BOOTSTRAP_LOADER_ADDITION): Removed.
1686 (FLAG_BINARYCOMPAT_ABI, FLAG_BOOTSTRAP_LOADER,
1687 MINOR_BINARYCOMPAT_ABI_VERSION): New.
1688 (GCJ_CURRENT_BC_ABI_VERSION): Use new method to calculate version ID.
1689 (parse_version): Calculate version ID using new method. Use bit-flags
1690 for flag_indirect_dispatch and flag_bootstrap_classes.
1692 2005-05-25 Richard Henderson <rth@redhat.com>
1695 * Make-lang.in (java/mangle.o): Depend on LANGHOOKS_DEF_H.
1696 * class.c (build_class_ref): Set DECL_CLASS_FIELD_P and
1697 DECL_CONTEXT; avoid pushdecl_top_level.
1698 (build_dtable_decl): Set DECL_VTABLE_P and DECL_CONTEXT.
1699 (layout_class): Don't SET_DECL_ASSEMBLER_NAME.
1700 (layout_class_method): Likewise.
1701 * decl.c (java_mark_cni_decl_local): New.
1702 (java_mark_class_local): Use it.
1703 * java-tree.h (DECL_LOCAL_CNI_METHOD_P): New.
1704 (DECL_CLASS_FIELD_P, DECL_VTABLE_P): New.
1705 (struct lang_decl_func): Add local_cni;
1706 (struct lang_decl_var): Add class_field, vtable.
1707 (java_mangle_decl): Declare.
1708 * lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
1709 * mangle.c: Remove dup obstack.h; include langhooks-def.h.
1710 (mangle_obstack_1): New.
1711 (java_mangle_decl): Remove obstack argument. Call mangle_class_field,
1712 mangle_vtable, and mangle_local_cni_method_decl. Fall back to
1713 lhd_set_decl_assembler_name for things that don't need mangling.
1714 (mangle_class_field): Rename from java_mangle_class_field, make
1715 static, don't call init_mangling or finish_mangling.
1716 (mangle_vtable): Similarly.
1717 (mangle_local_cni_method_decl): New.
1718 (init_mangling): Remove obstack argument. Use &mangle_obstack_1,
1719 gcc_assert, and MANGLE_RAW_STRING.
1720 (finish_mangling): Use gcc_assert, remove if 0 debugging code.
1722 2005-05-25 DJ Delorie <dj@redhat.com>
1724 * class.c (set_constant_value): Move warning control from if() to
1727 2005-05-24 Richard Henderson <rth@redhat.com>
1729 * builtins.c (define_builtin): Don't call make_decl_rtl.
1730 * constants.c (build_constant_data_ref): Likewise.
1731 * class.c (build_utf8_ref): Likewise.
1732 (build_fieldref_cache_entry, build_static_field_ref): Likewise.
1733 (get_dispatch_table, layout_class_method): Likewise.
1734 (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
1736 (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
1737 (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
1738 to determine if we need a non-zero address.
1739 * decl.c (builtin_function): Don't call make_decl_rtl.
1740 (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
1741 * expr.c (build_known_method_ref): Don't call make_decl_rtl.
1742 * resource.c (compile_resource_data): Likewise.
1743 * parse.y (resolve_field_access): Re-word comment to avoid
1746 2005-05-24 Richard Henderson <rth@redhat.com>
1748 * class.c (registered_class): Take it out of class_roots; turn into
1750 (register_class): Make static. Don't duplicate decl node. Use
1752 (emit_register_classes): Use VEC_iterate. Use output_constant
1753 instead of assemble_integer. Don't call mark_decl_referenced
1755 * java-tree.h (register_class): Remove decl.
1757 2005-05-19 Paolo Bonzini <bonzini@gnu.org>
1761 * parse.y (register_package, package_list): Remove.
1762 (package_declaration): Do not call register_package.
1763 (do_resolve_class): Do not use package_list.
1765 2005-05-15 Gerald Pfeifer <gerald@pfeifer.com>
1767 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Remove
1770 2005-05-15 Tom Tromey <tromey@redhat.com>
1773 * jcf-write.c (generate_bytecode_insns) <SAVE_EXPR>: Don't call
1776 2005-05-12 Aaron Luchko <aluchko@redhat.com>
1778 * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
1780 2005-05-11 Tom Tromey <tromey@redhat.com>
1782 * gcj.texi (Code Generation): Document -fbootstrap-classes.
1783 * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
1784 (parse_version): Use it.
1785 * lang.opt (-fbootstrap-classes): New option.
1787 2005-05-10 Paolo Bonzini <bonzini@gnu.org>
1790 * class.c (maybe_layout_super_class): Look for imports in this_class.
1791 * parse.h (ctxp_for_generation_last): New.
1792 (do_resolve_class): Add a parameter.
1793 * parse.y (ctxp_for_generation_last): New.
1794 (java_pop_parser_context): Add at end of list.
1795 (find_in_imports, find_in_imports_on_demand): Look in ctxp
1796 if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
1797 the given type are NULL.
1798 (do_resolve_class): Look into the imports of the new second parameter.
1799 Adjust recursive calls.
1800 (resolve_class, resolve_inner_class, find_as_inner_class): Adjust
1801 calls to do_resolve_class.
1802 (create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
1803 (java_complete_class): Do not do that here.
1805 2005-05-03 Thomas Fitzsimmons <fitzsim@redhat.com>
1808 * Make-lang.in (java): Add gjnih.
1809 (JAVA_TARGET_INDEPENDENT_BIN_TOOLS): Likewise.
1810 (GJNIH_OBJS): New variable.
1811 (gjnih$(exeext)): New target.
1812 (JAVA_MANFILES): Add gjnih.1.
1813 (java.uninstall): Add gjnih.1.
1814 (java.mostlyclean): Add gjnih.
1815 (java.maintainer-clean): Add gjnih.1.
1816 (java/gjavah-jni.o): New target.
1817 (.INTERMEDIATE): Add gjnih.pod.
1818 (gjnih.pod): New target.
1819 * config-lang.in (stagestuff): Add gjnih.
1820 * gcj.texi (Top): Add gjnih node.
1821 (Invoking gcjh): Add descriptions of -force, -old, -trace, -J and
1822 -bootclasspath options.
1823 (Invoking gjnih): New node.
1824 * gjavah.c Initialize flag_jni to 1 if JNI_DEFAULT is defined.
1825 (TOOLNAME): New macro.
1826 (error): Replace hard-coded gcjh with TOOLNAME.
1827 (process_file): Likewise.
1829 (version): Likewise.
1830 (help): Likewise. Add help output for -force, -old, -trace and -J
1832 (OPT_FORCE, OPT_OLD, OPT_TRACE): New macros.
1833 (options): Add force, old, trace and J fields.
1834 (main): Handle -force, -old, -trace and -J options.
1836 2005-05-03 Tom Tromey <tromey@redhat.com>
1839 * gjavah.c (main): Unlink output file on error.
1841 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
1843 * constants.c, jvgenmain.c, lang.opt, resource.c: Update
1846 2005-04-29 Tom Tromey <tromey@redhat.com>
1848 * expr.c (build_jni_stub): Updated for change to build_block.
1850 2005-04-29 Andrew Pinski <pinskia@gcc.gnu.org>
1852 * expr.c (force_evaluation_order): Declare 'saved' earlier.
1854 2005-04-28 Andrew Haley <aph@redhat.com>
1857 * java-tree.h (soft_resolvepoolentry_node): New.
1858 (alloc_constant_fieldref): Declare.
1859 * expr.c (expand_java_field_op): Don't call class_init for
1860 accesses to static fields with indirect dispatch.
1861 * builtins.c (initialize_builtins): Add "__builtin_expect".
1862 * decl.c (soft_resolvepoolentry_node): New variable.
1863 (java_init_decl_processing): Create a decl for
1864 "_Jv_ResolvePoolEntry".
1865 * class.c (build_fieldref_cache_entry): New function.
1866 (build_static_field_ref): Rewrite for indirect dispatch.
1867 * constants.c (find_name_and_type_constant_tree): New function.
1868 (alloc_constant_fieldref): Likewise.
1869 (build_constants_constructor): Handle CONSTANT_Fieldref and
1870 CONSTANT_NameAndType.
1873 * expr.c (force_evaluation_order): Convert outgoing args smaller
1876 2005-04-27 Bryce McKinlay <mckinlay@redhat.com>
1878 * gcj.texi (libgcj Runtime Properties): Remove obsolete
1879 gnu.gcj.runtime.NameFinder.* system properties. Update documentation
1880 for gnu.gcj.runtime.NameFinder.use_addr2line and gnu.gcj.progname.
1882 2005-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1884 * gjavah.c, jcf-dump.c, jv-scan.c, jvgenmain.c: Replace calls
1885 to `unlock_stream' with `unlock_std_streams'.
1887 2005-04-25 Jakub Jelinek <jakub@redhat.com>
1889 * Make-lang.in (java/decl.o, java/resource.o): Depend on $(EXPR_H)
1890 instead of just expr.h.
1892 2005-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1894 * gjavah.c (main): Unlock the stdio streams.
1895 * jcf-dump.c (main): Likewise.
1896 * jv-scan.c (main): Likewise.
1897 * jvgenmain.c (main): Likewise.
1899 2005-04-23 DJ Delorie <dj@redhat.com>
1901 * class.c, decl.c, expr.c, jcf-io.c, jcf-parse.c, jv-scan.c,
1902 parse.y: Adjust warning() callers.
1904 2005-04-21 Bryce McKinlay <mckinlay@redhat.com>
1906 * gcj.texi (Object fields): Change "Integer" to "Int" in example
1909 2005-04-20 Bryce McKinlay <mckinlay@redhat.com>
1911 * gcj.texi: Fix typos and bogus example.
1913 2005-04-19 Kazu Hirata <kazu@cs.umass.edu>
1915 * except.c: Fix a comment typo.
1917 2005-04-19 Julian Brown <julian@codesourcery.com>
1919 * decl.c (finish_method): Revert patch from 2005-04-13 for breaking
1920 indirect dispatch with PIC.
1922 2005-04-18 Andrew Haley <aph@redhat.com>
1924 * java-except.h (struct eh_range.handler): Remove unused field.
1925 (handle_nested_ranges): Remove function declaration.
1926 (sanity_check_exception_range): Add function declaration.
1927 * verify.c (verify_jvm_instructions): Remove call to
1928 handle_nested_ranges.
1929 * verify-glue.c (verify_jvm_instructions_new): Call
1930 sanity_check_exception_range.
1931 * except.c (link_handler, eh_range_freelist, link_handler,
1932 handle_nested_ranges): Remove.
1933 (add_handler): Rewrite.
1934 (sanity_check_exception_range): New function.
1935 (print_ranges): New function.
1937 2005-04-13 Julian Brown <julian@codesourcery.com>
1939 * decl.c (finish_method): Give methods once-only linkage.
1941 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
1943 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
1945 2005-04-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1947 * java-tree.h: Don't use PARAMS().
1949 2005-04-07 Per Bothner <per@bothner.com>
1951 * class.c (push_class): By default, suppress debug output.
1952 (finish_class): Enable debug output for classes we're emitting.
1954 2005-04-07 Andrew Haley <aph@redhat.com>
1956 * gcj.texi: Correct gcj-dbtool instructions.
1958 2005-04-04 Kazu Hirata <kazu@cs.umass.edu>
1960 * gcj.texi: Fix a typo.
1961 * lang.c: Fix a comment typo.
1963 2005-04-01 Thomas Fitzsimmons <fitzsim@redhat.com>
1965 * gcj.texi (Invoking gij): Add descriptions of new -X options.
1966 Mention recognized-and-ignored compatibility options.
1967 (Memory allocation): Add descriptions of JvMalloc, JvRealloc and
1969 (About CNI): Add Memory allocation section.
1971 2005-04-01 Tom Tromey <tromey@redhat.com>
1973 * decl.c (java_init_decl_processing): Fix types of
1974 _Jv_MonitorEnter, _Jv_MonitorExit, _Jv_AllocObject,
1975 _Jv_AllocObjectNoFinalizer, _Jv_Throw, _Jv_NewPrimArray,
1976 _Jv_JNI_PopSystemFrame, _Jv_divI, _Jv_remI, _Jv_divJ, _Jv_remJ.
1978 2005-03-31 Jan Hubicka <jh@suse.cz>
1980 * Make-lang.in (class.o, decl.o): Depend on cgraph.h.
1981 * class.c: Include cgraph.h
1982 (make_local_functoin_alias): Mark aslias as needed.
1983 * resource.c: Include cgraph.h
1984 (compile_resource_data): Go via cgraph interface.
1986 2005-03-30 Ian Lance Taylor <ian@airs.com>
1988 * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
1990 2005-03-30 Tom Tromey <tromey@redhat.com>
1992 * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
1993 inner_class_info_index==0 or outer_class_info_index==0.
1995 2005-03-29 Tom Tromey <tromey@redhat.com>
1997 * gcj.texi (libgcj Runtime Properties): Document
1998 gnu.gcj.runtime.endorsed.dirs.
2000 2005-03-24 Anthony Green <green@redhat.com>
2002 * gcj.texi (Invoking gcj-dbtool): Document new LIBDIR option to
2005 2005-03-23 Tom Tromey <tromey@redhat.com>
2007 * decl.c (GCJ_CURRENT_BC_ABI_VERSION): New define.
2008 (parse_version): Use it.
2010 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
2012 * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2014 2005-03-18 Andrew Haley <aph@redhat.com>
2017 * decl.c (update_aliases): Don't update variables that are about
2019 (maybe_poplevels): Add comment.
2021 2005-03-17 Bryce McKinlay <mckinlay@redhat.com>
2024 * jcf-parse.c (duplicate_class_warning): New function.
2025 (java_parse_file): Call duplicate_class_warning if
2026 CLASS_FROM_CURRENTLY_COMPILED_P is already set.
2027 (parse_zip_file_entries): Likewise. Also set
2028 CLASS_FROM_CURRENTLY_COMPILED_P.
2030 2005-03-16 Andrew Haley <aph@redhat.com>
2032 * expr.c (expand_java_arrayload): Don't generate a
2033 NullPointerException based on the type of the node.
2034 (build_java_array_length_access): Likewise.
2036 2005-03-15 Zack Weinberg <zack@codesourcery.com>
2038 * Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
2040 2005-03-11 Tom Tromey <tromey@redhat.com>
2042 * gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
2043 (libgcj Runtime Properties): Document the default .db.
2045 2005-03-10 Ranjit Mathew <rmathew@hotmail.com>
2048 * parse.y (checks_throws_clauses): Check exceptions list even when
2049 the base class does not come from a source file being compiled.
2050 (java_complete_lhs): Remove unused variable 'wfl'.
2052 2005-03-09 Ranjit Mathew <rmathew@hotmail.com>
2055 * decl.c (finish_method): Emit _Jv_InitClass for private static
2056 methods inside inner classes as well.
2058 2005-03-08 Julian Brown <julian@codesourcery.com>
2059 * Revert patch from 2005-03-08 for causing bootstrap failure on
2062 2005-03-08 Julian Brown <julian@codesourcery.com>
2064 * decl.c (finish_method): Give methods once-only linkage.
2066 2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
2068 * lang.c (flag_new_verifier): Enable by default, regardless of ABI.
2070 2005-03-07 Bryce McKinlay <mckinlay@redhat.com>
2072 * verify-glue.c (vfy_is_assignable_from): Perform static check using
2073 can_widen_reference_to if the C++ ABI is in use.
2074 (vfy_get_interface_count, vfy_get_interface): Remove unused functions.
2075 * verify-impl.c (debug_print, make_utf8_const, init_type, copy_type,
2076 type_isresolved, init_state, set_pc, state_get_pc,
2077 _Jv_BytecodeVerifier): Clean up unused and disabled functions.
2078 (verify_fail): Report the current PC from the verifier context.
2079 (free_state): Remove #if 0 block to enable this function.
2080 (free_verifier_context): Call free_state on state_list iterator
2081 values before freeing them.
2082 * expr.c (pop_type_0): Pop correct type for error message when stack
2083 contains a multi-word type.
2085 2005-03-07 Ranjit Mathew <rmathew@hotmail.com>
2087 * expr.c (build_java_array_length_access): Remove !flag_new_verifier
2088 for known NULL array length access.
2090 2005-03-07 Tom Tromey <tromey@redhat.com>
2092 * gcj.texi (Invoking gcj-dbtool): Document '-f'.
2094 2005-03-06 Kazu Hirata <kazu@cs.umass.edu>
2096 * jcf-dump.c, jcf-io.c, jcf-reader.c, lang.c, parse.h,
2097 typeck.c: Update copyright.
2099 2005-03-06 Ranjit Mathew <rmathew@hotmail.com>
2102 * xref.c, xref.h: Remove file.
2103 * Make-lang.in (java/xref.o): Remove.
2104 * java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
2105 * lang.c (flag_emit_xref): Remove definition.
2106 * parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
2107 * typeck.c (convert): Remove use of do_not_fold.
2108 * parse.y (do_not_fold): Remove definition.
2109 (parser grammar): Remove xref code.
2110 (maybe_create_class_interface_decl, create_class): Likewise.
2111 (register_fields, method_header, finish_method_declaration): Likewise.
2112 (declare_local_variables, source_end_java_method): Likewise.
2113 (java_complete_expand_classes): Do not set do_not_fold.
2114 (java_complete_expand_method): Remove xref code.
2115 (java_expand_classes, resolve_field_access, patch_invoke): Likewise.
2116 (java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
2117 (patch_binop, build_string_concatenation, patch_array_ref): Likewise.
2118 (patch_synchronized_statement, patch_throw_statement): Likewise.
2119 (maybe_build_class_init_for_field): Likewise.
2121 2005-03-05 Kazu Hirata <kazu@cs.umass.edu>
2123 * expr.c (build_expr_wfl, expr_add_location): Use TYPE_P
2124 instead of IS_NON_TYPE_CODE_CLASS.
2126 2005-03-04 Andrew Haley <aph@redhat.com>
2129 * class.c (set_method_index): Don't set method_index if it is
2131 (layout_class_method): Don't complain about "non-static method foo
2132 overrides static method" in the case of indirect dispatch.
2134 2005-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2136 * jcf-io.c (caching_stat): Use __extension__ to avoid pedantic
2138 * Make-lang.in: Don't elide warnings in jcf-io.c.
2140 2005-03-01 Per Bothner <per@bothner.com>
2143 * check-init.c (wfl): Remove static.
2144 (final_assign_error, check_init): Replace calls to parse_error_context
2146 (check_init): Save, set, and restore input_location for each exp.
2148 2005-03-01 Per Bothner <per@bothner.com>
2150 * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
2151 if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
2152 * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
2154 2005-03-01 Per Bothner <per@bothner.com>
2156 * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
2158 2005-02-23 Thomas Fitzsimmons <fitzsim@redhat.com>
2161 * gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
2164 2005-02-22 Tom Tromey <tromey@redhat.com>
2167 * verify-impl.c (EITHER): New define.
2168 (types_compatible): Handle it.
2169 (check_field_constant): Use it.
2171 2005-02-18 Tom Tromey <tromey@redhat.com>
2174 * verify-impl.c (types_equal): Fixed test.
2177 * verify-glue.c (vfy_class_has_field): New function.
2178 * verify.h (vfy_class_has_field): Declare.
2179 * verify-impl.c (check_field_constant): Added 'putfield'
2181 (verify_instructions_0): Updated.
2182 (types_equal): New function.
2184 2005-02-14 Tom Tromey <tromey@redhat.com>
2187 * jcf-write.c (generate_bytecode_insns) <CALL_EXPR>: Note the
2188 stack effect of multianewarray.
2190 2005-02-14 Andrew Haley <aph@redhat.com>
2193 * expr.c (expand_byte_code): Call promote_arguments().
2194 (promote_arguments): New function.
2195 * decl.c (check_local_unnamed_variable): Remove special case for
2197 (find_local_variable): Promote all boolean types to int
2198 when searching for local variable decls.
2200 2005-02-12 Kazu Hirata <kazu@cs.umass.edu>
2202 * builtins.c, java-except.h, jcf-parse.c, jv-scan.c, lex.c,
2203 parse-scan.y: Update copyright.
2205 2005-02-11 Per Bothner <per@bothner.com>
2208 * parse-scan.y (input_location): Remove variable.
2209 (main_input_filename): New - replaces input_filename, which isn't
2210 settable if USE_MAPPED_LOCATION.
2211 * lex.c (java_init_lex): Wrap some more places in #ifndef JC1-LITE,
2212 so we don't reference input_location or wfl_operator in that case.
2213 * jv-scan.c (expand_location): Remove - no longer used.
2214 (main): Set main_input_filename rather than input_filename.
2216 2005-02-09 Richard Henderson <rth@redhat.com>
2218 * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
2219 * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
2221 2005-02-08 Marcin Dalecki <martin@dalecki.de>
2223 * expr.c (add_type_assertion): Use the proper enumeration type,
2224 since this is what htab_find_slot() is expecting.
2226 2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
2228 * gcj.texi: Update copyright dates.
2230 2005-02-02 Tom Tromey <tromey@redhat.com>
2232 * gcj.texi (libgcj Runtime Properties): Default library_control
2235 2005-02-02 Ranjit Mathew <rmathew@hotmail.com>
2238 * parse-scan.y (formal_parameter): Use $2 (type) instead of $$
2239 (modifiers) when square brackets are present in a declaration for
2241 * jv-scan.c (main): Set input_filename and input_line.
2243 2005-02-01 Tom Tromey <tromey@redhat.com>
2246 * gjavah.c (get_field_name): Don't override name for JNI header.
2248 2005-02-01 Roger Sayle <roger@eyesopen.com>
2250 * jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
2251 of unsigned types using iushr and lushr JVM bytecodes.
2253 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
2256 * gjavah.c (jni_print_float): Do not emit floating-point
2257 initialiser for a static final field.
2258 (jni_print_double): Likewise.
2260 2005-02-01 Mark Mitchell <mark@codesourcery.com>
2263 2005-01-31 Mark Mitchell <mark@codesourcery.com>
2264 * gjavah.c (print_field_info): Mark static data members of
2265 floating-point type with "__extension__".
2267 2005-01-31 Mark Mitchell <mark@codesourcery.com>
2269 * gjavah.c (print_field_info): Mark static data members of
2270 floating-point type with "__extension__".
2272 2005-02-01 Ranjit Mathew <rmathew@hotmail.com>
2275 * parse.y (build_string_concatenation): Remove redundant if.
2276 (patch_conditional_expr): Attempt to patch_string() the condition
2277 of a ?: as well, in addition to its other operands.
2279 2005-01-25 Tom Tromey <tromey@redhat.com>
2281 * Make-lang.in (java/java-tree-inline.o): Removed.
2283 2005-01-25 Ranjit Mathew <rmathew@hotmail.com>
2286 * parse.y (patch_binop): Allow comparisons against NULL only
2287 if the other operand is of a reference type.
2289 2005-01-24 Tom Tromey <tromey@redhat.com>
2291 * java-tree.h (gcj_abi_version): Declare.
2292 * class.c (make_class_data): Push gcj_abi_version into "next"
2293 field. Renamed field.
2294 * decl.c (gcj_abi_version): New global.
2295 (parse_version): New function.
2296 (java_init_decl_processing): Call it. Renamed 'next' field.
2298 (GCJ_BINARYCOMPAT_ADDITION): New define.
2300 2005-01-24 Roger Sayle <roger@eyesopen.com>
2303 * jcf-write.c (generate_bytecode_insns): Conversions between
2304 integer types of the same precision shouldn't generate widening
2305 or narrowing conversion bytecodes.
2307 2005-01-22 Kazu Hirata <kazu@cs.umass.edu>
2309 * java-except.h, java-tree.h: Remove unused prototypes.
2311 2005-01-20 Andrew Pinski <pinskia@gcc.gnu.org>
2314 * jcf-write.c (perform_relocations): Don't call memcpy if source
2315 and destination are the same.
2317 2005-01-17 Tom Tromey <tromey@redhat.com>
2319 * verify-impl.c (get_short): Sign extend.
2320 (get_int): Likewise.
2322 2005-01-12 Ranjit Mathew <rmathew@hotmail.com>
2324 * expr.c (build_jni_stub): Replace mistaken use of TYPE_SIZE_UNIT
2327 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
2329 * verify.c: Revert to the version before the BC-ABI merge.
2331 2005-01-10 Ranjit Mathew <rmathew@hotmail.com>
2334 * check-init.c (check_init): Take care of references that do not
2335 have an explicit final variable declaration (e.g. array length
2336 access) for pre/post in/de-crement operators.
2338 2005-01-08 Mark Wielaard <mark@klomp.org>
2340 * parse.y (process_imports): Allocate (and free) original_name only
2341 when not already defined.
2342 * jcf-parse.c (read_class): Free results of find_class() and
2344 (java_parse_file): Keep pointer to head of file_list and free when
2345 done. Free result of lrealpath().
2347 2005-01-05 Tom Tromey <tromey@redhat.com>
2349 * gcj.texi (Standard Properties): java.ext.dirs is now used.
2351 2004-12-20 Andrew Haley <aph@redhat.com>
2353 * typeck.c: Use fold_convert for ints and booleans.
2355 2004-12-17 Andrew Haley <aph@redhat.com>
2358 * typeck.c (convert): Use a CONVERT_EXPR when converting to
2359 BOOLEAN_TYPE or CHAR_TYPE.
2360 (convert_to_boolean, convert_to_char) : Remove.
2361 * convert.h (convert_to_boolean, convert_to_char) : Remove.
2362 * expr.c (expand_load_internal): Do type conversion if type is not
2365 2004-12-13 Danny Smith <dannysmith@users.sourceforge.net>
2368 * class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
2371 2004-12-07 Andrew Haley <aph@redhat.com>
2374 * jcf-parse.c (load_class): Remove sanity test for missing inner
2377 2004-12-06 Tom Tromey <tromey@redhat.com>
2379 * Make-lang.in (JAVA_MANFILES): Added gcj-dbtool.
2380 (java.uninstall): Likewise.
2381 (java.maintainer-clean): Likewise.
2382 (.INTERMEDIATE): Likewise.
2383 (java.install-man): Likewise.
2384 (gcj-dbtool.pod): New target.
2385 * gcj.texi (Code Generation): Document -findirect-dispatch.
2386 (libgcj Runtime Properties): Document
2387 gnu.gcj.precompiled.db.path.
2388 (Top): Link to "Invoking gcj-dbtool".
2390 2004-12-06 Tom Tromey <tromey@redhat.com>
2393 * java-tree.h (extract_field_decl): Declare.
2394 * parse.y (extract_field_decl): Renamed from
2395 strip_out_static_field_access_decl. No longer static.
2396 * check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.
2398 2004-12-03 Tom Tromey <tromey@redhat.com>
2400 * lang.c (flag_new_verifier): Define.
2401 (java_post_options): Set flag_new_verifier if indirect dispatch
2403 * lang.opt (fnew-verifier): Removed.
2405 2004-12-03 Tom Tromey <tromey@redhat.com>
2408 * Make-lang.in (java.install-common): Only install transformed
2409 gcjh if gcj-cross exists.
2411 2004-12-03 Andrew Haley <aph@redhat.com>
2414 * except.c (link_handler): Patch 'outer' field of siblings of the
2415 range we're demoting.
2417 2004-12-03 Andrew Haley <aph@redhat.com>
2420 * class.c (layout_class_method): Don't fail to override a method
2421 simply because it has DECL_ARTIFICIAL set.
2423 2004-12-02 Tom Tromey <tromey@redhat.com>
2426 * parse.y (craft_constructor): Special case null_pointer_node.
2428 2004-12-02 Tom Tromey <tromey@redhat.com>
2431 * java-gimplify.c (java_gimplify_expr): Don't call
2432 SET_EXPR_LOCATION unless wrapped tree is an expression.
2434 2004-11-27 Per Bothner <per@bothner.com>
2436 * jcf-parse.c (set_source_filename): Improvement to Andrew's fix:
2437 Fix fencepost error in 'i', which got executed one too many times.
2438 Also, fold memcpy into explicit loop, as originally intended.
2439 Also, free temporary 'buf' which otherwise leaks.
2441 2004-11-27 Per Bothner <per@bothner.com>
2443 * expr.c (build_expr_wfl): Only declare last_file and last_filenode
2444 local static variables if not USE_MAPPED_LOCATION.
2446 2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
2448 * class.c, decl.c, expr.c: Fix comment typos.
2450 2004-11-26 Andrew Pinski <pinskia@physics.uc.edu>
2453 * decl.c (end_java_method): Call
2454 attach_init_test_initialization_flags on all the init_decls.
2455 * parse.y (attach_init_test_initialization_flags): Move to ...
2456 * expr.c (attach_init_test_initialization_flags): here and
2457 support BIND_EXPR also.
2458 * java-tree.h (attach_init_test_initialization_flags): Prototype.
2459 * jcf-parse.c (parse_class_file): Don't disable class init
2462 2004-11-25 Joseph S. Myers <joseph@codesourcery.com>
2464 * gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
2467 2004-11-24 Richard Henderson <rth@redhat.com>
2469 * verify-glue.c (vfy_init_name, vfy_clinit_name, vfy_object_type,
2470 vfy_string_type, vfy_throwable_type): Use ANSI declaration form.
2472 2004-11-24 Tom Tromey <tromey@redhat.com>
2474 * verify.c (defer_merging): Don't use C++-style comment.
2475 * verify.h (java_opcode): Added java_opcode_end.
2476 * class.c (build_class_ref): Remove C++ comment and old FIXME.
2478 * verify-impl.c (vfy_push_type): Removed bogus "return".
2479 (initialize_stack): Use vfy_alloc and vfy_free.
2480 (verify_instructions_0): Likewise.
2482 * Merged gcj-abi-2-dev-branch to trunk.
2484 2004-11-24 Andrew Haley <aph@redhat.com>
2486 * jcf-parse.c (parse_class_file): Set file_start_location.
2488 2004-11-10 Tom Tromey <tromey@redhat.com>
2490 * class.c (make_field_value): Don't call build_static_field_ref.
2491 (build_static_field_ref): Don't emit direct references when using
2494 * gcj.texi (Invoking gij): Document -verbose. Put -verbose and
2495 -verbose:class into man page synopsis.
2497 2004-11-09 Tom Tromey <tromey@redhat.com>
2499 * expr.c (build_java_arraystore_check): Still generate check if
2500 element type is itself an array.
2502 2004-11-08 Tom Tromey <tromey@redhat.com>
2504 * java-tree.h (soft_check_assignment_node): Removed.
2505 (enum java_tree_index): Removed JTI_SOFT_CHECK_ASSIGNMENT_NODE.
2506 * decl.c (java_init_decl_processing): Don't initialize
2507 soft_check_assignment_node.
2509 2004-11-05 Tom Tromey <tromey@redhat.com>
2511 * class.c (layout_class_methods): Don't add Miranda methods when
2512 using indirect dispatch.
2514 2004-11-05 Bryce McKinlay <mckinlay@redhat.com>
2516 * class.c (make_class_data): Call emit_assertion_table to set the
2517 'assertion_table' field.
2518 (build_signature_for_libgcj): Move here from expr.c.
2519 (add_assertion_table_entry): New function. Callback for assertion
2520 hashtable traversal.
2521 (emit_assertion_table): New. Take class argument, and generate
2522 assertion table DECL based on the TYPE_ASSERTIONS hashtable.
2523 * decl.c (init_decl_processing): Define assertion_entry_type record.
2524 Push 'assertion_table' class field instead of 'verify'.
2525 * expr.c (type_assertion_eq): Compare 'assertion_code' field.
2526 (type_assertion_hash): Include 'assertion_code' in hash.
2527 (add_type_assertion): Rewritten. Take class and assertion_code
2528 arguments. Add assertions to the TYPE_ASSERTIONS hashtable.
2529 (can_widen_reference_to): Use new add_type_assertion() arguments.
2530 * java-tree.h (java_tree_index): Add JTI_ASSERTION_ENTRY_TYPE,
2531 JTI_ASSERTION_TABLE_TYPE. Remove JTI_VERIFY_IDENTIFIER_NODE.
2532 (verify_identifier_node): Removed.
2533 (assertion_entry_type, assertion_table_type): New.
2534 (ASSERTION_TYPES_COMPATIBLE, ASSERTION_IS_INSTANTIABLE): New. Type
2535 assertion code definitions.
2536 (struct type_assertion): Add assertion_code. Rename 'source_type' and
2537 'target_type' to 'op1' and 'op2'.
2538 (add_type_assertion): Declare.
2539 (lang_printable_name_wls): Remove unused definition.
2540 * verify-glue.c: (vfy_is_assignable_from): New. Call add_type_assertion
2541 to emit runtime assertion.
2542 (vfy_note_stack_type): Clean up non-C90 declarations.
2543 (vfy_note_local_type): Likewise.
2544 * verify.h (vfy_is_assignable_from): Declare.
2545 * verify-impl.c (is_assignable_from_slow): Remove unused function.
2546 (ref_compatible): Rename arguments. Call vfy_is_assignable_from()
2547 instead of is_assignable_from_slow().
2548 (types_compatible): Reinstate ref_compatible() call.
2550 2004-11-04 Tom Tromey <tromey@redhat.com>
2552 * class.c (build_static_field_ref): Reverted previous patch.
2554 * class.c (build_static_field_ref): Don't emit direct references
2555 when using indirect dispatch.
2557 2004-11-03 Tom Tromey <tromey@redhat.com>
2559 * expr.c (expand_java_arrayload): Set lhs_type_node.
2560 (expand_java_arraystore): Set rhs_type_node.
2562 2004-11-02 Tom Tromey <tromey@redhat.com>
2564 * jcf-parse.c (compute_class_name): Use filename length from zip
2565 directory, not strlen.
2567 * expr.c (expand_invoke): Mark new interface methods as abstract.
2569 2004-11-01 Tom Tromey <tromey@redhat.com>
2571 * verify-impl.c (push_jump): Removed check for uninitialized
2573 (push_exception_jump): Likewise.
2574 (handle_ret_insn): Likewise.
2575 (handle_jsr_insn): Likewise.
2576 (state_check_no_uninitialized_objects): Removed.
2578 * decl.c (check_local_unnamed_variable): Recognize
2579 promoted-to-int parameters when using the new verifier.
2580 * expr.c (expand_java_arraystore): Explicitly request array type
2581 when using new verifier.
2582 (expand_java_arrayload): Likewise.
2583 (invoke_build_dtable): Don't pass object_type_node as
2584 expression argument to build_java_indirect_ref.
2585 (build_java_check_indexed_type): Do nothing.
2586 (build_java_arraystore_check): Handle case where array doesn't
2588 (build_java_array_length_access): Likewise.
2589 (expand_invoke): Handle case where interface overrides a method
2591 (pop_type_0): Always succeed for reference types.
2592 (process_jvm_instruction): Don't pop a value in a dead
2594 (pop_arguments): Convert arguments to correct types.
2596 2004-10-29 Andrew Haley <aph@redhat.com>
2598 * jcf-parse.c (give_name_to_class): Remove line that was
2601 2004-10-29 Andrew Haley <aph@redhat.com>
2603 * jcf-parse.c (set_source_filename): Add code to build new sfname.
2605 2004-10-20 Andrew Haley <aph@redhat.com>
2607 * decl.c (end_java_method): Don't expand if flag_syntax_only.
2609 2004-10-26 Tom Tromey <tromey@redhat.com>
2611 * verify.h (vfy_notify_verified): Removed.
2612 * verify-glue.c (vfy_notify_verified): Removed.
2614 2004-10-26 Tom Tromey <tromey@redhat.com>
2616 * verify-impl.c (debug_print_state): Declare `i' before code.
2617 (merge_types): Modify `t' when it is null_type.
2619 2004-10-26 Tom Tromey <tromey@redhat.com>
2621 * verify-impl.c (type_print): Renamed from print. Now static and
2623 (debug_print_state): Use type_print.
2625 2004-10-25 Tom Tromey <tromey@redhat.com>
2627 * expr.c (build_invokeinterface): Compute correct offset for
2628 index into interface methods.
2630 2004-10-20 Tom Tromey <tromey@redhat.com>
2632 * java-tree.h (verify_jvm_instructions_new): Declare.
2634 * jvspec.c (jvgenmain_spec): Remove -fnew-verifier from cc1
2637 * verify-impl.c (verify_instructions): Correctly handle wide
2639 * verify-glue.c (vfy_get_class_name): Use DECL_NAME.
2640 (vfy_get_component_type): Strip pointer types.
2641 (vfy_find_class): Use get_type_from_signature. Strip pointer
2643 Include java-except.h.
2645 2004-10-20 Bryce McKinlay <mckinlay@redhat.com>
2647 * verify-impl.c (type_array_elementpop_raw, vfy_pop_type_t,
2648 vfy_push_type_t, set_variable, add_new_state, merge_into,
2649 handle_jsr_insn, branch_prepass, check_class_constant,
2650 check_wide_constant, get_one_type, compute_static_types,
2651 verify_instructions_0): Clean up C99 declarations after statements.
2653 2004-10-20 Tom Tromey <tromey@redhat.com>
2655 * verify-impl.c (merge_refs): Compare reference against iterator,
2658 * verify-glue.c (vfy_tag): Mask off resolved flag.
2660 2004-10-19 Tom Tromey <tromey@redhat.com>
2662 * verify-impl.c (verify_instructions): Call vfy_note_local_type.
2663 (init_state_with_stack): Initialize `this_type' in state.
2664 (verify_method): Use debug_print.
2665 * verify-glue.c (vfy_is_primitive): Removed debugging print.
2666 (vfy_note_stack_depth): Reverted last patch.
2667 (vfy_note_stack_type): Note pointer to Object, not Object.
2668 (vfy_note_local_type): Likewise.
2670 * verify.h (vfy_note_instruction_seen): Declare.
2671 * verify-glue.c (verify_jvm_instructions_new): Set
2672 BCODE_EXCEPTION_TARGET on target instruction.
2673 (vfy_note_instruction_seen): New function.
2674 * verify-impl.c (FLAG_INSN_SEEN): New define.
2675 (verify_instructions_0): Set flag on instruction. Save state for
2677 (verify_instructions): Call vfy_note_instruction_seen.
2679 * verify-glue.c (vfy_note_stack_depth): Fix off-by-one error.
2680 (verify_jvm_instructions_new): Call method_init_exceptions,
2681 add_handler, and handle_nested_ranges.
2682 * verify-impl.c (verify_method): Return 1 on success.
2683 (verify_instructions_0): Save the state at PC=0.
2685 * verify-impl.c (init_type_from_class): Set is_resolved and
2686 ref_next on new ref_intersection.
2687 (init_type_from_string): Likewise.
2689 2004-10-15 Bryce McKinlay <mckinlay@redhat.com>
2691 * expr.c (expand_bytecode): Use verify_jvm_instructions_new
2692 if flag_new_verifier is set.
2693 * java-tree.h (flag_new_verifier): Declare.
2694 * lang.opt (fnew-verifier): New option.
2695 * verify-impl.c: Work around namespace pollution by undef'ing
2697 (struct verifier_context): Make 'bytecode' const.
2698 (verify_fail_pc): Pass -1 PC argument to vfy_fail.
2699 (types_compatible): For the BC-ABI, always consider reference types
2701 (check_class_constant): Use vfr->current_class.
2702 (check_constant): Likewise.
2703 (check_wide_constant): Likewise.
2704 (check_field_constant): Check for 'L' at start of type name.
2705 (get_one_type): Return pointer instead of type. Set type result in
2706 caller via passed type pointer.
2707 (compute_argument_types): Update to use new get_one_type arguments.
2708 (compute_return_type): Likewise.
2709 (make_verifier_context): New. Allocate and initialize 'vfr'.
2710 (free_verifier_context): New. Free 'vfr' and its contents.
2711 (verify_method): Remove ATTRIBUTE_UNUSED. Call make_verifier_context
2712 and free_verifier_context.
2714 2004-10-15 Tom Tromey <tromey@redhat.com>
2716 * verify-glue.c (vfy_note_local_type): Mark argument as unused.
2717 * verify.h (vfy_fail): Fixed formatting.
2719 * verify-impl.c (vfr): Fixed comment formatting.
2720 (collapse_type): New function.
2721 (verify_instructions): Notify compiler about type map.
2722 * verify.h (vfy_note_stack_depth): Updated.
2723 (vfy_note_stack_type): Likewise.
2724 (vfy_note_local_type): Likewise.
2725 (vfy_unsuitable_type, vfy_return_address_type, vfy_null_type):
2727 * verify-glue.c (vfy_note_stack_depth): Correctly size type
2728 state. Added `method' argument.
2729 (vfy_note_stack_type): Renamed from vfy_note_type. Added `method'
2731 (vfy_note_local_type): New function.
2732 (vfy_unsuitable_type): Likewise.
2733 (vfy_return_address_type): Likewise.
2734 (vfy_null_type): Likewise.
2736 * verify.h (VFY_IN_GCC): Removed.
2737 (VFY_WANT_TYPEMAP): Removed.
2738 * verify-impl.c (verify_instructions_0): Removed useless "\".
2739 (struct state) <next>: Uncomment.
2741 2004-10-13 Bryce McKinlay <mckinlay@redhat.com>
2743 * verify-impl.c: Formatting fixes. Reformat C++-style comments to
2746 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
2748 * Make-lang.in (verify.o): Re-enabled this target.
2749 * verify-glue.c (vfy_get_interface_count): Add ATTRIBUTE_UNUSED.
2750 (vfy_get_interface): Likewise.
2751 (verify_jvm_instructions_new): Renamed from verify_jvm_instructions.
2752 * verify.h (verify_jvm_instructions_new): Declare.
2753 * verify-impl.c (free_state): Temporarily comment out unused
2756 2004-10-06 Tom Tromey <tromey@redhat.com>
2758 * java-tree.h (JV_STATE_READ): New enum value.
2760 2004-10-06 Bryce McKinlay <mckinlay@redhat.com>
2762 * verify.h: New file.
2764 2004-10-05 Bryce McKinlay <mckinlay@redhat.com>
2766 * verify-impl.c, verify-glue.c, verify.h: New files.
2767 * Make-lang.in: Add rules for verify-impl.o and verify-glue.o.
2769 2004-09-24 Andrew Haley <aph@redhat.com>
2771 * decl.c (check_local_unnamed_variable): Always use the PARM_DECL
2772 for a slot if it's of pointer type.
2774 2004-09-14 Tom Tromey <tromey@redhat.com>
2776 * class.c (make_class_data): Correctly initialize "state" field.
2777 Initialize "engine" field.
2778 * decl.c (java_init_decl_processing): Add "engine" field.
2780 2004-09-10 Andrew Haley <aph@redhat.com>
2783 * expr.c (build_invokeinterface): Use fast method for interface
2785 * java-tree.h (enum java_tree_index): Add JTI_ITABLE_TYPE,
2786 JTI_ITABLE_PTR_TYPE.
2787 (struct lang_type): Add itable_methods, itable_decl, itable_syms_decl.
2788 (emit_symbol_table): Add new arg, element_size.
2789 * decl.c (java_init_decl_processing): Initialize Class.itable.
2790 * class.c (GEN_TABLE): New macro.
2791 (gen_indirect_dispatch_tables): Use it. Add itable.
2792 (make_class_data): Add new arg for emit_symbol_table().
2794 (add_miranda_methods): Make sure search_class has been parsed.
2795 (emit_symbol_table): Add new arg, element_size.
2797 2004-09-06 Andrew Haley <aph@redhat.com>
2799 * verify.c (merge_types): Return Object for all merges of
2801 * expr.c (add_type_assertion): Don't generate assertions when
2802 source type is array of Object.
2804 2004-09-03 Andrew Haley <aph@redhat.com>
2806 * class.c (finish_class): Nullify TYPE_VERIFY_METHOD.
2808 * lang.c (java_post_options): Force flag_verify_invocations if
2809 we're not using indirect dispatch.
2811 * expr.c (pop_type_0): Move test for interfaces before call to
2812 can_widen_reference_to().
2813 (build_signature_for_libgcj): Remove generation of canonical array
2815 (add_type_assertion): Canonicalize both arrays.
2816 Don't assert that type X can be assigned to Object.
2817 Don't assert that type X an be assigned to type X.
2818 Don't assert that Object can be assigned to type X.
2819 (can_widen_reference_to): Warn whenever we generate an assertion.
2820 (process_jvm_instruction): Use throwable_type_node for the type of
2823 2004-09-01 Andrew Haley <aph@redhat.com>
2825 * decl.c (java_init_decl_processing): Change
2826 verify_identifier_node to "__verify".
2827 * expr.c (add_type_assertion): Use verify_identifier_node for name.
2828 * java-tree.h (verify_identifier_node): Change to "__verify".
2830 * expr.c (build_signature_for_libgcj): New function.
2831 (add_type_assertion): Use it to construct signatures for
2832 source_type and target_type.
2834 2004-08-27 Andrew Haley <aph@redhat.com>
2836 * java-tree.h (enum java_tree_index): Add JTI_VERIFY_IDENTIFIER_NODE.
2837 (verify_identifier_node): New.
2838 (TYPE_VERIFY_METHOD): New.
2839 (struct type_assertion): New type.
2840 * expr.c (type_assertion_eq): New function.
2841 (type_assertion_hash): New function.
2842 (add_type_assertion): New function.
2843 (can_widen_reference_to): Call add_type_assertion().
2844 * decl.c (java_init_decl_processing): Add verify_identifier_node.
2845 * class.c (make_class_data): Initialize TYPE_VERIFY_METHOD (type).
2846 (finish_class): Output TYPE_VERIFY_METHOD (type).
2848 * decl.c (end_java_method): Nullify unused fields.
2850 2004-08-17 Andrew Haley <aph@redhat.com>
2852 * verify.c (defer_merging): Quieten.
2853 * jcf-parse.c (load_class): Only try to open a class file if it's
2854 java.lang.Object or if it's part of the current compilation.
2855 Check that the class we just tried to load is the class we just
2857 (java_parse_file): Set flag_verify_invocations off if we're
2858 compiling from .class.
2859 (parse_zip_file_entries): Abort if we try to read a dummy class.
2860 * expr.c (can_widen_reference_to): Quieten.
2861 (build_invokevirtual): Abort if we try to invokevirtual an
2863 (expand_invoke): Don't build a non-interface call to an interface.
2864 (build_instanceof): Don't do premature optimization if
2865 flag_verify_invocations is not set.
2866 * class.c (set_super_info): Disable code that inherits TYPE_DUMMY
2868 (build_static_field_ref): Add correct type conversion for
2870 (add_miranda_methods): Disable generation of Miranda methods for
2872 (layout_class_method): Don't complain about non-static method
2873 overrides static method with dummy classes.
2875 2004-08-13 Tom Tromey <tromey@redhat.com>
2877 * class.c (build_static_field_ref): Re-enable atable lookups for
2880 * parse.y (strip_out_static_field_access_decl): Indentation fix.
2882 2004-08-11 Tom Tromey <tromey@redhat.com>
2884 * gcj.texi (libgcj Runtime Properties): Document new properties.
2886 2004-08-06 Andrew Haley <aph@redhat.com>
2888 * jcf-parse.c (load_class): Check that we really have loaded the
2889 class we're looking for.
2891 2004-07-19 Andrew Haley <aph@redhat.com>
2893 * verify.c (verify_jvm_instructions): Comment change only.
2895 * typeck.c (build_java_array_type): Add size field to array name.
2897 * java-tree.h (LOCAL_SLOT_P): New.
2898 (update_aliases): Add PC argument.
2899 (pushdecl_function_level): New function.
2901 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
2902 MODIFY_EXPR, and SAVE_EXPR.
2903 (java_gimplify_modify_expr): New function.
2905 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
2906 (expand_iinc): Pass PC to update_aliases().
2907 (STORE_INTERNAL): Likewise.
2908 (process_jvm_instruction): Likewise.
2910 * decl.c (base_decl_map): New variable.
2911 (uniq): New variable.
2912 (update_aliases): Rewrite with more thorough checking.
2913 (debug_variable_p): New function.
2914 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
2915 (check_local_named_variable): Delete whole function.
2916 (initialize_local_variable): New function.
2917 (check_local_unnamed_variable): Add checks and comments.
2918 (find_local_variable): Rewrite.
2919 (java_replace_reference): New function.
2920 (function_binding_level): New variable.
2921 (pushdecl_function_level): New function.
2922 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
2923 (maybe_pushlevels): Call pushdecl() on each of the new decls.
2924 (start_java_method): Reset uniq. Create base_decl_map. Set
2925 function_binding_level.
2926 (end_java_method): Null unused fields to save memory.
2928 2004-06-29 Andrew Haley <aph@redhat.com>
2930 * except.c (expand_start_java_handler): Push a new binding level.
2931 Don't build a TRY_CATCH_EXPR now, we'll do it later. Call
2932 register_exception_range() to register where we'll do it.
2933 (expand_end_java_handler): Remove old bogus code. Replace with
2934 new logic that simply builds TRY_CATCH_EXPRs and inserts them at
2935 the top of the expression we're curently building.
2936 (maybe_end_try): Delete.
2937 * decl.c (binding_level.exception_range): New field.
2938 (clear_binding_level): Add field exception_range. Reformat.
2939 (poplevel): Call expand_end_java_handler().
2940 (poplevel): Call java_add_stmt only if functionbody is false.
2941 (maybe_poplevels): Don't call maybe_end_try() from here.
2942 (end_java_method): Clear no longer used trees in function decl.
2943 (register_exception_range): New function.
2944 * java-tree.h (register_exception_range, struct eh_range): Declare.
2946 2004-06-22 Andrew Haley <aph@redhat.com>
2948 * class.c (gen_indirect_dispatch_tables): Set the DECL_OWNER of
2950 * check-init.c (get_variable_decl): Teach check-init about
2951 FIELD_DECLs addressed via the otable.
2952 * jcf-parse.c (load_class): Check CLASS_LOADED_P, not
2955 2004-05-28 Andrew Haley <aph@redhat.com>
2957 * jcf-parse.c (load_class): Don't try to read a class that we've
2960 * expr.c (build_invokeinterface): Use the old-fashioned way of
2961 doing indirect dispatch: look up interfaces by name.
2962 * java-tree.h (enum java_tree_index): Add
2963 JTI_SOFT_LOOKUPINTERFACEMETHODBYNAME_NODE
2964 * decl.c (java_init_decl_processing): Add
2965 soft_lookupinterfacemethodbyname_node.
2967 * gjavah.c (print_method_info): Final methods have vtable entries,
2968 so gjavah needs to output them.
2969 * class.c (layout_class_method): Generate vtable entries for final
2971 * parse.y (invocation_mode): Use INVOKE_VIRTUAL for indirect
2972 dispatch, even if a method is final.
2974 2004-05-25 Andrew Haley <aph@redhat.com>
2976 * class.c (build_symbol_entry): Convert the names of constructors
2977 to init_identifier_node when generating an entry for the indirect
2980 * expr.c (build_known_method_ref): Generate indirect calls for
2981 all methods marked DECL_EXTERNAL or TREE_PUBLIC.
2983 2004-05-24 Andrew Haley <aph@redhat.com>
2985 * expr.c (build_known_method_ref): Make sure ARRAY_REF access to
2986 atable element is of the right type.
2988 * class.c (build_static_field_ref): Cast pointer to correct type
2991 2004-04-20 Bryce McKinlay <mckinlay@redhat.com>
2993 * Merged with HEAD as of 20040514. Diff against
2994 gcj-abi-2-merge-20040514.
2996 2004-04-16 Andrew Haley <aph@redhat.com>
2998 * verify.c (check_pending_block): Disable subroutine checks.
2999 (defer_merging): New function.
3000 (merge_types): If types are dummy, use defer_merging to combine them.
3001 (verify_jvm_instructions): If invocation is invokeinterface and
3002 target is dummy, assume target really is an interface.
3004 * parse.y (patch_invoke): Break out call to java_create_object.
3006 * lang.c (flag_verify_invocations): New.
3008 * jcf-parse.c (load_class): If we've already failed to load a
3009 class, don't try again.
3010 (load_class): If we can't find a .class file, don't fail, but emit
3012 (parse_class_file): Don't act on dummy methods.
3014 * java-tree.h (flag_verify_invocations): New.
3016 (lang_type.dummy_class): New field.
3017 (java_create_object): New function.
3018 (METHOD_DUMMY): New.
3020 * expr.c (build_field_ref): Widen field offset.
3021 (pop_type_0): If the type in stack_type_map is a TREE_LIST, check
3022 that each of its elements is compatible with the one we're
3024 (pop_type_0): Issue a warning to say that we need to generate a
3026 (java_create_object): New function.
3027 (build_field_ref): Only generate hard refs if we're not using
3029 (expand_java_field_op): If we're using !verify_invocations and we
3030 see a missing field, generate a decl for it.
3032 (expand_invoke): If a class doesn't have the method we seek and
3033 we're using !flag_verify_invocations, generate a decl for the
3036 (build_known_method_ref): Always use indirect dispatch via the
3037 atable for static methods.
3039 (expand_java_NEW): Break out object creation into new function,
3042 (can_widen_reference_to): Issue a warning to say that we need to
3043 generate a runtime check.
3045 * class.c (set_super_info): Inherit TYPE_DUMMY from sureclass.
3046 (make_method_value): Also use index for interfaces.
3047 (make_class_data): Skip dummy field for inherited data.
3048 Don't build method array for dummy methods.
3049 Set size_in_byte to -1 when using inirect dispatch
3050 Don't build a hard class ref if we don't have a hard ref to our
3051 superclass, or if we're using inirect dispatch.
3052 Null out dispatch tables.
3054 (layout_class_method): Don't complain about non-static method
3055 overrides static method is method is artificial.
3057 (build_static_field_ref): Disable atable references to static
3058 fields for the time being.
3060 (layout_class_methods): Check for CLASS_INTERFACE as
3061 well as CLASS_ABSTRACT.
3063 2004-11-24 Steven Bosscher <stevenb@suse.de>
3065 * class.c (make_class_data): Don't check flag_inline_functions.
3066 * lang.c (flag_really_inline): Remove unused flag.
3067 (java_handle_option): Don't set it here. Remove special handling
3068 of flag_inline_functions for Java.
3069 (java_init): Don't set flag_inline_trees here. Already done...
3070 (java_post_options): ...here. Don't clear flag_inline_functions.
3072 2004-11-24 Steven Bosscher <stevenb@suse.de>
3074 * java-gimplify.c (java_gimplify_labeled_block_expr): New function.
3075 (java_gimplify_exit_block_expr): New function.
3076 (java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
3078 * java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
3079 (EXIT_BLOCK_EXPR): Likewise.
3080 * java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
3081 (LABELED_BLOCK_BODY): Likewise.
3082 (EXIT_BLOCK_LABELED_BLOCK): Likewise.
3083 * jcf-write.c (generate_bytecode_insns): Don't handle the unused
3084 EXIT_BLOCK_RETURN operand. Use EXIT_BLOCK_LABELED_BLOCK instead of
3086 * lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
3087 (java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
3088 EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND. Don't handle the
3089 second operand of EXIT_BLOCK_EXPR.
3090 * parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
3092 (build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.
3094 2004-11-23 Ben Elliston <bje@au.ibm.com>
3096 * xref.h (xref_flag_value): Remove.
3097 (xref_set_data, xref_get_data): Likewise.
3098 (xref_set_current_fp): Likewise.
3099 (XREF_NONE): Likewise.
3100 (XREF_GET_DATA): Likewise.
3101 * xref.c (xref_flag_value): Remove.
3102 (xref_set_data, xref_get_data): Likewise.
3103 (xref_set_current_fp): Likewise.
3105 2004-11-23 Ben Elliston <bje@au.ibm.com>
3107 * gjavah.c (output_directory): Make static.
3108 (temp_directory): Likewise.
3110 2004-11-15 Tom Tromey <tromey@redhat.com>
3112 * decl.c (instn_ptr_type_node): Removed.
3113 (lineNumbers_ptr_type_node): Removed.
3114 (jint_type): Removed.
3115 (jint_ptr_type): Removed.
3117 2004-11-09 Andrew Pinski <pinskia@physics.uc.edu>
3120 * check-init.c (check_init): Ignore DECL_EXPR.
3121 * expr.c (always_initialize_class_p): Reenable.
3122 (build_class_init): Use a variable to store the decl. Also use
3123 boolean_false_node instead of integer_zero_node.
3124 * parse.y (attach_init_test_initialization_flags): Add a decl_expr
3127 2004-11-08 Tom Tromey <tromey@redhat.com>
3130 * gjavah.c (HANDLE_END_FIELD): Call print_field_info when
3131 generating a JNI header.
3132 (print_field_info): Handle JNI headers.
3133 (jni_print_float): Likewise.
3134 (jni_print_double): Likewise.
3136 2004-11-08 Andrew Pinski <pinskia@physics.uc.edu>
3138 * decl.c (end_java_method): Remove duplicated code.
3140 2004-11-06 Zack Weinberg <zack@codesourcery.com>
3141 Gerald Pfeifer <gerald@pfeifer.com>
3143 * lex.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
3146 2004-11-02 Bryce McKinlay <mckinlay@redhat.com>
3149 * class.c: Reinstate 2004-08-18 patch.
3150 (make_local_function_alias): Don't create an alias for extern (native)
3153 2004-10-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3156 * class.c (make_local_function_alias): Revert 2004-08-18 change.
3157 (make_method_value): Likewise.
3159 2004-10-21 Andrew Haley <aph@redhat.com>
3162 * jcf-parse.c (set_source_filename): Add code to build new sfname.
3164 2004-10-20 Andrew Haley <aph@redhat.com>
3166 * decl.c (end_java_method): Don't expand if flag_syntax_only.
3167 Remove duplicated code block.
3169 2004-10-18 Steven Bosscher <stevenb@suse.de>
3171 * Make-lang.in (java/parse.o-warn, java/parse-scan.o-warn):
3172 New rules to work around old Bison warnings.
3174 2004-10-17 Steven Bosscher <stevenb@suse.de>
3176 * class.c (ident_subst): Always alloca buffer.
3177 * java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
3178 opcode after including javaop.def.
3179 * jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
3180 conditional expression that exits, to avoid warnings.
3181 * verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
3182 a user of an extension.
3183 * win32-host.c: Move check down to have non-empty file when
3184 WIN32 is not defined.
3186 * Make-lang.in (java-warn): Add STRICT_WARN.
3187 (java/jcf-io.o-warn): Don't have Werror for this file.
3188 * jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.
3190 2004-10-16 Hans-Peter Nilsson <hp@bitrange.com>
3192 * expr.c (expr_add_location): Move declaration to before all
3194 * parse.y (java_expand_classes): Ditto.
3195 * lex.c (java_peek_unicode): Ditto.
3197 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
3199 * check-init.c: Use %<, %> and %q for quoting in diagnostics,
3200 if possible, else convert `foo' to 'foo'.
3201 * class.c: Likewise.
3204 * jcf-io.c: Likewise.
3205 * jcf-parse.c: Likewise.
3208 * parse.h: Likewise.
3210 2004-10-16 Ranjit Mathew <rmathew@hotmail.com>
3212 * parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
3213 rename parameter 'msg' to 'msgid' in function declaration.
3214 (issue_warning_error_from_context): Likewise.
3215 (yyerror): Rename parameter 'msg' to 'msgid'.
3216 (all over): Use new quoting style for diagnostics.
3218 2004-10-15 Kazu Hirata <kazu@cs.umass.edu>
3220 * boehm.c, builtins.c, java-except.h, jcf-io.c, jcf-path.c,
3221 jcf.h, lang-specs.h, lex.c, lex.h, resource.c, win32-host.c:
3224 2004-10-14 Matt Austern <austern@apple.com>
3226 * lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
3229 2004-10-13 Tom Tromey <tromey@redhat.com>
3232 * lang.opt (--extdirs): Document.
3233 * jvspec.c (lang_specific_driver): Recognize -encoding and
3236 2004-10-06 Ulrich Weigand <uweigand@de.ibm.com>
3238 * parse.y (issue_warning_error_from_context): Use va_list *
3239 instead of va_list parameter.
3240 (parse_error_context): Update call.
3241 (parse_warning_context): Likewise.
3243 2004-10-05 Zack Weinberg <zack@codesourcery.com>
3245 * parse.y, parse-scan.y: Add list of diagnostic messages to
3246 insulate translation template from version of yacc/bison used
3247 to compile the grammar.
3249 2004-10-05 Ranjit Mathew <rmathew@hotmail.com>
3251 Prepare for %q, %< and %> in diagnostic message strings.
3252 * java-tree.h (parse_error_context): remove ATTRIBUTE_PRINTF_2.
3253 Name second parameter 'msgid'.
3254 * parse.y: Additionally include pretty-print.h and diagnostic.h.
3255 (issue_warning_error_from_context): Use pretty-printer functions
3256 instead of vsprintf for constructing formatted messages. Rename
3257 parameter 'msg' to 'msgid'.
3258 (parse_error_context): Rename parameter 'msg' to 'msgid'.
3259 (parse_warning_context): Likewise.
3261 2004-10-05 Andrew Haley <aph@redhat.com>
3264 * jcf-parse.c (parse_zip_file_entries): If a class has a
3265 superclass and a TYPE_SIZE of zero, lay it out.
3267 2004-09-30 Andrew Haley <aph@redhat.com>
3270 * jcf-parse.c (compute_class_name): Rewrite.
3272 2004-10-01 Jan Hubicka <jh@suse.cz>
3274 * java.c (java_expand_body): Update call of tree_rest_of_compilation.
3276 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
3278 * lex.c: Fix a comment typo.
3280 2004-10-01 Kazu Hirata <kazu@cs.umass.edu>
3282 * java-tree.h: Fix a comment typo.
3284 2004-09-30 Per Bothner <per@bothner.com>
3286 Simplify lexer. Implement --enable-mapped-location support.
3287 * jcf-parse.c (parse_class_file): Use linemap_line_start.
3288 (parse_source_file_1): Pass filename as extra parameter, so we can call
3289 linemap_add and set input_location here, rather than in both callers.
3290 (read_class): Pass copied filename to parse_source_file_1.
3291 Don't initialize wfl_operator - only needed for source compilation.
3292 (read_class, jcf_parse): Call linemap_add with LC_LEAVE.
3293 * lex.h: Remove a bunch of debugging macros.
3294 * lex.h (struct_java_line, struct java_error): Remove types.
3295 (JAVA_COLUMN_DELTA): Remove - use java_lexer.next_colums instead.
3296 (struct java_lc_s): Remove prev_col field.
3297 (struct java_lexer): New fields next_unicode, next_columns, and
3298 avail_unicode. New position field, and maybe token_start field.
3299 Don't need hit_eof field - use next_unicode == -1 instead.
3300 (JAVA_INTEGERAL_RANGE_ERROR): Rename to JAVA_RANGE_ERROR.
3301 (JAVA_RANGE_ERROR, JAVA_FLOAT_ANGE_ERROR): Update accordingly.
3302 * parse.h: Various changes for USE_MAPPED_LOCATION.
3303 (EXPR_WFL_EMIT_LINE_NOTE): XXX
3304 (BUILD_EXPR_WFL, EXPR_WFL_ADD_COL): Remove no-longer-used macros.
3305 (struct parser_ctxt): New file_start_location field.
3306 Remove p_line, c_line fields since we no longer save lines.
3307 Remove elc, lineno, and current_jcf fields - no longer used.
3308 * parse.y: Updates for USE_MAPPED_LOCATION and new lexer.
3309 Don't use EXPR_WFL_ADD_COL since that isn't trivial with
3310 source_location and is probably not needed anymore anyway.
3311 Use new expr_add_Location function.
3312 (SET_EXPR_LOCATION_FROM_TOKEN): New convenience macro.
3313 (java_pop_parser_context): Minor cleanup.
3314 (java_parser_context_save_global, java_parser_context_restore_global,
3315 java_pop_parser_context): Save/restore input_location as a unit.
3316 (issue_warning_error_from_context): If USE_MAPPED_LOCATION take
3317 a source_location instead of a wfl context node.
3318 (check_class_interface_creation): input_filename is not addressable.
3319 (create_artificial_method): Calling java_parser_context_save_global
3320 and java_parser_context_restore_global is overkill. Instead,
3321 temporarily set input_location from class decl.
3322 (java_layout_seen_class_methods): Set input_location from method decl.
3323 (fix_constructors): Make more robust if no EXPR_WITH_FILE_LOCATION.
3324 (finish_loop_body): Likewise.
3325 * lex.c: Updates for USE_MAPPED_LOCATION. Use build_unknwon_wfl.
3326 (java_sprint_unicode): Take a character, not index in line.
3327 (java_sneak_uncode): Replaced by java_peek_unicode.
3328 (java_unget_unicode): No longer used.
3329 (java_allocate_new_line. java_store_unicode): Removed, since we
3330 no longer remember "lines".
3331 (java_new_lexer): Update for new data structures.
3332 (java_read_char): Move unget_value checking to java_read_unicode.
3333 (java_get_unicode, java_peek_unicode, java_next_unicode): New more
3334 efficient functions that are used directly when lexing.
3335 (java_read_unicode_collapsing_terminators): No longer needed.
3336 (java_parse_end_comment, java_parse_escape_sequence, do_java_lex):
3337 Re-organize to use java_peek_unicode to avoid java_unget_unicode.
3338 (java_parse_escape_sequence): Rewrite to be simpler / more efficient.
3339 (do_java_lex): Lots of movings around to avoid java_unget_unicode,
3340 combine switch branches, and test for common token kinds earlier.
3341 (java_lex_error): Rewrite.
3342 * jv-scan.c (expand_location): New function, copied from tree.c.
3343 (main): Set ctxp->filename instead of setting input_filename directly.
3345 2004-09-30 Per Bothner <per@bothner.com>
3347 More cleanup for --enable-mapped-location.
3348 * class.c (push_class): If USE_MAPPED_LOCATION don't set
3349 input_location here. Instead do it in give_name_to_class.
3350 (build_class_ref): Set DECL_ARTIFICIAL, for the sake of dwarf2out.
3351 * expr.c (expand_byte_code): Call linemap_line_start.
3352 * expr.c (build_expr_wfl): If USE_MAPPED_LOCATION, change final
3353 parameters to a source_location. Don't need EXPR_WFL_FILENAME_NODE.
3354 (expr_add_location): New function, if USE_MAPPED_LOCATION.
3355 * class.c (maybe_layout_super_class): Adjust build_expr_wfl call
3356 to USE_MAPPED_LOCATION case.
3358 * java-tree.h (JAVA_FILE_P, ZIP_FILE_P): Remove unused macros.
3359 * jcf-parse.c (java_parse_file): Don't set input_filename.
3360 Use IS_A_COMMAND_LINE_FILENAME_P to check for duplicate filenames.
3361 Create a list of TRANSLATION_UNIT_DECL.
3362 (current_file_list): Is now a TRANSLATION_UNIT_DECL chain. The
3363 reason is so we can set a DECL_SOURCE_LOCATION for each file.
3364 (java_parse_file): Don't set unused ZIP_FILE_P, JAVA_FILE_P..
3365 Create line-map LC_ENTER/LC_LEAVE entries for archive itself.
3366 (file_start_location): New static.
3367 (set_source_filename): Avoid extra access to input_filename macro.
3368 Concatenate new name with class's package prefix.
3369 (set_source_filename, give_name_to_class): Update.
3370 (give_name_to_class): Set class's "line 0" input_location here.
3371 (parse_class_file): Set input_location as a unit.
3373 * jcf-parse.c (load_class): Sanity test if missing inner class file.
3375 2004-09-29 Per Bothner <per@bothner.com>
3377 * java-tree.h: Redefine some macros and add some declaration
3378 to handle the USE_MAPPED_LOCATION case.
3379 * parse.h (EXPR_WFL_QUALIFICATION): Use operand 1, not 2.
3380 * java-tree.h (EXPR_WFL_FILENAME_NODE): Use operand 2, not 1.
3381 * java-tree.def (EXPR_WITH_FILE_LOCATION): Only need two operands in
3382 USE_MAPPED_LOCATION case, since EXPR_WFL_FILENAME_NODE is gone.
3384 * check-init.c (check_init): Handle USE_MAPPED_LOCATION case.
3385 * decl.c (finish_method, java_add_stmt): Likewise.
3386 * java-gimplify.c (java-gimplify.c): Likewise.
3387 * jcf-write.c (generate_bytecode_insns): Likewise.
3388 * lang.c (java_post_options): Likewise - call linemap_add.
3390 2004-09-29 Andrew Haley <aph@redhat.com>
3393 * parse.y (patch_binop): Don't mess with the TREE_SIDE_EFFECTS of the
3394 result of TRUNC_MOD_EXPR.
3395 (patch_unaryop): Likewise for CONVERT_EXPR, which may throw.
3396 * decl.c (java_init_decl_processing): Mark
3397 soft_lookupinterfacemethod_node and soft_instanceof_node pure.
3399 2004-09-28 Tom Tromey <tromey@redhat.com>
3402 * class.c (add_miranda_methods): Load superinterface if not
3405 2004-09-28 Andrew Haley <aph@redhat.com>
3408 * jcf-parse.c (load_class): Don't try to read a class that we've
3411 2004-09-28 Andrew Haley <aph@redhat.com>
3413 * jcf-parse.c (load_class): Back out previous broken patch.
3415 2004-09-28 Andrew Haley <aph@redhat.com>
3418 * jcf-parse.c (load_class): Don't try to read a class that we've
3420 Check that we really did read the right class.
3422 2004-09-25 Tom Tromey <tromey@redhat.com>
3425 * parse.y (create_artificial_method): Use add_method_1.
3427 2004-09-25 Kazu Hirata <kazu@cs.umass.edu>
3429 * expr.c, jcf-dump.c, parse-scan.y, parse.y: Fix
3431 * gcj.texi: Fix typos.
3433 2004-09-24 Tom Tromey <tromey@redhat.com>
3436 * parse.y (class_instance_creation_expression): Set `$$' to NULL
3437 in error parts of rule.
3438 (unary_expression): Don't call error_if_numeric_overflow when $1
3441 2004-09-24 Tom Tromey <tromey@redhat.com>
3444 * parse.y (resolve_qualified_expression_name): Set
3445 CAN_COMPLETE_NORMALLY on first call when chaining static calls.
3446 * expr.c (force_evaluation_order): Check for empty argument list
3447 after stripping COMPOUND_EXPR.
3449 2004-09-23 Andrew Haley <aph@redhat.com>
3452 * parse.y (java_complete_lhs): Call patch_string() on Operand 1 of
3455 2004-09-23 Tom Tromey <tromey@redhat.com>
3458 * java-gimplify.c (java_gimplify_expr) <SAVE_EXPR>: Ignore case
3459 where operand is null.
3461 2004-09-23 Tom Tromey <tromey@redhat.com>
3464 * parse.y (not_accessible_p): Allow access to protected members
3465 even when class is not static.
3467 2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
3469 * Make-lang.in: Revert the gcc-none.o change.
3471 2004-09-22 Nathan Sidwell <nathan@codesourcery.com>
3473 * parse.y (patch_anonymous_class): VEC_space returns true if there
3476 2004-09-21 Matt Austern <austern@apple.com>
3479 * gjavah.c (free_method_name_list): Fix function definition so
3480 it's a proper C prototype.
3482 2004-09-21 Tom Tromey <tromey@redhat.com>
3485 * gjavah.c (free_method_name_list): New method.
3488 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
3489 Zack Weinberg <zack@codesourcery.com>
3491 * java-tree.def: Use tree_code_class enumeration constants
3492 instead of code letters.
3493 * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
3494 new tree-class enumeration constants.
3496 2004-09-13 Tom Tromey <tromey@redhat.com>
3499 * class.c (layout_class_method): Put synthetic methods into the
3502 2004-09-11 Andrew Pinski <apinski@apple.com>
3504 * Make-lang.in (java/ggc-none.c): Change dependency
3505 for ggc.h into $(GGC_H).
3507 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
3509 * Make-lang.in (java/win32-host.o): Add dependency on
3511 * win32-host.c: Add includes for coretypes.h, jcf.h
3513 2004-09-11 Mohan Embar <gnustuff@thisiscool.com>
3515 * Make-lang.in (GCJH_OBJS): Change dependency from
3516 ggc-none.o to java/ggc-none.o
3517 (JCFDUMP_OBJS): Likewise.
3518 (java/ggc-none.o): New target.
3520 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
3522 * boehm.c (get_boehm_type_descriptor): Adjust build_int_cst calls.
3523 * class.c (build_utf8_ref, build_static_field_ref,
3524 make_field_value, make_method_value, get_dispatch_table,
3525 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
3526 * constants.c (get_tag_node, build_ref_from_constant_pool,
3527 build_constants_constructor): Likewise.
3528 * decl.c (java_init_decl_processing): Likewise.
3529 * expr.c (build_java_array_length_access, build_newarray,
3530 expand_java_multianewarray, expand_java_pushc, expand_iinc,
3531 build_java_binop, build_field_ref, expand_java_add_case,
3532 expand_java_call, build_known_method_ref, build_invokevirtual,
3533 build_invokeinterface, build_jni_stub): Likewise.
3534 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
3535 * jcf-parse.c (get_constant): Likewise.
3536 * lex.c (do_java_lex): Likewise.
3537 * parse.y (patch_binop, patch_unaryop, patch_cast,
3538 build_newarray_node, patch_newarray): Likewise.
3539 * resource.c (compile_resource_data): Likewise.
3540 * typeck.c (build_prim_array_type): Likewise.
3542 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
3544 * decl.c (java_init_decl_processing): Adjust
3545 initialize_sizetypes call.
3547 2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
3549 * jv-scan.c (fancy_abort): Add.
3551 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
3553 * expr.c (build_java_arrayaccess): Use convert to change
3556 2004-08-19 Bryce McKinlay <mckinlay@redhat.com>
3558 * class.c (make_local_function_alias): Allocate extra space for 'L'
3559 in name buffer. Reported by Thomas Neumann.
3561 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
3563 * parse.h (JAVA_RADIX10_FLAG): Rename to ...
3564 (JAVA_NOT_RADIX10_FLAG): ... here. Invert meaning.
3565 * lex.c (do_java_lex): Adjust.
3566 (error_if_numeric_overflow): Likewise.
3568 2004-08-18 Andrew Pinski <apinski@apple.com>
3570 * class.c (make_local_function_alias): Only make a new decl if we
3571 support alias attribute on all decls.
3573 2004-08-18 Bryce McKinlay <mckinlay@redhat.com>
3575 * class.c (make_local_function_alias): New function. Create local
3576 alias for public method DECL.
3577 (make_method_value): Use make_local_function_alias.
3578 * parse.y (craft_constructor): Don't special-case anonymous classes.
3579 Always set ctor_name to init_identifier_node.
3580 (lookup_method_invoke): Call layout_class_method when creating
3581 anonymous class constructor.
3583 2004-08-18 Richard Henderson <rth@redhat.com>
3585 * java-gimplify.c (java_gimplify_expr): Move '2' handling into
3586 default case. Treat '<' similarly. Update for
3587 is_gimple_formal_tmp_var name change.
3589 2004-08-17 Andrew Haley <aph@redhat.com>
3591 * lang.c (lang_printable_name): Obey verbose flag.
3592 * parse.y (constructor_circularity_msg): Set VERBOSE arg for
3593 lang_printable_name().
3594 (verify_constructor_circularity, get_printable_method_name,
3595 check_abstract_method_definitions, java_check_regular_methods,
3596 java_check_abstract_methods, check_inner_class_access,
3597 fix_constructors, patch_method_invocation, patch_return):
3599 * expr.c (pop_type_0): Likewise.
3601 * java-tree.h (lang_printable_name_wls): Delete.
3603 2004-08-16 Tom Tromey <tromey@redhat.com>
3606 * parse.y (primary): Changed for initialized and uninitialized
3608 (array_access): Handle array_creation_initialized.
3609 (array_creation_expression): Split into
3610 array_creation_initialized and array_creation_uninitialized.
3612 2004-08-16 Andrew Haley <aph@redhat.com>
3614 * jcf-write.c (find_constant_index): Canonicalize NaNs when
3615 generating bytecode.
3617 2004-08-16 Elliot Lee <sopwith@redhat.com>
3620 * jcf-parse.c (java_parse_file): Handle filenames with embedded
3621 spaces, and quoted filelists.
3623 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
3625 * boehm.c (get_boehm_type_descriptor): Use build_int_cst.
3626 * class.c (build_utf8_ref, build_static_field_ref,
3627 make_field_value, make_method_value, get_dispatch_table,
3628 make_class_data, emit_symbol_table, emit_catch_table): Likewise.
3629 * constants.c (get_tag_node, build_ref_from_constant_pool,
3630 build_constants_constructor): Likewise.
3631 * decl.c (java_init_decl_processing): Likewise.
3632 * expr.c (build_java_array_length_access, build_newarray,
3633 expand_java_multianewarray, expand_java_pushc, expand_iinc,
3634 build_java_binop, build_field_ref, expand_java_add_case,
3635 expand_java_call, build_known_method_ref, build_invokevirtual,
3636 build_invokeinterface, build_jni_stub): Likewise.
3637 * java-gimplify.c (java_gimplify_new_array_init): Likewise.
3638 * jcf-parse.c (get_constant): Likewise.
3639 * lex.c (do_java_lex): Likewise.
3640 * parse.y (patch_binop, patch_unaryop, patch_cast,
3641 build_null_of_type, patch_newarray): Likewise.
3642 * resource.c (compile_resource_data): Likewise.
3643 * typeck.c (build_prim_array_type): Likewise.
3645 2004-08-10 Bryce McKinlay <mckinlay@redhat.com>
3647 * java-gimplify.c (java_gimplify_new_array_init): Use create_tmp_var.
3648 Don't create BLOCK here or call java_gimplify_block.
3650 2004-08-09 H.J. Lu <hongjiu.lu@intel.com>
3652 * java-tree.h (flag_deprecated): Removed.
3653 * lang.opt (Wdeprecated): Use existing Var(warn_deprecated).
3654 * parse.y (check_deprecation): Check warn_deprecated instead of
3657 2004-08-06 Kelley Cook <kcook@gcc.gnu.org>
3659 * lang.c (flag_emit_class_files, flag_filelist_file, flag_redundant,
3660 flag_use_divide_subroutine, flag_use_boehm_gc, flag_store_check,
3661 flag_hash_synchronization, flag_assert, flag_jni, flag_newer,
3662 flag_check_references, flag_extraneous_semicolon, flag_deprecated,
3663 flag_force_classes_archive_check, flag_optimize_sci,
3664 flag_indirect_dispatch): Remove explicit declarations.
3665 * lang.opt: Add implicit declare/define/assign. Remove obsolete
3668 2004-08-05 Michael Chastain <mec.gnu@mindspring.com>
3671 * Make-lang.in (java.install-man): Install from either build
3672 tree or source tree, whichever has the file first.
3674 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
3676 * jcf-parse.c (get_constant): Adjust force_fit_type call.
3677 * lex.h (SET_LVAL_NODE_TYPE): Remove.
3678 * lex.c (java_perform_atof): Use SET_LVAL_NODE directly.
3679 (do_java_lex): Likewise. Adjust force_fit_type call.
3681 2004-08-04 Roger Sayle <roger@eyesopen.com>
3682 Andrew Haley <aph@redhat.com>
3684 * typeck.c (convert_ieee_real_to_integer): Call fold on the range
3685 checking trees as they're being built.
3686 (convert): Call convert_ieee_real_to_integer if we're
3687 converting a constant, even if we're writing a class file.
3689 2004-08-02 Bryce McKinlay <mckinlay@redhat.com>
3692 * parse.y (fold_constant_for_init): Call resolve_field_access with
3693 correct current_class context.
3695 2004-08-01 Roger Sayle <roger@eyesopen.com>
3697 * decl.c (update_aliases, initialize_local_variable): Replace calls
3698 to build with calls to buildN.
3699 * java-gimplify.c (java_gimplify_modify_expr): Likewise.
3700 * java-tree.h (BUILD_MONITOR_ENTER, BUILD_MONITOR_EXIT): Likewise.
3701 * parse.h (BUILD_THROW): Likewise.
3702 * parse.y (switch_expression, synchronized_statement,
3703 catch_clause_parameter, array_creation_expression,
3704 conditional_expression, make_qualified_name,
3705 resolve_qualified_expression_name, patch_method_invocation,
3706 patch_invoke, build_method_invocation, build_new_invocation,
3707 build_assignment, patch_assignment, build_binop, patch_binop,
3708 build_string_concatenation, build_incdec, patch_unaryop,
3709 patch_cast, build_array_ref, build_newarray_node, patch_newarray,
3710 patch_return, build_if_else_statement, build_labeled_block,
3711 build_new_loop, build_loop_body, build_bc_statement,
3712 build_assertion, encapsulate_with_try_catch, build_try_statement,
3713 build_try_finally_statement, patch_synchronized_statement,
3714 emit_test_initialization): Likewise, replace build with buildN.
3716 2004-07-28 Eric Christopher <echristo@redhat.com>
3718 * lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
3719 (java_unsafe_for_reeval): Ditto.
3721 2004-07-26 <hp@bitrange.com>
3723 * parse.y (build_super_invocation): Adjust declaration order to
3724 avoid declaration after statement.
3726 2004-07-25 Bernardo Innocenti <bernie@develer.com>
3728 * decl.c: Rename all identifiers named `class' to `cl'.
3730 2004-07-25 Richard Henderson <rth@redhat.com>
3732 * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
3734 2004-07-23 Mike Stump <mrs@apple.com>
3736 * boehm.c (set_bit): Improve type safety wrt unsignedness.
3737 * gjavah.c (throwable_p, decode_signature_piece,
3738 print_full_cxx_name, print_include, add_namelet, add_class_decl,
3739 process_file): Likewise.
3740 * jcf-dump.c (main): Likewise.
3741 * jcf-io.c (read_zip_member): Likewise.
3742 * jcf-parse.c (HANDLE_CONSTANT_Utf8, get_constant,
3743 give_name_to_class, get_class_constant): Likewise.
3744 * jcf-write.c (find_constant_wide, push_long_const,
3745 generate_classfile): Likewise.
3746 * lex.c (java_new_lexer, java_read_char, cxx_keyword_p): Likewise.
3747 * parse.y (read_import_dir): Likewise.
3748 * typeck.c (parse_signature_type): Likewise.
3749 * verify.c (verify_jvm_instructions): Likewise.
3750 * zextract.c (find_zip_file_start, read_zip_archive): Likewise.
3752 2004-07-23 Thomas Fitzsimmons <fitzsim@redhat.com>
3754 * Make-lang.in: Replace rmic and rmiregistry references with
3755 grmic and grmiregistry.
3756 * gcj.texi: Likewise.
3758 2004-07-20 Andrew Haley <aph@redhat.com>
3761 * verify.c (verify_jvm_instructions): Comment change only.
3763 * typeck.c (build_java_array_type): Add size field to array name.
3765 * java-tree.h (LOCAL_SLOT_P): New.
3766 (update_aliases): Add PC argument.
3767 (pushdecl_function_level): New function.
3769 * java-gimplify.c (java_gimplify_expr): Handle VAR_DECL,
3770 MODIFY_EXPR, and SAVE_EXPR.
3771 (java_gimplify_modify_expr): New function.
3773 * expr.c (push_type_0): Call find_stack_slot() to create temporary.
3774 (expand_iinc): Pass PC to update_aliases().
3775 (STORE_INTERNAL): Likewise.
3776 (process_jvm_instruction): Likewise.
3778 * decl.c (base_decl_map): New variable.
3779 (uniq): New variable.
3780 (update_aliases): Rewrite with more thorough checking.
3781 (debug_variable_p): New function.
3782 (push_jvm_slot): Don't initialize local variable. Don't pushdecl.
3783 (check_local_named_variable): Delete whole function.
3784 (initialize_local_variable): New function.
3785 (check_local_unnamed_variable): Add checks and comments.
3786 (find_local_variable): Rewrite.
3787 (java_replace_reference): New function.
3788 (function_binding_level): New variable.
3789 (pushdecl_function_level): New function.
3790 (maybe_pushlevels): Set DECL_LOCAL_END_PC.
3791 (maybe_pushlevels): Call pushdecl() on each of the new decls.
3792 (start_java_method): Reset uniq. Create base_decl_map. Set
3793 function_binding_level.
3794 (end_java_method): Null unused fields to save memory.
3796 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
3798 * class.c (add_interface_do): Remove.
3799 (set_super_info, interface_of_p, maybe_add_interface,
3800 add_interface, make_class_data, layout_class,
3801 add_miranda_methods): Adjust BINFO accessors and addition.
3802 * expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
3804 * jcf-write.c (generate_classfile): Likewise.
3805 * parse.y (patch_anonymous_class, check_inner_circular_reference,
3806 check_circular_reference, java_complete_class,
3807 check_abstract_method_definitions,
3808 java_check_abstract_method_definitions,
3809 check_interface_throws_clauses, java_check_abstract_methods,
3810 lookup_java_interface_method2,
3811 find_applicable_accessible_methods_list): Adjust BINFO accessors
3813 * typeck.c (find_method_in_interfaces): Adjust BINFO accessors.
3815 2004-07-18 Roger Sayle <roger@eyesopen.com>
3817 * builtins.c (max_builtin, min_builtin,
3818 java_build_function_call_expr): Replace calls to build with buildN.
3819 * class.c (build_class_ref, build_static_field_ref,
3820 get_dispatch_table, make_class_data, layout_class_method): Likewise.
3821 * constants.c (build_ref_from_constant_pool): Likewise.
3822 * decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
3823 add_stmt_to_compound): Likewise.
3824 * except.c (build_exception_object_ref, expand_end_java_handler):
3826 * java-gimplify.c (java_gimplify_case_expr,
3827 java_gimplify_default_expr, java_gimplify_block,
3828 java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
3829 * jcf-write.c (generate_bytecode_insns): Likewise.
3830 * typeck.c (convert_ieee_real_to_integer): Likewise.
3832 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
3834 * java-tree.h (builtin_function): Declare.
3836 2004-07-16 Steven Bosscher <stevenb@suse.de>
3838 * parse.y (java_complete_expand_methods, java_expand_classes): Don't
3839 abuse restore_line_number_status.
3841 2004-07-15 Frank Ch. Eigler <fche@redhat.com>
3844 * jcf-parse.c (java_emit_static_constructor): Specify default
3847 2004-07-13 Per Bothner <per@bothner.com>
3849 * java-tree.h (all_class_filename): Remove useless macro.
3850 (enum java_tree_index): Remove JTI_ALL_CLASS_FILENAME constant.
3851 (BUILD_FILENAME_IDENTIFIER_NODE): Remove useless macro.
3852 * parse.y (java_parser_context_restore_global): Replace
3853 BUILD_FILENAME_IDENTIFIER_NODE by plain get_identifier.
3854 * jcf-parse.c (read_class, java_parse_file): Likewise.
3856 2004-07-12 Bryce McKinlay <mckinlay@redhat.com>
3859 gjavah.c (print_field_info): Emit constant only if field is static.
3861 2004-07-11 Roger Sayle <roger@eyesopen.com>
3863 * expr.c (java_truthvalue_conversion, flush_quick_stack,
3864 java_stack_swap, java_stack_dup, build_java_athrow, build_java_jsr,
3865 build_java_ret, build_java_throw_out_of_bounds_exception,
3866 build_java_array_length_access, java_check_reference,
3867 build_java_arrayaccess, build_java_arraystore_check, build_newarray,
3868 build_anewarray, expand_java_multianewarray, expand_java_arraystore,
3869 expand_java_arrayload, build_java_monitor, expand_java_return,
3870 expand_load_internal, expand_java_NEW, build_get_class,
3871 build_instanceof, expand_java_CHECKCAST, expand_iinc,
3872 build_java_soft_divmod, build_java_binop, build_field_ref,
3873 expand_compare, expand_java_goto, expand_java_switch,
3874 expand_java_add_case, build_class_init, build_known_method_ref,
3875 invoke_build_dtable, build_invokevirtual, build_invokeinterface,
3876 expand_invoke, build_jni_stub, expand_java_field_op,
3877 java_expand_expr, expand_byte_code, STORE_INTERNAL,
3878 force_evaluation_order, emit_init_test_initialization): Convert
3879 calls to "build" into calls to the prefered "buildN" functions.
3881 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
3883 * java-tree.h (set_block): Remove.
3884 * lang.c (java_clear_binding_stack): New.
3885 (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
3886 * decl.c (struct binding_level): Remove this_block.
3887 (clear_binding_level): Likewise.
3888 (poplevel): Don't handle this_block.
3889 (set_block): Remove.
3891 2004-07-10 Bryce McKinlay <mckinlay@redhat.com>
3893 * class.c (common_enclosing_context_p): Remove statement with no
3896 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
3899 * parse.y (create_anonymous_class): Remove 'location' argument. Use
3900 the WFL from TYPE_NAME to get line number for the decl. Fix comment.
3901 (craft_constructor): Inherit access flags for implicit constructor
3902 from the enclosing class.
3903 (create_class): Fix comment typo.
3904 (resolve_qualified_expression_name): Pass type of qualifier to
3905 not_accessible_p, not the type in which target field was found.
3906 (not_accessible_p): Handle inner classes. Expand protected
3907 qualifier-subtype check to enclosing instances, but don't apply this
3908 check to static members. Allow protected access to inner classes
3909 of a subtype. Allow private access within common enclosing context.
3910 (build_super_invocation): Get WFL line number info from current
3912 (build_incomplete_class_ref): Update for new create_anonymous_class
3914 * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
3915 common_enclosing_instance_p.
3916 * class.c (common_enclosing_context_p): New. Determine if types
3917 share a common enclosing context, even across static contexts.
3918 (common_enclosing_instance_p): Renamed from
3919 common_enclosing_context_p. Determines if types share a common
3920 non-static enclosing instance.
3921 * java-tree.h (common_enclosing_instance_p): Declare.
3922 * jcf-write.c (get_method_access_flags): New. Surpress private flag
3923 for inner class constructors.
3924 (generate_classfile): Use get_method_access_flags.
3926 2004-07-09 Bryce McKinlay <mckinlay@redhat.com>
3928 * class.c (interface_of_p): Check for null TYPE_BINFO.
3930 2004-07-09 Nathan Sidwell <nathan@codesourcery.com>
3932 * class.c (make_class): Do not create binfo here.
3933 (set_super_info): Create it here.
3934 * java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.
3936 2004-07-08 Richard Henderson <rth@redhat.com>
3938 * expr.c (case_identity, get_primitive_array_vtable,
3939 java_expand_expr, emit_init_test_initialization): Remove.
3940 * java-tree.h (java_expand_expr): Remove.
3941 * lang.c (LANG_HOOKS_EXPAND_EXPR): Remove.
3943 2004-07-07 Per Bothner <per@bothner.com>
3945 * class.c (build_static_field_ref): Add a NOP_EXPR; otherwise we
3946 get internal error due to mismatched types.
3948 * gcj.texi (Invoking gij): Document new -verbose:class flag.
3950 * gcj.texi (Linking): New node. Document -lgij usage.
3952 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
3954 * java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
3955 (TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
3956 * java/class.c (set_super_info, class_depth, interface_of_p,
3957 maybe_add_interface, add_interface, make_class_data,
3958 layout_class, add_miranda_methods): Adjust BINFO macros.
3959 * expr.c (can_widen_reference_to, lookup_field): Likewise.
3960 * jcf-write.c (generate_classfile): Likewise.
3961 * parse.y (patch_anonymous_class,
3962 check_inner_circular_reference, check_circular_reference,
3963 java_complete_class, check_abstract_method_definitions,
3964 java_check_abstract_method_definitions,
3965 check_interface_throws_clauses, java_check_abstract_methods,
3966 lookup_java_interface_method2,
3967 find_applicable_accessible_methods_list): Likewise.
3968 * typeck.c (find_method_in_interface): Likewise.
3969 * verify.c (merge_types): Likewise.
3971 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
3973 * java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
3974 * class.c (add_interface_do): Use BINFO_VIRTUAL_P.
3976 2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
3978 * class.c (make_class): Use make_tree_binfo.
3979 (set_super_info, add_interface_do): Likewise.
3980 * java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
3982 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
3984 * verify.c: Correct array element access formatting thinko.
3986 2004-07-04 Ranjit Mathew <rmathew@hotmail.com>
3988 * verify.c: Insert a short blurb at the start referring to the JVMS.
3989 (merge_type_state): Remove redundant nested if statement.
3990 (verify_jvm_instructions): Ensure current_subr is initialised to
3992 Minor formatting fixes all over the place.
3994 2004-07-02 Richard Henderson <rth@redhat.com>
3996 * jcf-write.c (generate_bytecode_insns <case SAVE_EXPR>): Rewrite.
3998 2004-07-01 Richard Henderson <rth@redhat.com>
4000 * class.c (registerClass_libfunc): Remove.
4001 (init_class_processing): Don't set it.
4002 (emit_register_classes): Take list_p parameter. Fill it in
4003 with _Jv_RegisterClass calls.
4004 * decl.c (java_init_decl_processing): Don't call
4005 init_resource_processing.
4006 * jcf-parse.c (java_emit_static_constructor): New.
4007 (java_parse_file): Call it.
4008 * resource.c (registerResource_libfunc): Remove.
4009 (init_resource_processing): Remove.
4010 (write_resource_constructor): Take list_p parameter. Fill it in
4011 with _Jv_RegisterResource calls.
4012 * java-tree.h: Update prototypes.
4014 2004-06-29 Bryce McKinlay <mckinlay@redhat.com>
4017 * class.c (layout_class_method): Do not override package-private
4018 method if its in a different package.