Commit Graph

218 Commits

Author SHA1 Message Date
Danny Smith
e50e6b88e4 defaults.h (TARGET_USE_JCR_SECTION): New macro.
gcc
	PR/18549
	* defaults.h (TARGET_USE_JCR_SECTION): New macro.
	* doc/tm.texi (TARGET_USE_JCR_SECTION): Document it.
	* config/i386/cygming.h (TARGET_USE_JCR_SECTION): Override
	default.

gcc/java
	PR/18549
	* class.c (emit_register_classes): Use TARGET_USE_JCR_SECTION.
	Update comment.

From-SVN: r92078
2004-12-13 06:57:13 +00:00
Andrew Haley
3381c28f38 re PR java/18697 (Miscompilation of GtkMenuItemPeer.setParent(MenuItem))
2004-12-03  Andrew Haley  <aph@redhat.com>

	PR java/18697
	* class.c (layout_class_method): Don't fail to override a method
	simply because it has DECL_ARTIFICIAL set.

From-SVN: r91689
2004-12-03 18:01:59 +00:00
Kazu Hirata
0b1214ef13 * class.c, decl.c, expr.c: Fix comment typos.
From-SVN: r91392
2004-11-27 20:48:17 +00:00
Tom Tromey
6a4877c440 verify.c (defer_merging): Don't use C++-style comment.
* verify.c (defer_merging): Don't use C++-style comment.
	* verify.h (java_opcode): Added java_opcode_end.
	* class.c (build_class_ref): Remove C++ comment and old FIXME.

From-SVN: r91277
2004-11-25 07:03:55 +00:00
Tom Tromey
367390404d * Merged gcj-abi-2-dev-branch to trunk.
(Actual changes too large to list in the commit message;
see ChangeLog.)

From-SVN: r91270
2004-11-25 03:47:08 +00:00
Steven Bosscher
39afeb1aad c-opts.c (c_common_post_options): Don't clear flag_inline_functions.
gcc/
	* c-opts.c (c_common_post_options): Don't clear
	flag_inline_functions.
	* dojump.c (clear_pending_stack_adjust): Remove check on
	flag_inline_functions, it's always true.
	* config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter
	that can never trigger.
	* config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at
	flag_inline_trees, now that flag_inline_functions is never
	cleared.
	* config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set
	flag_inline_functions at optimization levels greater than
	or equal to 3.  This is already done by default.

ada/
	* misc.c (gnat_post_options): Don't clear
	flag_inline_functions.

cp/
	* decl.c (cxx_init_decl_processing): Don't clear
	flag_inline_functions.

fortran/
	* options.c (gfc_post_options): Don't clear flag_inline_functions.

java/
	* class.c (make_class_data): Don't check flag_inline_functions.
	* lang.c (flag_really_inline): Remove unused flag.
	(java_handle_option): Don't set it here.  Remove special handling
	of flag_inline_functions for Java.
	(java_init): Don't set flag_inline_trees here.  Already done...
	(java_post_options): ...here.  Don't clear flag_inline_functions.

From-SVN: r91190
2004-11-24 19:45:32 +00:00
Bryce McKinlay
65e9700cc0 re PR java/17265 (Libjava doesn't build)
2004-11-02  Bryce McKinlay  <mckinlay@redhat.com>

	PR java/17265
	* class.c: Reinstate 2004-08-18 patch.
	(make_local_function_alias): Don't create an alias for extern (native)
	functions.

From-SVN: r89993
2004-11-02 16:52:55 +00:00
Eric Botcazou
e063dbf8f7 re PR java/17265 (Libjava doesn't build)
PR java/17265
	* class.c (make_local_function_alias): Revert 2004-08-18 change.
	(make_method_value): Likewise.

From-SVN: r89443
2004-10-22 14:30:37 +00:00
Steven Bosscher
7cefa0c165 class.c (ident_subst): Always alloca buffer.
* class.c (ident_subst): Always alloca buffer.
	* java-opcodes.h (LAST_AND_UNUSED_JAVA_OPCODE): Add this dummy
	opcode after including javaop.def.
	* jcf-dump.c (CHECK_PC_IN_RANGE): Return 0 from the arm of the
	conditional expression that exits, to avoid warnings.
	* verify.c (CHECK_PC_IN_RANGE): Mark the __GNUC__ definition as
	a user of an extension.
	* win32-host.c: Move check down to have non-empty file when
	WIN32 is not defined.

	* Make-lang.in (java-warn): Add STRICT_WARN.
	(java/jcf-io.o-warn): Don't have Werror for this file.
	* jcf-io.c (caching_stat): Add FIXME for non-POSIX scandir use.

From-SVN: r89184
2004-10-17 22:51:35 +00:00
Ranjit Mathew
a1402da35c parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and rename parameter 'msg' to 'msgid' in function...
* parse.y (parse_warning_context): Remove ATTRIBUTE_PRINTF_2 and
	rename parameter 'msg' to 'msgid' in function declaration.
	(issue_warning_error_from_context): Likewise.
	(yyerror): Rename parameter 'msg' to 'msgid'.
	(all over): Use new quoting style for diagnostics.

	* check-init.c: Use %<, %> and %q for quoting in diagnostics,
	if possible, else convert `foo' to 'foo'.
	* class.c: Likewise.
	* decl.c: Likewise.
	* expr.c: Likewise.
	* jcf-io.c: Likewise.
	* jcf-parse.c: Likewise.
	* lang.c: Likewise.
	* lex.c: Likewise.
	* parse.h: Likewise.

From-SVN: r89110
2004-10-15 18:43:10 +00:00
Per Bothner
6744f40032 More cleanup for --enable-mapped-location.
* class.c (push_class):  If USE_MAPPED_LOCATION don't set
	input_location here.  Instead do it in give_name_to_class.
	(build_class_ref):  Set DECL_ARTIFICIAL, for the sake of dwarf2out.
	* expr.c (expand_byte_code): Call linemap_line_start.
	* expr.c (build_expr_wfl):  If USE_MAPPED_LOCATION, change final
	parameters to a source_location.  Don't need EXPR_WFL_FILENAME_NODE.
	(expr_add_location):  New function, if USE_MAPPED_LOCATION.
	* class.c (maybe_layout_super_class):  Adjust build_expr_wfl call
	to USE_MAPPED_LOCATION case.

From-SVN: r88365
2004-09-30 16:23:52 -07:00
Tom Tromey
346c5b01de re PR java/15710 (ICE: tree check: expected class 'E', have 'c' (integer_cst) in make_class_data)
PR java/15710:
	* class.c (add_miranda_methods): Load superinterface if not
	already loaded.

From-SVN: r88243
2004-09-28 18:27:25 +00:00
Tom Tromey
4a2dd6fe83 re PR java/17216 (ICE in 3.5, error in 3.4.1 when compiling .class->.o)
PR java/17216:
	* class.c (layout_class_method): Put synthetic methods into the
	vtable.

From-SVN: r87477
2004-09-14 01:50:12 +00:00
Nathan Sidwell
7d60be94d6 tree.h (build_int_cst): New, sign extended constant.
* tree.h  (build_int_cst): New, sign extended constant.
	(build_int_cstu): New, zero extended constant.
	(build_int_cst_wide): Renamed from build_int_cst.
	* tree.c (build_int_cst, build_int_cstu): New.
	(build_int_cst_wide): Renamed from build_int_cst.
	(make_vector_type, build_common_tree_nodes,
	build_common_tree_nodes_2): Adjust build_int_cst calls.
	* builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
	expand_builtin_strpbrk, expand_builtin_fputs,
	build_string_literal, expand_builtin_printf,
	expand_builtin_sprintf, fold_builtin_classify_type,
	fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
	fold_builtin_toascii, fold_builtin_isdigit,
	simplify_builtin_strstr, simplify_builtin_strpbrk,
	fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
	* c-common.c (start_fname_decls, fix_string_type, shorten_compare,
	DEF_ATTR_INT): Likewise.
	* c-decl.c (complete_array_type, check_bitfield_type_and_width):
	Likewise.
	* c-lex.c (interpret_integer, lex_charconst): Likewise.
	* c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
	* c-pretty-print.c (pp_c_integer_constant): Likewise.
	* c-typeck.c (really_start_incremental_init, push_init_level,
	set_nonincremental_init_from_string): Likewise.
	* calls.c (load_register_parameters): Likewise.
	convert.c (convert_to_pointer): Likewise.
	coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
	build_fn_info_type, build_fn_info_value, build_ctr_info_value,
	build_gcov_info): Likewise.
	* except.c (init_eh, assign_filter_values): Likewise.
	* expmed.c (store_fixed_bit_field, extract_bit_field,
	extract_fixed_bit_field, extract_split_bit_field, expand_shift,
	expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
	expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
	* expr.c (convert_move, emit_group_load, emit_group_store,
	expand_assignment, store_constructor, store_field,
	expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
	fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
	invert_truthvalue, optimize_bit_field_compare,
	decode_field_reference, all_ones_mask_p, constant_boolean_node,
	fold_div_compare, fold, fold_read_from_constant_string,
	fold_negate_const, fold_abs_const, fold_not_const, round_up,
	round_down): Likewise.
	* function.c (assign_parm_setup_block): Likewise.
	* stmt.c (shift_return_value, expand_case, estimate_case_costs):
	Likewise.
	* stor-layout.c (layout_type, initialize_sizetypes,
	set_min_and_max_values_for_integral_type): Likewise.
	* tree-chrec.c (chrec_fold_multiply_poly_poly,
	reset_evolution_in_loop): Likewise.
	* tree-chrec.h (build_polynomial_chrec): Likewise.
	* tree-complex.c (build_replicated_const): Likewise.
	* tree-eh.c (honor_protect_cleanup_actions,
	lower_try_finally_onedest, lower_try_finally_copy,
	lower_try_finally_switch): Likewise.
	* tree-mudflap.c (mf_build_string, mx_register_decls,
	mudflap_register_call, mudflap_enqueue_constant): Likewise.
	* tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
	Likewise.
	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
	* tree-ssa-loop-niter.c (number_of_iterations_cond,
	loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
	Likewise.
	* tree-ssa-loop-ivcanon.c (create_canonical_iv,
	canonicalize_loop_induction_variables): Likewise.
	* tree-vectorizer.c (vect_create_index_for_array_ref,
	vect_transform_loop_bound, vect_compute_data_ref_alignment):
	Likewise.

	* config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
	alpha_gimplify_va_arg_1): Likewise.
	* config/arm/arm.c (arm_get_cookie_size): Likewise.
	* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
	* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
	* config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
	mips_gimplify_va_arg_expr): Likewise.
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
	* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
	add_compiler_branch_island): Likewise.
	* config/s390/s390.c (s390_va_start): Likewise.
	* config/sh/sh.c (sh_va_start): Likewise.
	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
	Likewise.
	* config/xtensa/xtensa.c (xtensa_va_start,
	xtensa_gimplify_va_arg_expr): Likewise.

	* objc/objc-act.c (build_objc_string_object,
	build_objc_symtab_template, init_def_list, init_objc_symtab,
	init_module_descriptor, generate_static_references,
	build_selector_translation_table, get_proto_encoding,
	build_typed_selector_reference, build_selector_reference,
	build_next_objc_exception_stuff,
	build_method_prototype_list_template, generate_descriptor_table,
	generate_protocols, build_protocol_initializer,
	build_ivar_list_template, build_method_list_template,
	build_ivar_list_initializer, generate_ivars_list,
	generate_dispatch_table, generate_protocol_list,
	build_category_initializer, build_shared_structure_initializer,
	generate_shared_structures, handle_impent,
	generate_objc_image_info): Likewise.

2004-04-25  Paolo Bonzini  <bonzini@gnu.org>

	* cfglayout.c (duplicate_insn_chain): Remove references to
	NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
	* cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
	* cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
	* final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
	and NOTE_INSN_LOOP_CONT.
	* insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
	* jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
	and NOTE_INSN_LOOP_CONT.
	* loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
	check_dbra_loop, loop_dump_aux): Remove references to removed notes
	and fields.
	* reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
	* unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
	references to removed notes and fields.
	(subtract_reg_term, ujump_to_loop_cont): Remove.

From-SVN: r86544
2004-08-25 09:52:54 +00:00
Bryce McKinlay
97d68565c6 class.c (make_local_function_alias): Allocate extra space for 'L' in name buffer.
2004-08-19  Bryce McKinlay  <mckinlay@redhat.com>

	* class.c (make_local_function_alias): Allocate extra space for 'L'
	in name buffer. Reported by Thomas Neumann.

From-SVN: r86251
2004-08-19 15:32:31 +01:00
Andrew Pinski
ecc75a199f class.c (make_local_function_alias): Only make a new decl if we support alias attribute on all decls.
* class.c (make_local_function_alias): Only make a new decl if we support
	alias attribute on all decls.

From-SVN: r86232
2004-08-18 20:09:45 -07:00
Bryce McKinlay
260ba9ce68 class.c (make_local_function_alias): New function.
2004-08-18  Bryce McKinlay  <mckinlay@redhat.com>

	* class.c (make_local_function_alias): New function. Create local
	alias for public method DECL.
	(make_method_value): Use make_local_function_alias.
	* parse.y (craft_constructor): Don't special-case anonymous classes.
	Always set ctor_name to init_identifier_node.
	(lookup_method_invoke): Call layout_class_method when creating
	anonymous class constructor.

From-SVN: r86196
2004-08-18 18:57:03 +01:00
Nathan Sidwell
4a90aeeb51 tree.h (build_int_cst): New.
.:	* tree.h (build_int_cst): New.
	(build_int_2): Remove.
	* tree.c (build_int_2): Remove.
	(build_int_cst): New.
	(make_vector_type, build_common_tree_nodes,
	build_common_tree_nodes_2): Use build_int_cst.
	* builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
	expand_builtin_strpbrk, expand_builtin_fputs,
	build_string_literal, expand_builtin_printf,
	expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
	fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
	fold_builtin_isdigit, simplify_builtin_strstr,
	simplify_builtin_strpbrk, fold_builtin_fputs,
	simplify_builtin_sprintf): Use build_int_cst.
	* c-common.c (start_fname_decls, fix_string_type,
	c_common_nodes_and_builtins, c_init_attributes,
	shorten_compare): Likewise.
	* c-decl.c (complete_array_type,
	check_bitfield_type_and_width): Likewise.
	* c-lex.c (interpret_integer, lex_charconst): Likewise.
	* c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
	* c-pretty-print.c (pp_c_integer_constant): Likewise.
	* c-typeck.c (really_start_incremental_init, push_init_level,
	set_nonincremental_init_from_string): Likewise.
	* calls.c (load_register_parameters): Likewise.
	* convert.c (convert_to_pointer): Likewise.
	* coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
	build_fn_info_type, build_ctr_info_value, build_gcov_info):
	Likewise.
	* except.c (init_eh, assign_filter_values, assign_filter_values):
	Likewise.
	* expmed.c (store_fixed_bit_field, extract_bit_field,
	extract_fixed_bit_field, extract_split_bit_field, expand_shift,
	expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
	expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
	* expr.c (convert_move, emit_group_load, emit_group_store,
	expand_assignment, store_constructor, store_field,
	expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
	* fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
	invert_truthvalue, optimize_bit_field_compare,
	decode_field_reference, all_ones_mask_p, constant_boolean_node,
	fold_div_compare, fold, fold_read_from_constant_string,
	fold_negate_const, fold_abs_const, fold_not_const): Likewise.
	* function.c (assign_parm_setup_block): Likewise.
	* stmt.c (shift_return_value, expand_end_case_type,
	estimate_case_costs): Likewise.
	* stor-layout.c (layout_type, initialize_sizetypes,
	set_min_and_max_values_for_integral_type): Likewise.
	* tree-chrec.c (chrec_fold_multiply_poly_poly,
	reset_evolution_in_loop): Likewise.
	* tree-chrec.h (build_polynomial_chrec): Likewise.
	* tree-complex.c (build_replicated_const): Likewise.
	* tree-eh.c (honor_protect_cleanup_actions,
	lower_try_finally_onedest, lower_try_finally_copy,
	lower_try_finally_switch): Likewise.
	* tree-mudflap.c (mf_build_string, mx_register_decls,
	mudflap_register_call, mudflap_enqueue_constant): Likewise.
	* tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
	Likewise.
	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
	* tree-ssa-loop-niter.c (number_of_iterations_cond,
	loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
	Likewise.

	* config/alpha/alpha.c (alpha_initialize_trampoline,
	alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
	* config/arm/arm.c (arm_get_cookie_size): Likewise.
	* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
	* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
	* config/i860/i860.c (i860_va_start): Likewise.
	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
	* config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
	mips_gimplify_va_arg_expr): Likewise.
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
	* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
	add_compiler_branch_island): Likewise.
	* config/s390/s390.c (s390_va_start): Likewise.
	* config/sh/sh.c (sh_va_start): Likewise.
	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
	Likewise.
	* config/xtensa/xtensa.c (xtensa_va_start,
	xtensa_gimplify_va_arg_expr): Likewise.

	* objc/objc-act.c (build_objc_string_object,
	build_objc_symtab_template, init_def_list, init_objc_symtab,
	init_module_descriptor, generate_static_references,
	build_selector_translation_table, get_proto_encoding,
	build_typed_selector_reference, build_selector_reference,
	build_next_objc_exception_stuff,
	build_method_prototype_list_template, generate_descriptor_table,
	generate_protocols, build_protocol_initializer,
	build_ivar_list_template, build_method_list_template,
	build_ivar_list_initializer, generate_ivars_list,
	generate_dispatch_table, generate_protocol_list,
	build_category_initializer, build_shared_structure_initializer,
	generate_shared_structures, handle_impent,
	generate_objc_image_info): Use build_int_cst.
ada:
	* cuintp.c (UI_To_gnu): Use build_int_cst..
	* trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
	* utils.c (init_gigi_decls): Likewise.
	* utils2.c (build_call_raise): Likewise.
cp:
	* call.c (convert_class_to_reference,
	build_user_type_conversion_1, convert_like_real,
	build_java_interface_fn_ref, build_special_member_call): Use
	build_int_cst.
	* class.c (build_vtbl_initializer): Likewise.
	* cp-gimplify.c (cp_gimplify_expr): Likewise.
	* cvt.c (cp_convert_to_pointer): Likewise.
	* decl.c (cxx_init_decl_processing, complete_array_type): Likewise.
	* decl2.c (start_static_initialization_or_destruction,
	generate_ctor_or_dtor_function): Likewise.
	* except.c (build_throw): Likewise.
	* lex.c (cxx_init): Likewise.
	* mangle.c (write_integer_cst): Likewise.
	* rtti.c (build_headof, get_tinfo_decl_dynamic,
	build_dynamic_cast_1, ptr_initializer, ptm_initializer,
	get_pseudo_ti_init): Likewise.
	* search.c (get_dynamic_cast_base_type): Likewise.
	* tree.c (build_shared_int_cst): Likewise.
fortran:
	* trans-array.c (gfc_trans_array_constructor_value): Use
	build_int_cst.
	* trans-const.c (gfc_build_string_const,
	gfc_init_constants, gfc_conv_mpz_to_tree,
	gfc_conv_constant_to_tree): Likewise.
	* trans-decl.c (gfc_get_symbol_decl): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_ibits,
	gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
	* trans-io.c (add_case, set_error_locus, build_dt,
	transfer_expr): Likewise.
	* trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
	gfc_trans_stop, gfc_trans_character_select): Likewise.
	* trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
	* trans.c (gfc_trans_runtime_check): Likewise.
java:
	* boehm.c (get_boehm_type_descriptor): Use build_int_cst.
	* class.c (build_utf8_ref, build_static_field_ref,
	make_field_value, make_method_value, get_dispatch_table,
	make_class_data, emit_symbol_table, emit_catch_table): Likewise.
	* constants.c (get_tag_node,  build_ref_from_constant_pool,
	build_constants_constructor): Likewise.
	* decl.c (java_init_decl_processing): Likewise.
	* expr.c (build_java_array_length_access, build_newarray,
	expand_java_multianewarray, expand_java_pushc, expand_iinc,
	build_java_binop, build_field_ref, expand_java_add_case,
	expand_java_call, build_known_method_ref, build_invokevirtual,
	build_invokeinterface, build_jni_stub): Likewise.
	* java-gimplify.c (java_gimplify_new_array_init): Likewise.
	* jcf-parse.c (get_constant): Likewise.
	* lex.c (do_java_lex): Likewise.
	* parse.y (patch_binop, patch_unaryop, patch_cast,
	build_null_of_type, patch_newarray): Likewise.
	* resource.c (compile_resource_data): Likewise.
	* typeck.c (build_prim_array_type): Likewise.

From-SVN: r86022
2004-08-15 15:45:33 +00:00
Geoffrey Keating
0e6df31e19 re PR c/14516 (-fleading-underscore does not work correctly for file static variables)
2004-08-04  Geoffrey Keating  <geoffk@apple.com>

	PR 14516
	* c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
	* c-common.h (make_rtl_for_local_static): Delete.
	* c-decl.c (shadow_tag_warned): Clean up comment.
	(finish_decl): Clean up spacing.  Use set_user_assembler_name when
	appropriate.  Don't pass asmspec to rest_of_decl_compilation.
	* c-semantics.c (make_rtl_for_local_static): Delete.
	* expr.c (init_block_move_fn): Use set_user_assembler_name.
	(init_block_clear_fn): Likewise.
	* passes.c (rest_of_decl_compilation): Remove asmspec parameter,
	expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
	* toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
	* tree.h (make_decl_rtl): Remove second parameter.
	(set_user_assembler_name): New.
	* varasm.c (set_user_assembler_name): New.
	(make_decl_rtl): Remove second parameter.  Update callers in many
	files.

Index: cp/ChangeLog
2004-08-04  Geoffrey Keating  <geoffk@apple.com>

	* decl.c (make_rtl_for_nonlocal_decl): Set DECL_ASSEMBLER_NAME rather
	than passing it as a parameter to rest_of_decl_compilation.
	* decl2.c (grokfield): Use set_user_assembler_name.

From-SVN: r85593
2004-08-05 05:52:01 +00:00
Nathan Sidwell
fa743e8cda tree.h: Include vec.h
.:	* tree.h: Include vec.h
	(DEF_VEC_P(tree)): New type.
	(BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
	(BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
	(BINFO_LANG_SLOT): Remove.
	(BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
	(struct tree_binfo): Turn base_binfos into a trailing
	VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
	(binfo_lang_slots): Remove.
	* tree.c (binfo_lang_slots): Remove.
	(make_tree_binfo_stat): Take a base binfo count, not a
	lang slot count.  Adjust.
	* Makefile.in (TREE_H): Add vec.h
	* alias.c (record_component_aliases): Adjust BINFO access.
	* dbxout.c (dbxout_type): Likewise.
	* dwarf2out.c (gen_member_die): Likewise.
	* sdbout.c (sdbout_one_type): Likewise.
	* tree-dump.c (deque_and_dump): Likewise.
	* config/i386/i386.c (classify_argument,
	contains_128bit_aligned_vector_p): Likewise.
	* config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
	* doc/c-tree.texi (Classes): Update BINFO documentation.
cp:
	* cp-tree.h (DEF_VEC_P(tree)): Remove here.
	(BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF):
	Moved to common.
	(BINFO_LANG_SLOTS): Remove.
	* tree.c (copy_binfo): Adjust BINFO creation and accessors.
	* decl.c (xref_basetypes): Adjust BINFO creation and accessors.
	* class.c (check_bases): Adjust BINFO accessors.
	(determine_primary_base, finish_struct_bits,
	maybe_warn_about_overly_private_class, warn_hidden,
	walk_subobject_offsets, propagate_binfo_offsets, end_of_class,
	warn_about_ambiguous_bases, get_vfield_name,
	dump_class_hierarchy_r, build_vtt_inits, accumulate_vtbl_inits,
	add_vcall_offset_vtbl_entries_r): Likewise.
	* dump.c (cp_dump_tree): Likewise.
	* init.c (sort_mem_initializers, expand_member_init, build_delete,
	push_base_cleanups): Likewise.
	* method.c (do_build_copy_constructor, do_build_assign_ref,
	synthesize_exception_spec): Likewise.
	name-lookup.c (arg_assoc_class): Likewise.
	* pt.c (instantiate_class_template,
	get_template_base_recursive): Likewise.
	* rtti.c (get_pseudo_ti_init, get_pseudo_ti_desc): Likewise.
	* typeck2.c (process_init_constructor): Likewise.
	* search.c (lookup_base_r, dynamic_cast_base_recurse,
	dfs_access_in_type, dfs_walk_real, look_for_overrides,
	types_overlap_p, copied_binfo, original_binfo): Likewise.
	(binfo_for_vtable): Remove
java:
	* class.c (add_interface_do): Remove.
	(set_super_info, interface_of_p, maybe_add_interface,
	add_interface, make_class_data, layout_class,
	add_miranda_methods): Adjust BINFO accessors and addition.
	* expr.c (can_widen_reference_to, lookup_field): Adjust BINFO
	accessors.
	* jcf-write.c (generate_classfile): Likewise.
	* parse.y (patch_anonymous_class, check_inner_circular_reference,
	check_circular_reference, java_complete_class,
	check_abstract_method_definitions,
	java_check_abstract_method_definitions,
	check_interface_throws_clauses, java_check_abstract_methods,
	lookup_java_interface_method2,
	find_applicable_accessible_methods_list): Adjust BINFO accessors
	and addition.
	* typeck.c (find_method_in_interfaces): Adjust BINFO accessors.

From-SVN: r84949
2004-07-20 12:26:02 +00:00
Roger Sayle
94cdeb1ad3 builtins.c (max_builtin, [...]): Replace calls to build with buildN.
* builtins.c (max_builtin, min_builtin,
	java_build_function_call_expr): Replace calls to build with buildN.
	* class.c (build_class_ref, build_static_field_ref,
	get_dispatch_table, make_class_data, layout_class_method): Likewise.
	* constants.c (build_ref_from_constant_pool): Likewise.
	* decl.c (update_aliases, push_jvm_slot, poplevel, finish_method,
	add_stmt_to_compound): Likewise.
	* except.c (build_exception_object_ref, expand_end_java_handler):
	Likewise.
	* java-gimplify.c (java_gimplify_case_expr,
	java_gimplify_default_expr, java_gimplify_block,
	java_gimplify_new_array_init, java_gimplify_try_expr): Likewise.
	* jcf-write.c (generate_bytecode_insns): Likewise.
	* typeck.c (convert_ieee_real_to_integer): Likewise.

From-SVN: r84894
2004-07-18 13:17:03 +00:00
Bryce McKinlay
9ee226ef12 004-07-10 Bryce McKinlay <mckinlay@redhat.com>
* class.c (common_enclosing_context_p): Remove statement with no
        side-effects.

From-SVN: r84460
2004-07-10 16:53:40 +01:00
Bryce McKinlay
d3ecb597b3 re PR java/8618 (call to private constructor allowed for anonymous inner class)
2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>

        PR java/8618
        * parse.y (create_anonymous_class): Remove 'location' argument. Use
        the WFL from TYPE_NAME to get line number for the decl. Fix comment.
        (craft_constructor): Inherit access flags for implicit constructor
        from the enclosing class.
        (create_class): Fix comment typo.
        (resolve_qualified_expression_name): Pass type of qualifier to
        not_accessible_p, not the type in which target field was found.
        (not_accessible_p): Handle inner classes. Expand protected
        qualifier-subtype check to enclosing instances, but don't apply this
        check to static members. Allow protected access to inner classes
        of a subtype. Allow private access within common enclosing context.
        (build_super_invocation): Get WFL line number info from current
        class decl.
        (build_incomplete_class_ref): Update for new create_anonymous_class
        signature.
        * parse.h (INNER_ENCLOSING_SCOPE_CHECK): Use
        common_enclosing_instance_p.
        * class.c (common_enclosing_context_p): New. Determine if types
        share a common enclosing context, even across static contexts.
        (common_enclosing_instance_p): Renamed from
        common_enclosing_context_p. Determines if types share a common
        non-static enclosing instance.
        * java-tree.h (common_enclosing_instance_p): Declare.
        * jcf-write.c (get_method_access_flags): New. Surpress private flag
        for inner class constructors.
        (generate_classfile): Use get_method_access_flags.

From-SVN: r84443
2004-07-10 06:38:15 +01:00
Bryce McKinlay
968d62b517 class.c (interface_of_p): Check for null TYPE_BINFO.
2004-07-09  Bryce McKinlay  <mckinlay@redhat.com>

	* class.c (interface_of_p): Check for null TYPE_BINFO.

From-SVN: r84418
2004-07-10 00:26:01 +01:00
Nathan Sidwell
85fd2947bd class.c (make_class): Do not create binfo here.
* class.c (make_class): Do not create binfo here.
	(set_super_info): Create it here.
	* java-tree.h (CLASS_HAS_SUPER): Cope with lack of a binfo.

From-SVN: r84388
2004-07-09 18:36:02 +00:00
Per Bothner
5c121a1b68 class.c (build_static_field_ref): Add a NOP_EXPR; otherwise we get internal error due to mismatched types.
* class.c (build_static_field_ref):  Add a NOP_EXPR; otherwise we
	get internal error due to mismatched types.

From-SVN: r84256
2004-07-07 19:47:08 -07:00
Nathan Sidwell
604a320594 tree.h (TYPE_BINFO_OFFSET, [...]): Remove.
* tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
	TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
	TYPE_BINFO_BASETYPE): Remove.
	(BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
	to ...
	(BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
	here.
	(BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
	(BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
	(BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
	(struct tree_binfo): Rename base_types to base_binfos.
	* alias.c (record_component_aliases): Adjust BINFO macros.
	* dbxout.c (dbxout_type): Likewise.
	* dwarf2out.c (gen_member_die): Likewise.
	* sdbout.c (sdbout_one_type): Likewise.
	* tree-dump.c (deque_and_dump): Likewise.
	* config/i386/i386.c (classify_argument,
	contains_128bit_aligned_vector_p): Likewise.

	* cp/cp-tree.h (CLASSTYPE_N_BASECLASSES): Remove.
	* cp/class.c (build_primary_vtable, check_bases,
	determine_primary_base, finish_struct_bits,
	maybe_warn_about_overly_private_class, dfs_find_final_overrider_q,
	get_basefndecls, warn_hidden, walk_subobject_offsets,
	build_base_fields, create_vtable_ptr, propagate_binfo_offsets,
	layout_virtual_bases, end_of_class, warn_about_ambiguous_bases,
	finish_struct_1, get_vfield_name, contains_empty_class_p,
	dump_class_hierarchy_r, finish_vtbls, build_vtt_inits,
	dfs_ctor_vtable_bases_queue_p, accumulate_vtbl_inits,
	add_vcall_offset_vtbl_entries_r, cp_fold_obj_type_ref): Adjust
	BINFO macros.
	* cp/decl.c (xref_basetypes): Likewise.
	* cp/dump.c (cp_dump_tree): Likewise.
	* cp/error.c (dump_expr): Likewise.
	* cp/init.c (sort_mem_initializers, expand_member_init,
	push_base_cleanups): Likewise.
	* cp/method.c (do_build_copy_constructor, do_build_assign_reg,
	synthesize_exception_spec): Likewise.
	* cp/name-lookup.c (arg_assoc_class):
	* cp/pt.c (instantiate_class_template, tsubst,
	get_template_base_recursive):
	* cp/ptree.c (cxx_print_type):
	* cp/rtti.c (get_psuedo_ti_init, get_pseudo_ti_desc): Likewise.
	* cp/search.c (lookup_base_r, dynamic_cast_base_recurse,
	dfs_access_in_type, access_in_type, lookup_field_queue_p,
	bfs_walk, dfs_walk_real, look_for_overrides, markedp, unmarkedp,
	marked_pushdecls_p, unmarked_pushdecls_p, dfs_debug_markedp,
	dfs_debug_unmarkedp, dfs_check_overlap, dfs_no_overlap_yet,
	binfo_for_vtable, copied_binfo, original_binfo): Likewise
	* cp/tree.c (copy_base_binfos, make_binfo): Likewise.
	* cp/typeck.c (commmon_base_type): Likewise
	* cp/typeck2.c (process_init_constructor): Likewise

	* java/java-tree.h (CLASSTYPE_SPUER): Adjust BINFO macros.
	(TYPE_NVIRTUALS, TYPE_VTABLE): Likewise.
	* java/class.c (set_super_info, class_depth, interface_of_p,
	maybe_add_interface, add_interface, make_class_data,
	layout_class, add_miranda_methods): Adjust BINFO macros.
	* java/expr.c (can_widen_reference_to, lookup_field): Likewise.
	* java/jcf-write.c (generate_classfile): Likewise.
	* java/parse.y (patch_anonymous_class,
	check_inner_circular_reference, check_circular_reference,
	java_complete_class, check_abstract_method_definitions,
	java_check_abstract_method_definitions,
	check_interface_throws_clauses, java_check_abstract_methods,
	lookup_java_interface_method2,
	find_applicable_accessible_methods_list): Likewise.
	* java/typeck.c (find_method_in_interface): Likewise.
	* java/verify.c (merge_types): Likewise.

From-SVN: r84198
2004-07-07 10:21:04 +00:00
Nathan Sidwell
809e3e7fec tree.h (TREE_VIA_VIRTUAL): Rename to ...
* tree.h (TREE_VIA_VIRTUAL): Rename to ...
	(BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
	(BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
	* dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
	* dwarf2out.c (add_data_member_location_attribute): Likewise.
	(gen_inheritance_die): Likewise.
	* tree-dump.c (deque_and_dump): Likewise.
	* doc/c-tree.texi (Binfos): Add under reconstruction note.

	* cp/cp-tree.h (BINFO_MARKED): Remove.
	(BINFO_VTABLE_PATH_MARKED, BINFO_NEW_VTABLE_MARKED,
	BINFO_DEPENDENT_BASE_P, BINFO_LOST_PRIMARY_P,
	BINFO_INDIRECT_PRIMARY_P): Use appropriate BINFO_FLAG_n.
	(SET_BINFO_NEW_VTABLE_MARKED): Use BINFO_VIRTUAL_P.
	* cp/class.c (build_base_path): Use BINFO_VIRTUAL_P.
	(mark_primary_bases, determine_primary_base, base_derived_from,
	dfs_find_final_overrider, dfs_find_final_overrider_q,
	dfs_find_inal_overrider_post, update_vtable_entry_for_fn,
	dfs_modify_vtables, walk_subobject_offsets,
	layout_nonempty_base_or_field, build_base_field,
	build_base_fields, propagate_binfo_offsets, layout_virtual_bases,
	end_of_class, get_vfield_name, dump_class_hierarchy, dump_vtable,
	finish_vtbls, build_vtt_inits, dfs_build_secondary_vptr_vtt_inits,
	build_ctor_vtbl_group, accumulate_vtble_inits,
	dfs_accumulate_vtbls_inits, build_vbase_offset_vtbl_entries,
	build_vcall_offset_vtbl_entries, add_vcall_offset_vtbl_entries_r,
	add_vcall_offset_vtbl_entries_1): Likewise.
	* cp/decl.c (xref_basetypes): Incomming virtual base indicated by
	TREE_TYPE. Adjust.
	* cp/dump.c (cp_dump_tree): Use BINFO_VIRTUAL_P.
	* cp/init.c (finish_init_stmts, sort_mem_initializers,
	emit_mem_initializers, build_vtble_address, expand_member_init,
	push_base_cleanups): Likewise.
	* cp/method.c (do_build_copy_constructor): Likewise.
	* cp/pt.c (instantiate_class_template,
	get_template_base_recursive): Likewise.
	* cp/rtti.c (dfs_class_hint_mark, get_pseudo_ti_init,
	get_pseudo_ti_desc): Likewise.
	* cp/search.c (lookup_base_r, dynamic_cast_base_recurse,
	binfo_from_vbase, binfo_via_virtual, copied_binfo,
	original_binfo): Likewise.
	* cp/semantics.c (finish_base_specifier): Virtualness is indicated
	by TREE_TYPE.
	* cp/tree.c (copy_base_binfos): Use BINFO_VIRTUAL_P.

	* java/java-tree.h (CLASS_HAS_SUPER_FLAG): Use BINFO_FLAG_1.
	* java/class.c (add_interface_do): Use BINFO_VIRTUAL_P.

From-SVN: r84148
2004-07-06 08:51:32 +00:00
Nathan Sidwell
95b4aca6a3 c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
* c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
	* dwarf2out.c (add_data_member_location_attribute): Check for
	TREE_BINFO.
	* tree.c (tree_node_kinds): Add "binfos".
	(binfo_lang_slots): New.
	(make_node_stat): Add TREE_BINFO.
	(make_tree_binfo_stat): New.
	(tree_node_structure): Add TREE_BINFO.
	* tree.def (TREE_BINFO): New.
	* tree.h (REC_OR_UNION_CHECK): Rename to ...
	(RECORD_OR_UNION_CHECK): ... here.
	(NOT_RECORD_OR_UNION_CHECK): New.
	(TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
	(TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
	RECORD_OR_UNION_CHECK.
	(TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
	(TYPE_LANG_SLOT_1): New.
	(BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
	BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
	BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
	(BINFO_ELTS): Remove.
	(BINFO_LANG_SLOT): New.
	(struct tree_binfo): New.
	(binfo_lang_slots): Declare.
	(enum tree_node_structure_enum): Add TS_BINFO.
	(union tree_node): Add binfo.
	(make_tree_binfo_stat): Declare.
	(make_tree_binfo): New.
	(enum tree_node_kind): Add binfo_kind.

	* cp/call.c (enforce_access): Expect TREE_BINFO.
	* cp/class.c (binfo_ctor_vtable): Check TREE_BINFO.
	* cp/cp-tree.h (RECORD_OR_UNION_TYPE_CHECK): Remove.
	(BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF):
	Adjust.
	(BINFO_LANG_ELTS): Remove.
	(BINFO_LANG_SLOTS): New.
	(TYPE_RAISES_EXCEPTIONS, ENUM_TEMPLATE_INFO): Use TYPE_LANG_SLOT_1.
	(CLASSTYPE_TEMPLATE_INFO): Adjust.
	* cp/pt.c (tsubst): Split TREE_BINFO case from TREE_VEC case.
	* cp/search.c (lookup_member): Check TREE_BINFO.
	* cp/semantics.c (perform_or_defer_access_check): Likewise.
	(check_accessibility_of_qualified_id): Check
	deferred_access_no_check.
	* cp/tree.c (make_binfo): Use make_tree_binfo.

	* java/class.c (make_class): Use make_tree_binfo.
	(set_super_info, add_interface_do): Likewise.
	* java/java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.

	* objc/objc-act.c (start_class, objc_declare_protocols,
	start_protocols): Use TYPE_LANG_SLOT_1.
	* objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
	to ...
	(CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
	(CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
	CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
	PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.

From-SVN: r84110
2004-07-05 09:35:44 +00:00
Richard Henderson
c9b9aa64e9 cgraph.h (cgraph_build_static_cdtor): Declare.
* cgraph.h (cgraph_build_static_cdtor): Declare.
        * cgraphunit.c (cgraph_build_static_cdtor): New.
        * c-objc-common.c (build_cdtor): Use it.
        * coverage.c (create_coverage): Likewise.
        * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
        * optabs.c (init_optabs): Don't set gcov_init_libfunc.
java/
        * class.c (registerClass_libfunc): Remove.
        (init_class_processing): Don't set it.
        (emit_register_classes): Take list_p parameter.  Fill it in
        with _Jv_RegisterClass calls.
        * decl.c (java_init_decl_processing): Don't call
        init_resource_processing.
        * jcf-parse.c (java_emit_static_constructor): New.
        (java_parse_file): Call it.
        * resource.c (registerResource_libfunc): Remove.
        (init_resource_processing): Remove.
        (write_resource_constructor): Take list_p parameter.  Fill it in
        with _Jv_RegisterResource calls.
        * java-tree.h: Update prototypes.

From-SVN: r83958
2004-07-01 00:51:12 -07:00
Bryce McKinlay
9c5fdae633 re PR java/1262 (Method with default access can be overridden in another package)
PR java/1262
	* class.c (layout_class_method): Do not override package-private
	method if its in a different package.
	(split_qualified_name): Move here from parse.y. Rename from
	breakdown_qualified. Add comment.
	(in_same_package): Move here from parse.y. Add comment.
	* java-tree.h (break_down_qualified, in_same_package): Declare.
	(in_same_package): Likewise.
	* parse.y (breakdown_qualified, in_same_package): Moved to class.c.
	Callers updated.

From-SVN: r83867
2004-06-29 18:58:44 +01:00
Ranjit Mathew
fe0b9fb522 Formatting fixes.
* expr.c (class_has_finalize_method): Fix method name indentation.
        (expand_java_call): Remove K&R style parameter declaration.
        (expand_invoke): Fix statement indentation.
        (expand_java_field_op): Likewise.
        * parse-scan.y: Fix typo.
        (reset_report): Fix method name indentation.
        * parse.y (unresolved_type_p, build_expr_block): Remove extra blank
        line. Fix typos.
        * verify.c (verify_jvm_instructions): Document parameters, insert
        page break.
        * lang.c (lang_init_source): Fix method name indentation.
        * class.c (common_enclosing_context_p): Likewise.
        (emit_symbol_table): Fix parameter list indentation.
        * decl.c (add_stmt_to_compound, java_add_stmt): Remove K&R style
        parameter declaration.
        * constants.c: Fix copyright notice indentation.
        * typeck.c (find_method_in_superclasses): Fix parameter list
        indentation.
        (find_method_in_interfaces): Likewise.
        * zextract.c (makelong): Fix method name indentation.

From-SVN: r83738
2004-06-27 18:16:49 +00:00
Richard Kenner
44de5aeb00 alias.c (adjust_offset_for_component_ref): Use component_ref_field_offset.
* alias.c (adjust_offset_for_component_ref): Use
	component_ref_field_offset.
	* c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
	* c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
	(gimplify_decl_stmt): Call gimplify_type_sizes for type.
	For decl, call gimplify_one_sizepos and use statement list.
	(gimplify_compound_literal_expr): New arg PRE_P.
	Add statement to PRE_P list and return DECL.
	(c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
	gimplify_compound_literal_expr.
	* c-tree.h (getdecls): Deleted.
	* c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
	(build_array_ref): Add two operands for ARRAY_REF.
	(build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
	COMPOUND_LITERAL_EXPR.
	* coverage.c (tree_coverage_counter_ref): Add new operands
	for ARRAY_REF.
	* emit-rtl.c (component_ref_for_mem_expr): Add new operand
	for COMPONENT_REF.
	(set_mem_attributes_minus_bitpos): Use array_ref_low_bound
	and array_ref_element_size.
	(widen_memory_access):Use component_ref_field_offset.
	* explow.c (update_nonlocal_goto_save_area): Add two operands
	for ARRAY_REF.
	* expr.c (array_ref_element_size, array_ref_low_bound): New functions.
	(component_ref_field_offset): Likewise.
	(get_inner_reference): Use them.
	(expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
	* fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
	(fold_read_from_constant_string): Use array_ref_low_bound.
	Verify that result is a character type.
	(build_fold_indirect_ref): Add two operands for ARRAY_REF.
	* function.c (expand_function_start): Likewise.
	* gimple-low.c (expand_var_p): Delete duplicated line.
	* gimplify.c: Add static decls for local functions.
	(cgraph.h): Now included.
	(create_tmp_var): Remove check for ARRAY_TYPE.
	(copy_if_shared_r): Look at bounds and sizes of types.
	(build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
	(gimplify_exit_expr, shortcut_cond_expr): Likewise.
	(gimplify_save_expr, gimple_push_cleanup): Likewise.
	(gimplify_init_constructor): Likewise.
	WANT_VALUE now bool.
	If empty list with no result wanted, return GS_UNHANDLED.
	Add additional operands for ARRAY_REF and COMPONENT_REF.
	(canonicalize_component_ref): Convert to &array[L].
	(gimplify_array_ref_to_plus): Use array_ref_element_size and
	array_ref_lower_bound.
	(build_addr_expr_with_type, build_addr_expr): New functions.
	(gimplify_compound_lval): WANT_LVALUE now bool.
	Major rework to allow handle_component_p and initialize and
	gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
	COMPONENT_REF.
	(gimplify_array_ref): Deleted.
	(gimplify_self_mod_expr): WANT_VALUE now bool.
	(gimplify_modify_expr): Gimplify to_p and from_p later.
	Factor out code into gimplify_modify_expr_rhs and call twice.
	Move variable-size code earlier and handle PLACEHOLDER_EXPR.
	(gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
	(gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
	(gimplify_expr, case ARRAY_REF): Delete special case.
	Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
	IMAGPART, and REALPART the same way.
	(gimplify_expr, case VIEW_CONVERT_EXPR): New case.
	(gimplify_expr): Call gimplify_variable_sized_compare if applicable.
	Call alloc_stmt_list instead of build_empty_stmt.
	Deal with _REF that's volatile.
	(gimplify_type_sizes, gimplify_one_sizepos): New functions.
	(unshare_body, unvisit_body): New functions.
	(gimplify_body): Call them.
	* stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
	* stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
	* tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
	* tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
	like ARRAY_REF.
	(verify_expr, case ADDR_EXPR): Use handled_component_p.
	* tree-dfa.c (get_virtual_var): Likewise.
	* tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
	New cases to dump new operands; likewise for ARRAY_RANGE_REF.
	* tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
	* tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
	and INDIRECT_REF.
	(get_base_address): Use handled_component_p.
	* tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
	* tree-line.c (walk_tree): Walk more things for types and decls.
	* tree-mudflap.c (mf_build_check_statement_for): Add new operands
	for ARRAY_REF and COMPONENT_REF.
	(mx_xform_derefs_1): Clean up usage of decl sizes.
	* tree-nested.c (build_addr): Use handled_component_p.
	(walk_stmts, case CATCH_EXPR): Add missing "break".
	(get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
	(finalize_nesting_tree_1): Likewise.
	(convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
	and process additional operands.
	(convert_local_reference): Likewise.
	* tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
	ARRAY_RANGE_REF similarly to ARRAY_REF.
	* tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
	like RECORD_TYPE.
	(dump_generic_node, case COMPONENT_REF): Print offset operand.
	(dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
	and print lower bound and element size for both.
	(op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
	* tree-sra.c (csc_build_component_ref): Add new operand.
	(scalarize_call_expr): Use get_base_address.
	* tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
	(maybe_fold_offset_to_array_ref): Rework to handle input having an
	ARRAY_REF, refine handling of lower bound, and add new operands
	for ARRAY_REF.
	(maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
	(maybe_fold_stmt_indirect): Only fold *&B to B if types match.
	(maybe_fold_stmt_addition): Only handle constant lower bound.
	* tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
	Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
	Look at new offset operand of COMPONENT_REF.
	* tree-ssa.c (set_is_used): Use handled_component_p.
	* tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
	(stabilize_reference, case COMPONENT_REF): Likewise.
	(stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
	(recompute_tree_invariant_for_addr_expr): Completely rework to
	be more precise.  Also set TREE_SIDE_EFFECTS.
	(build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
	(build2_stat, build3_stat, build4_stat): For references,
	propagate TREE_THIS_VOLATILE.
	(get_unwidened): Add new operand for COMPONENT_REF.
	(get_narrower): Likewise; use host_integerp for DECL_SIZE.
	* tree.def (COMPONENT_REF): Add new operand.
	(ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
	* tree.h (array_ref_element_size, array_ref_low_bound): New decls.
	(component_ref_field_offset): Likewise.
	* config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
	(alpha_gimplify_va_arg): Likewise.
	* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
	* config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
	* config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
	* config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
	* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
	Likewise.
	* config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
	* config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
	* config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
	Likewise.
	(xstormy16_expand_builtin_va_arg): Likewise.
	* config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.

	* cp/call.c (build_vfield_ref): Add new operand for COMPONENT_REF.
	(build_new_method_call): Likewise.
	* cp/decl.c (local_variable_p_walkfn): Don't walk into types.
	* cp/decl2.c (grok_array_decl): Add new operands for ARRAY_REF.
	(build_anon_union_vars): Add new operand for COMPONENT_REF.
	* cp/init.c (buld_new): Add new operand for ARRAY_REF.
	* cp/method.c (do_build_copy_constructor): New op for COMPONENT_REF.
	(do_build_assign_ref): Likewise.
	* cp/parser.c (cp_parser_direct_new_declarator): Add new operands
	for ARRAY_REF.
	(cp_parser_direct_declarator): Likewise.
	* cp/pt.c (tsubst): Likewise.
	(tsubst_copy, tsubst_copy_and_build): Likewise; also add new operand
 	for COMPONENT_REF.
	* cp/semantics.c (finish_non_static_data_member): Add new operand
	for COMPONENT_REF.
	* cp/typeck.c (build_class_member_access_expr): Likewise.
	(build_class_member_access_expr, finish_class_member_access_expr):
	Likewise.
	(build_ptrmemfunc_access_expr): Likewise.
	(build_array_ref): Add new operands for ARRAY_REF.
	* cp/typeck2.c (split_nonconstant_init_1): Likewise; COMPONENT_REF too.
	* cp/tree.c (count_trees_r, no_linkage_helper): Don't walk in types.

	* fortran/f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
	* fortran/trans-array.c (gfc_conv_descriptor_data): Add operand
	for COMPONENT_REF.
	(gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
	(gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
	(gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
	* fortran/trans-common.c (create_common): Likewise.
	* fortran/trans-expr.c (gfc_conv_component_ref): Likewise.
	* fortran/trans-io.c (set_parameter_value): Likewise.
	(set_parameter_ref, set_string, set_flag, io_result): Likewise.
	(transfer_expr): Likewise.
	* fortran/trans-decl.c (gfc_trans_auto_character_variable):
	Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
	(gfc_simplify_function): New function.
	(gfc_generate_function-code): Properly handle nested functions.
	* fortran/trans.c (gfc_build_array_ref): Add two new operands
	for ARRAY_REF.

	* java/class.c (build_class_ref): Add new operand for COMPONENT_REF.
	(build_static_field_ref): Likewise and add new operands for ARRAY_REF.
	* java/constants.c (build_ref_from_constant_pool): Likewise.
	* java/expr.c (build_java_array_length_access): Likewise.
	(build_get_class, build_field_ref, build_known_method_ref): Likewise.
	(invoke_build_dtable, build_invokevirtual): Likewise.
	(build_invokeinterface, java_expand_expr): Likewise.
	(emit_init_test_initialization): Likewise.
	* java/java-gimplify.c (java_gimplify_new_array_init): Likewise.
	* java/parse.y (make_qualifed_name, build_array_ref): Likewise.

	* objc/ojbc-act.c (generate_static_references): Add additional
	operands to ARRAY_REF.
	(generate_strings, build_method_prototype_list_template): Likewise.
	(generate_protocol_list): Likewise.

From-SVN: r83474
2004-06-21 23:07:05 -04:00
Paolo Bonzini
2f8e398bf4 coverage.c: Remove argument to rest_of_compilation.
gcc/ChangeLog:
2004-06-16  Paolo Bonzini  <bonzini@gnu.org>

	* coverage.c: Remove argument to rest_of_compilation.
	* expr.c (execute_expand, set_save_expr_context, pass_expand): New.
	* passes.c (rest_of_compilation): Remove argument.
	(pass_rest_of_compilation): New.
	(rest_of_handle_final, rest_of_handle_delay_slots,
	rest_of_handle_stack_regs, rest_of_handle_variable_tracking
	rest_of_handle_machine_reorg, rest_of_handle_regrename
	rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
	rest_of_handle_regmove, rest_of_handle_tracer
	rest_of_handle_if_conversion, rest_of_handle_if_after_combine
	rest_of_handle_web, rest_of_handle_branch_prob
	rest_of_handle_value_profile_transformations, rest_of_handle_cfg
	rest_of_handle_addressof, rest_of_handle_jump_bypass
	rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
	Check that the two arguments are actually superfluous.
	* toplev.h (rest_of_compilation): Adjust prototype.
	* tree-optimize.c (register_dump_files): Add properties argument.
	Track validity of passes.  Only initialize dump files for
	tree-based passes.  Store the full set of provided passes in
	the pass.
	(init_tree_optimization_passes): Register pass_expand and
	pass_rest_of_compilation.
	(execute_one_pass): Do not track the presence of required properties
	here.  Set in_gimple_form.  Do not update current_properties.
	(current_properties): Remove.
	(set_save_expr_context): Remove.
	(tree_rest_of_compilation): Do not set in_gimple_form.  Do not
	expand to RTL here, and do not call rest_of_compilation.  Push
	GGC context even before gimplification.
	* tree-pass.h (PROP_rtl, PROP_trees): New flags.
	(pass_expand, pass_rest_of_compilation): Declare.

gcc/java/ChangeLog:
2004-06-16  Paolo Bonzini  <bonzini@gnu.org>

	* java/class.c (emit_register_classes): Remove argument to
	rest_of_compilation.
	* java/resource.c (write_resource_constructor): Likewise.

From-SVN: r83225
2004-06-16 07:25:53 +00:00
Paolo Bonzini
096f22f424 function.h (struct function): Remove cannot_inline field.
gcc/ChangeLog:
2004-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* function.h (struct function): Remove cannot_inline field.
	(current_function_cannot_inline): Remove.
	* passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
	Simplify conditionals to ignore warn_return_type.
	* tree-optimize.c (tree_rest_of_compilation): Do not reset
	DECL_DEFER_OUTPUT.
	* objc/objc-act.c (build_module_descriptor, finish_method_def):
	Do not set current_function_cannot_inline.

gcc/java/ChangeLog:
2004-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* class.c (emit_register_classes): Make the function uninlinable,
	do not set current_function_cannot_inline.
	* resource.c (write_resource_constructor): Do not reset
	flag_inline_functions around rest_of_compilation.

gcc/cp/ChangeLog:
2004-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* cp-tree.h (struct language_function): Remove cannot_inline.
	* decl.c (save_function_data): cannot_inline is no more.
	(cxx_push_function_context): Likewise.
	* decl2.c (start_objects, start_static_storage_duration_function):
	Reset DECL_INLINE, set DECL_UNINLINABLE.

From-SVN: r83181
2004-06-15 12:46:07 +00:00
Diego Novillo
6de9cd9a88 Merge tree-ssa-20020619-branch into mainline.
From-SVN: r81764
2004-05-13 02:41:07 -04:00
Andrew Haley
af434fa7a1 parse.y (create_class): Set TYPE_VFIELD.
2004-05-10  Andrew Haley  <aph@redhat.com>

	* parse.y (create_class): Set TYPE_VFIELD.
	* decl.c (java_init_decl_processing): Likewise.

	* expr.c (build_invokevirtual): Remove DECL_VINDEX offset adjustment.
	* class.c (make_method_value): Replace DECL_VINDEX with call to
	get_method_index().
	(get_dispatch_vector): Likewise.
	(layout_class_method): Likewise.
	Replace set of DECL_VINDEX with call to set_method_index().
	(set_method_index): New function.
	(get_method_index): New function.
	* java-tree.h (set_method_index): New function decl.
	(get_method_index): New function decl.

From-SVN: r81672
2004-05-10 16:21:08 +00:00
Bryce McKinlay
f531010820 class.c (make_class_data): Add new field aux_info.
2004-04-19  Bryce McKinlay  <mckinlay@redhat.com>

	* class.c (make_class_data): Add new field aux_info.
	* decl.c (java_init_decl_processing): Push type and decl for
	`aux_info'.

2004-04-19  Bryce McKinlay  <mckinlay@redhat.com>

	* gcj/cni.h (JvAllocObject): Remove these obsolete,
	undocumented CNI calls.
	* include/java-interp.h (_Jv_InterpClass): No longer
	extends java.lang.Class.
	* java/lang/Class.h (Class): Add new field `aux_info'.
	* boehm.cc (_Jv_MarkObj): Update java.lang.Class marking.
	* defineclass.cc: Remove Class<->_Jv_InterpClass casts.
	Use Class->aux_info instead.
	* jni.cc (_Jv_JNI_AllocObject): Use _Jv_AllocObject.
	* resolve.cc: Remove Class<->_Jv_InterpClass casts.
	Use Class->aux_info instead.
	* java/io/natObjectInputStream.cc (allocateObject): Use
	_Jv_AllocObject.
	* java/lang/natClass.cc (newInstance): Likewise.
	* java/lang/natClassLoader.cc (_Jv_NewClass): Likewise.
	* java/lang/natObject.cc (clone): Likewise.
	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise.
	* java/lang/natVMClassLoader.cc (defineClass): Don't use
	JvAllocObject. Allocate klass->aux_info here for interpreted
	class.

From-SVN: r80875
2004-04-20 02:38:46 +01:00
Bryce McKinlay
d7afe286b3 [multiple changes]
2004-04-14  Andrew Haley  <aph@redhat.com>
            Bryce McKinlay  <mckinlay@redhat.com>

	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Use
	_Jv_LookupInterfaceMethodIdx for calls to interfaces.
	* include/jvm.h (_Jv_CallAnyMethodA): Add new 	face' arg.

	* testsuite/libjava.lang/InvokeInterface.java: New file.
	* testsuite/libjava.lang/InvokeInterface.out: New file.

2004-04-14  Bryce McKinlay  <mckinlay@redhat.com>

	* class.c (get_interface_method_index): New function. Return
	dispatch index for interface method.
	(make_method_value): For interface methods, set index field to
	iface dispatch index, not DECL_VINDEX.
	* expr.c (build_invokeinterface): Use get_interface_method_index.

From-SVN: r80684
2004-04-14 18:45:20 +01:00
Kazu Hirata
c048d56d7e class.c, [...]: Fix comment typos.
* class.c, gjavah.c, lang.c: Fix comment typos.
	* gcj.texi: Fix typos.

From-SVN: r79744
2004-03-20 14:03:34 +00:00
Per Bothner
24d82bce7a class.c (assume_compiled_node_struct): Rename type to class_flag_node_struct, as it is now also used for enable_assertions.
* class.c (assume_compiled_node_struct):  Rename type to
	class_flag_node_struct, as it is now also used for enable_assertions.
	Rename assume_compiled_node typedef.  Rename excludep field to value.
	(find_assume_compiled_node):  Rename function to find_class_flag_node.
	Minor optimization - avoid needless strlen.
	(add_assume_compiled):  Some tweaking and optimization.
	Rename and generalize to add_class_flag takem an extra parameter.
	(add_assume_compled):  New just calls add_class_flag.
	(add_enable_assert, enable_assertions):  New functions.
	(enable_assert_tree):  New static.
	* java-tree.h (add_enable_assert, enable_assertions): New declarations.
	* lang.opt (fenable-assertions, fenable-assertions=,
	fdisable-assertions, fdisable-assertions=):  New options.
	* lang.c (java_handle_option):  Handle new options.
	* parse.y (build_incomplete_class_ref):  Handle class$ in an inner
	class in an interface - create helper class nested in outer interface.
        (build_assertion):  Short-circuit if enable_assertions is false.

From-SVN: r79710
2004-03-19 15:10:55 -08:00
Andrew Haley
bddefd4f80 re PR java/14231 (Incorrect interface method called when compiling against .class files)
2004-02-26  Andrew Haley  <aph@redhat.com>

        PR java/14231:
        * parse.y (check_interface_throws_clauses): Check for
        !METHOD_INVISIBLE (iface_method).
        * class.c (layout_class_methods): Check for CLASS_INTERFACE as
        well as CLASS_ABSTRACT.

From-SVN: r78505
2004-02-26 15:34:05 +00:00
Steven Bosscher
1da326c335 (c-decl.c, [...]): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
* (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
        function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
        tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
        * ada/utils.c: Likewise.
        * cp/decl.c: Likewise.
        * f/com.c: Likewise.
        * java/class.c: Likewise.

From-SVN: r77985
2004-02-17 21:33:43 +00:00
Michael Chastain
71e6838406 class.c (gen_indirect_dispatch_tables): Fix string length calculations.
2004-01-15  Michael Chastain  <mec.gnu@mindspring.com>

        * class.c (gen_indirect_dispatch_tables): Fix string length
        calculations.

From-SVN: r75913
2004-01-15 10:24:25 +00:00
Andrew Haley
85194ee94a re PR java/12755 (Binary Compatibility: Resolving static methods and classes is not thread safe)
2004-01-09  Andrew Haley  <aph@redhat.com>

	PR java/12755:
	* parse.y (java_fix_constructors):  Set output_class.
	(java_reorder_fields): Likewise.
	(java_layout_classes): Likewise.
	(java_expand_classes): Generate indirect dispatch tables.
	(java_expand_classes): Set output_class.
	(java_finish_classes): Likewise.
	* lang.c (java_init): Turn on always_initialize_class_p if we're
	using indirect dis[atch.
	(java_decl_ok_for_sibcall): Use output_class, not current_class.
	(java_get_callee_fndecl): Use class local atable.
	* jcf-parse.c
	(always_initialize_class_p): Decl moved to java-tree.h.
	(HANDLE_CLASS_INFO): Set output_class.
	(read_class): Likewise.
	(parse_class_file): Call gen_indirect_dispatch_tables.
	(parse_zip_file_entries): Set output_class.
	(java_parse_file): Set output_class.  Don't emit symbol tables.
	* java-tree.h (output_class): New.
	Remove global declarations for otable, atable, and ctable.
	(always_initialize_class_p): moved here from decl.c.
	(DECL_OWNER): New.
	(TYPE_ATABLE_METHODS, TYPE_ATABLE_SYMS_DECL, TYPE_ATABLE_DECL,
	TYPE_OTABLE_METHODS, TYPE_OTABLE_SYMS_DECL, TYPE_OTABLE_DECL,
	TYPE_CTABLE_DECL, TYPE_CATCH_CLASSES): New.
	(struct lang_type): Add otable_methods, otable_decl,
	otable_syms_decl, atable_methods, atable_decl, atable_syms_decl,
	ctable_decl, catch_classes, type_to_runtime_map.
	* expr.c (build_field_ref): Make otable, atable, and ctable class
	local rather than global.
	(build_known_method_ref): Likewise.
	(build_invokeinterface): Likewise.
	(java_expand_expr): Pass runtime type (rather than actual type) to
	expand_start_catch.
	* except.c (prepare_eh_table_type): Create TYPE_TO_RUNTIME_MAP for
	this class.  Look up each class in that map to delete duplicates.
	(expand_end_java_handler): Pass runtime type (rather than actual
	type) to expand_start_catch.
	* decl.c: (always_initialize_class_p): Decl moved to java-tree.h.
	(do_nothing): New.
	(java_init_decl_processing): Rearrange things.  Remove global
	declarations of otable, atable, and ctable.
	(java_init_decl_processing): Make lang_eh_runtime_type do_nothing.
	(java_expand_body): Set output_class.
	* constants.c (build_constant_data_ref): Use output_class, not
	current_class.
	(alloc_name_constant): Likewise.
	* class.c (gen_indirect_dispatch_tables): New.
	(build_class_ref): Generate hard reference to superclass, even if
	using indirect dispatch.
	(build_static_field_ref): Use class local atable.
	(make_class_data): Generate hard reference to superclass, even if
	using indirect dispatch.
	Generate symbolic references to interfaces when using indirect
	dispatch.
	(make_class_data): Emit otable, atable, and ctable.
	Make otable, atable, and ctable class local rather than global.
	(emit_catch_table): Make otable, atable, and ctable class local
	rather than global.

From-SVN: r75590
2004-01-09 17:08:44 +00:00
Kazu Hirata
3a976c72d6 class.c: Remove uses of "register" specifier in declarations of arguments and local...
* class.c: Remove uses of "register" specifier in
	declarations of arguments and local variables.
	* decl.c: Likewise.
	* expr.c: Likewise.
	* gjavah.c: Likewise.
	* jcf-dump.c: Likewise.
	* jcf-io.c: Likewise.
	* jcf-parse.c: Likewise.
	* jcf-write.c: Likewise.
	* keyword.h: Likewise.
	* parse.y: Likewise.
	* typeck.c: Likewise.
	* verify.c: Likewise.

From-SVN: r74882
2003-12-20 15:38:28 +00:00
Michael Koch
02972627ab class.c (make_class_data): Push field value to 'hack_signers' instead of 'signers'.
2003-12-03  Michael Koch  <konqueror@gmx.de>

	* class.c (make_class_data):
	Push field value to 'hack_signers' instead of 'signers'.
	* decl.c (java_init_decl_processing):
	Push field 'hack_signers' instead of 'signers'.

From-SVN: r74246
2003-12-03 21:26:26 +00:00
Andrew Haley
904715853c lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
2003-10-22  Andrew Haley  <aph@redhat.com>

        * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): New.
        (java_get_callee_fndecl): New.

        * jcf-parse.c (java_parse_file): Call emit_catch_table().

        * java-tree.h (ctable_decl): New.
        (catch_classes):  New.
        (java_tree_index): Add JTI_CTABLE_DECL, JTI_CATCH_CLASSES.

        * decl.c (java_init_decl_processing): Add catch_class_type.
        Add ctable_decl.
        Add catch_classes field.

        * class.c (build_indirect_class_ref): Break out from
        build_class_ref.
        (make_field_value): Check flag_indirect_dispatch.
        (make_class_data): Ditto.
        Tidy uses of PUSH_FIELD_VALUE.
        Add field catch_classes.
        (make_catch_class_record): New.

        * java-tree.h (PUSH_FIELD_VALUE): Tidy.

2003-10-22  Andrew Haley  <aph@redhat.com>

        * java/lang/natClass.cc (initializeClass): Call
        _Jv_linkExceptionClassTable.
        (_Jv_LinkSymbolTable): Call )_Jv_ThrowNoSuchMethodError.  Call
        _Jv_Defer_Resolution on a method whose ncode is NULL.
        (_Jv_linkExceptionClassTable): New function.
        (_Jv_LayoutVTableMethods): If superclass looks like a constant pool
        entry, look it up.
        * java/lang/Class.h (struct _Jv_CatchClass): New.
        (_Jv_linkExceptionClassTable): New friend.
        (_Jv_Defer_Resolution): New friend.
        (class Class.catch_classes): New field.
        * include/java-interp.h (Jv_Defer_Resolution): New method.
        (_Jv_PrepareClass): Make a friend of _Jv_MethodBase.
        (_Jv_MethodBase.deferred): New field.
        (_Jv_Defer_Resolution): New function.
        * resolve.cc (_Jv_PrepareClass): Resolve deferred handlers.
        * exception.cc (get_ttype_entry): Change return type to void**.
        (PERSONALITY_FUNCTION): Remove all code related to using a
        Utf8Const* for a match type.  Change match type to be a pointer to
        a pointer, rather than a pointer to a Class.
        * defineclass.cc (handleCodeAttribute): Initialize
        method->deferred.
        (handleMethodsEnd): Likewise.

From-SVN: r72886
2003-10-24 09:29:43 +00:00
Tom Tromey
ae125b177e decl.c (java_init_decl_processing): Declare signers field.
* decl.c (java_init_decl_processing): Declare signers field.
	* class.c (make_class_data): Set signers field.

From-SVN: r72270
2003-10-09 16:21:56 +00:00
Andrew Haley
9dfc2ec225 jcf-parse.c (java_parse_file): Write otable and atable.
2003-10-01  Andrew Haley  <aph@redhat.com>

        * jcf-parse.c (java_parse_file): Write otable and atable.
        * java-tree.h (atable_methods): New.
        (atable_decl): New.
        (atable_syms_decl): New.
        (enum java_tree_index): Add JTI_ATABLE_METHODS, JTI_ATABLE_DECL,
        JTI_ATABLE_SYMS_DECL.  Rename JTI_METHOD_SYMBOL* to JTI_SYMBOL*.
        (symbol_*type): Rename method_symbol* to symbol*type.
        (emit_offset_symbol_table): Delete.
        (emit_symbol_table): New.
        (get_symbol_table_index): New.
        (atable_type): New.
        * expr.c (build_field_ref): Handle flag_indirect_dispatch.
        (build_known_method_ref): Likewise.
        (get_symbol_table_index): Rename from get_offset_table_index.
        Parameterize to allow re-use by differing types of symbol table.
        (build_invokevirtual): Pass table to get_offset_table_index.
        * decl.c (java_init_decl_processing): Push types and decls for
        atable and atable_syyms.
        * class.c (build_static_field_ref): Handle flag_indirect_dispatch.
        (make_class_data): Add new fields atable and atable_syms.
        (emit_symbol_table): Rename from emit_offset_symbol_table.
        Parameterize to allow re-use by different types of symbol table.
        (build_symbol_entry): Renamed from build_method_symbols_entry.

2003-10-01  Andrew Haley  <aph@redhat.com>

        * java/lang/natClass.cc (initializeClass): Check for otable and
        atable.
        (_Jv_LinkOffsetTable): Check for existence of atable.  Rewrite
        loops using for().  Search superinterfaces.  Check for fields as
        well as methods.  Initialize atable as well as otable: check for
        static methods as well as virtual methods.
        * java/lang/Class.h (struct _Jv_AddressTable): New.
        (atable): New.
        (atable_syms): New.
        * include/jvm.h (_Jv_equalUtf8Consts): constify.
        * prims.cc (_Jv_equalUtf8Consts): constify.

From-SVN: r71979
2003-10-01 16:22:13 +00:00