Commit Graph

567 Commits

Author SHA1 Message Date
Simon Martin
b576b3a7fd re PR java/8923 (ICE when modifying a variable decleared "final static")
2006-08-10  Simon Martin  <simartin@users.sourceforge.net>

        PR java/8923
        * parse.y (build_incdec): Emit an error instead of an ICE if '++'
        or '--' is used with a constant operand.
        (java_complete_lhs): When processing a '++' or '--' expression,
        don't call java_complete_tree but java_complete_lhs, so that a
        static final variable operand is never replaced by its value. This
        avoids an ICE later on.
        (patch_unaryop): Fixed typo in comment.

From-SVN: r116069
2006-08-10 19:35:07 +00:00
Andrew Haley
313ab5ee9c expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to get_symbol_table_index().
2006-06-08  Andrew Haley  <aph@redhat.com>

        * expr.c (build_field_ref): Pass NULL_TREE as SPECIAL arg to
        get_symbol_table_index().
        (maybe_rewrite_invocation): Set SPECIAL if we need to access a
        private method.
        (build_known_method_ref): New arg: special.  Pass it to
        get_symbol_table_index.
        (get_symbol_table_index): Put SPECIAL in the TREE_PURPOSE field of
        the method list.
        (build_invokevirtual): New arg: special.  Pass it to
        get_symbol_table_index.
        (expand_invoke): New variable: special.
        Pass it to maybe_rewrite_invocation().
        Pass it to build_known_method_ref().
        * class.c (build_symbol_entry): Add new arg: special.  Use it to
        build the symbol table conbstructor.
        (emit_symbol_table): Extract SPECIAL from the method list and pass
        it to build_symbol_entry().
        * parse.y (patch_invoke): Call maybe_rewrite_invocation() and set
        special accordingly.

From-SVN: r114487
2006-06-08 14:01:40 +00:00
Andrew Haley
b2ed63b4aa [multiple changes]
2006-05-04  Andrew Haley  <aph@redhat.com>

        * class.c (make_field_value): Always build_address_of fdecl if
        there is an initializer.

2006-05-03  Andrew Haley  <aph@redhat.com>

        PR libgcj/27352
        * expr.c (maybe_rewrite_invocation): New function.
        (rewrite_arglist_getclass): Likewise.
        (rules): New.
        (expand_invoke): Call maybe_rewrite_invocation.
        * parse.y (patch_invoke): Likewise.
        * java-tree.h: (maybe_rewrite_invocation): New function.

2006-05-03  Andrew Haley  <aph@redhat.com>

        PR libgcj/27352
        * java/lang/Class.java (getClassLoader(Class)): New.
        forName(String, Class): New.
        * java/lang/natClass.cc (getClassLoader(Class)): New.

2006-05-02  Andrew Haley  <aph@redhat.com>

        * prims.cc (_Jv_NewMultiArray): Check for phantom class.

From-SVN: r113532
2006-05-04 18:44:53 +00:00
Tom Tromey
1549c4e552 re PR java/26042 (ICE in mark_reference_fields, at java/boehm.c:105)
gcc/java
	PR java/26042:
	* parse.y (java_reorder_fields): Reset superclass field's size as
	well.
libjava
	PR java/26042:
	* testsuite/libjava.compile/pr26042.java: New file.

From-SVN: r112540
2006-03-30 16:39:17 +00:00
Tom Tromey
531e214a01 re PR java/26390 (Problem dispatching method call when method does not exist in superclass)
gcc/java
	PR java/26390:
	* parse.y (find_most_specific_methods_list): Added 'class'
	argument.
	(lookup_method_invoke): Updated.
libjava
	PR java/26390:
	* testsuite/libjava.lang/pr26390.out: New file.
	* testsuite/libjava.lang/pr26390.java: New file.
	* sources.am, Makefile.in: Rebuilt.
	* scripts/makemake.tcl: Compile gnu/java/awt/peer/swing.

From-SVN: r112499
2006-03-29 16:31:53 +00:00
Tom Tromey
2afd35b338 * parse.y (analyze_clinit_body): Ignore empty statements.
From-SVN: r112092
2006-03-15 17:39:16 +00:00
Roger Sayle
5460aa9c92 decl.c (java_init_decl_processing): Create char_type_node as a regular INTEGER_TYPE node.
* decl.c (java_init_decl_processing): Create char_type_node as a
	regular INTEGER_TYPE node.
	(push_promoted_type): Preserve TYPE_STRING_FLAG on types.
	* typeck.c (convert): No longer check for CHAR_TYPEs but instead
	test for char_type_node and promoted_char_type_node as special
	instances of INTEGER_TYPE tree codes.
	(promote_type,build_java_signature): Likewise.
	* jcf-write.c (adjust_typed_op): Likewise.
	* mangle.c (mangle_type): Likewise.
	* parse.y (do_unary_numeric_promotion): No longer handle CHAR_TYPE.
	* parse.h (JINTEGRAL_TYPE_P): Likewise.

From-SVN: r110592
2006-02-04 18:57:53 +00:00
Andrew Haley
6bb862cc97 re PR java/21428 (bogus warning: unused parameter 'this')
2006-01-30  Andrew Haley  <aph@redhat.com>

        PR java/21428
        * parse.y: (source_start_java_method): Mark DECL_ARTIFICIAL("this").

From-SVN: r110400
2006-01-30 15:40:14 +00:00
Tom Tromey
86bcd3a224 re PR java/25429 (can't see private static final int CREATE = 1)
gcc/java:
	PR java/25429
	* parse.y (resolve_expression_name): Don't generate accessor
	methods for constant fields.
libjava:
	* testsuite/libjava.compile/rh175833.java: New file.
	* testsuite/libjava.compile/pr25429.java: New file.

Co-Authored-By: Andrew Haley <aph@redhat.com>

From-SVN: r108608
2005-12-16 00:00:43 +00:00
Tom Tromey
53bbb42e57 re PR java/25283 (gcj generates invalid signature)
PR java/25283:
	* parse.y (patch_new_array_init): Revert previous patch.
	(lookup_method_invoke): Use size-less array type when creating an
	anonymous constructor.

From-SVN: r108143
2005-12-07 00:31:58 +00:00
Tom Tromey
45c76dbb43 parse.y (patch_new_array_init): Don't set length on array.
gcc/java:
	* parse.y (patch_new_array_init): Don't set length on array.
libjava:
	* testsuite/libjava.compile/rh174912.java: New file.

From-SVN: r108099
2005-12-06 02:30:11 +00:00
Ranjit Mathew
9f1dfd1618 re PR java/24127 (ICE in libjava.compile/PR6865.java reported as "PASS" in testsuite.)
PR java/24127
	* parse.y (method_header): Make the result of the rule a NULL_TREE
	when a parsing error occurs.

From-SVN: r104899
2005-10-03 17:30:38 +00:00
James A. Morrison
c298ec4e20 builtins.c (max_builtin, [...]): Use fold_buildN.
2005-09-18  James A. Morrison  <phython@gcc.gnu.org>

        * builtins.c (max_builtin, min_builtin, abs_builtin,
        java_build_function_call_expr): Use fold_buildN.
        * class.c (layout_class_method): Likewise.
        * expr.c (java_truthvalue_conversion, build_java_jsr,
        build_java_arrayaccess, expand_java_arrayload, expand_iinc,
        build_java_binop, build_field_ref, expand_compare,
        build_known_method_ref, build_invokevirtual,
        process_jvm_instruction): Likewise.
        * parse.y (patch_binop, patch_exit_expr): Likewise.
        * typeck.c (convert_ieee_real_to_integer): Likewise.
        (convert): Don't call fold after convert_ieee_real_to_integer.

From-SVN: r104407
2005-09-18 19:10:15 +00:00
Bryce McKinlay
c629e611eb re PR java/23891 (Problem folding static fields across packages)
2005-09-14  Bryce McKinlay  <mckinlay@redhat.com>

        PR java/23891
        * parse.y (maybe_create_class_interface_decl): Set TYPE_PACKAGE for
        the newly created type. Set import lists here, not in create_class.
        (jdep_resolve_class): Set current_class.
        (do_resolve_class): Use current_class's TYPE_PACKAGE to determine
        the current package context, not ctxp->package.
        (cicp_cache): Removed.
        (class_in_current_package): Simplify implementation using
	TYPE_PACKAGE.
        * jcf-parse.c (give_name_to_class): Set TYPE_PACKAGE.
        * java-tree.h (TYPE_PACKAGE): New macro.
        (struct lang_type): New member 'package'.

From-SVN: r104305
2005-09-15 15:13:03 +01:00
Kazu Hirata
cd64dc985a check-init.c, [...]: Fix comment typos.
* check-init.c, decl.c, expr.c, gcj.texi, java-tree.h,
	jcf-parse.c, jcf.h, parse.h, parse.y, typeck.c: Fix comment
	typos.  Follow spelling conventions.

From-SVN: r103927
2005-09-06 02:25:00 +00:00
Ranjit Mathew
75d1a48521 re PR java/23431 (gcj allows overriding with more restrictive access)
PR java/23431
	* typeck.c (lookup_do): Look up interfaces for the original class,
	not the base class.
	* parse.y (java_check_regular_methods): Fix diagnostic message for
	more restrictive overriding of a method from an interface.

From-SVN: r103909
2005-09-05 14:57:25 +00:00
Ranjit Mathew
3881a11b4a re PR java/19870 (gcj -C doesn't generate accessors for private members across nested class boundaries)
PR java/19870
	* parse.y (nested_field_access_p): Rename to nested_member_access_p
	and expand to handle method accesses across nested classes.
	(build_outer_method_access_method): Rename to
	build_nested_method_access_method.  Minor adjustments to comments.
	(resolve_expression_name): Use the newly-renamed
	nested_member_access_p method.
	(resolve_qualified_expression_name): Likewise.
	(patch_method_invocation): Also consider static methods for access
	method generation.  Minor adjustments to comments.
	(maybe_use_access_method): Use the more general
	nested_memeber_access_p to determine access across nested class
	boundaries.  Allow THIS_ARG to be NULL (for static methods).

From-SVN: r103163
2005-08-16 18:22:31 +00:00
Andrew Haley
74b002ba34 [multiple changes]
2005-08-10  Andrew Haley  <aph@redhat.com>

        * java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
        type mismatches to make legal GIMPLE.

2005-08-10  Robin Green <greenrd@greenrd.org>

        PR java/23230:
        * parse.y (maybe_use_access_method): Generalize check from
        java.lang.Object to any superclass of current_class

From-SVN: r102988
2005-08-11 11:49:26 +00:00
Nathan Sidwell
063fb392d2 class.c (build_class_ref): Wrap the primary class type in a NOP_EXPR.
* class.c (build_class_ref): Wrap the primary class type in a
	NOP_EXPR.
	* parse.y (java_complete_lhs) <COMPONENT_REF case>: Extract the
	primary class type from the NOP_EXPR in which it was placed.

From-SVN: r102859
2005-08-08 14:56:18 +00:00
Giovanni Bajo
4038c495fc Make CONSTRUCTOR use VEC to store initializers.
* c-common.c (complete_array_type): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
	(pp_c_constructor_elts): New function.
	* c-pretty-print.h (pp_c_constructor_elts): Declare.
	* c-typeck.c (build_function_call, build_c_cast, digest_init,
	struct constructor_stack, struct initializer_stack,
	constructor_elements, push_init_level, pop_init_level,
	add_pending_init, find_init_member, output_init_element): Update to
	cope with VEC in CONSTRUCTOR_ELTS.
	* coverage.c (build_fn_info_value, build_ctr_info_value,
	build_gcov_info): Likewise.
	* expr.c (categorize_ctor_elements_1, store_constructor,
	expand_expr_real_1): Likewise.
	* fold-const.c (fold_ternary): Likewise.
	* gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
	gimplify_init_constructor, gimplify_expr): Likewise.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
	node.
	* tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* tree-sra.c (generate_element_init_1): Likewise.
	* tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-vect-generic.c (expand_vector_piecewise): Likewise.
	* tree-vect-transform.c (vect_get_vec_def_for_operand):
	(get_initial_def_for_reduction): Likewise.
	* tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
	value handle in annotations.
	* tree.c (tree_node_kind, tree_code_size, make_node_stat,
	tree_node_structure): Add support for constr_kind.
	(build_vector_from_ctor, build_constructor_single,
	build_constructor_from_list): New functions.
	(build_constructor): Update to take a VEC instead of a TREE_LIST.
	(simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
	Update to cope with VEC in CONSTRUCTOR_ELTS.
	* tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
	* tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
	CONSTRUCTOR_APPEND_ELT): New macros.
	(struct constructor_elt, struct	tree_constructor): New data types.
	(union tree_node): Add tree_constructor field.
	* treestruct.def: Define TS_CONSTRUCTOR.
	* varasm.c (const_hash_1, compare_constant, copy_constant,
	compute_reloc_for_constant, output_addressed_constants,
	initializer_constant_valid_p, output_constant,
	array_size_for_constructor, output_constructor): Update to cope with
	VEC in CONSTRUCTOR_ELTS.
	* vec.h (VEC_empty, VEC_copy): New macros.

ada/
	Make CONSTRUCTOR use VEC to store initializers.
	* decl.c (gnat_to_gnu_entity): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* trans.c (extract_values): Likewise.
	* utils.c (convert, remove_conversions): Likewise.
	* utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
	gnat_build_constructor): Likewise.

cp/
	Make CONSTRUCTOR use VEC to store initializers.
	* call.c (convert_default_arg): Update call to digest_init.
	* class.c (dump_class_hierarchy, dump_array): Update to cope with
	VEC in CONSTRUCTOR_ELTS.
	* cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
	(finish_compound_literal, digest_init): Update declaration.
	* decl.c (struct reshape_iter): New data type.
	(reshape_init_array): Rename to...
	(reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
	(reshape_init): Rewrite from scratch. Split parts into...
	(reshape_init_array, reshape_init_vector, reshape_init_class,
	reshape_init_r): New functions.
	(check_initializer): Update call to reshape_init. Remove obsolete
	code.
	(initialize_artificial_var, cp_complete_array_type): Update to cope
	with VEC in CONSTRUCTOR_ELTS.
	* decl2.c (grokfield): Update calls to digest_init.
	(mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
	* error.c (dump_expr_init_vec): New function.
	(dump_expr): Use dump_expr_init_vec.
	* init.c (build_zero_init, build_vec_init): Update to cope with VEC
	in CONSTRUCTOR_ELTS.
	(expand_default_init): Update call to digest_init.
	* parser.c  (cp_parser_postfix_expression): Use a VEC for the
	initializers.
	(cp_parser_initializer_list): Build a VEC of initializers.
	* pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
	in CONSTRUCTOR_ELTS.
	* rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
	ptm_initializer, class_initializer, get_pseudo_ti_init): Use
	build_constructor_from_list instead of build_constructor.
	* semantics.c (finish_compound_literal): Update call to digest_init.
	* tree.c (stabilize_init): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* typeck.c (build_ptrmemfunc1): Likewise.
	* typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
	Likewise.
	(store_init_value): Use build_constructor_from_list and update call
	to digest_init.
	(digest_init): Rewrite.
	(process_init_constructor): Rewrite from scratch. Split into...
	(process_init_constructor_array, picflag_from_initializer,
	process_init_constructor_record, process_init_constructor_union):
	New functions.
	(PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
	New macros.
	(build_functional_cast): Use build_constructor_from_list instead of
	build_constructor.

fortran/
	Make CONSTRUCTOR use VEC to store initializers.
	* trans-array.c (gfc_build_null_descriptor,
	gfc_trans_array_constructor_value, gfc_conv_array_initializer):
	Update to cope with VEC in CONSTRUCTOR_ELTS.
	* trans-common.c (create_common): Likewise.
	* trans-expr.c (gfc_conv_structure): Likewise.
	* trans-stmt.c (gfc_trans_character_select): Use
	build_constructor_from_list instead of build_constructor.

java/
	Make CONSTRUCTOR use VEC to store initializers.
	* check-init.c (check_init): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* class.c (make_field_value, make_method_value, get_dispatch_table,
	make_class_data, emit_symbol_table, emit_catch_table,
	emit_assertion_table): Use build_constructor_from_list instead of
	build_constructor.
	* constants.c (build_constants_constructor): Likewise.
	* java-gimplify.c (java_gimplify_new_array_init): Update to cope with
	VEC in CONSTRUCTOR_ELTS.
	* java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
	PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
	of a TREE_LIST.
	* jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* parse.y (build_new_array_init): Use build_constructor_from_list
	instead of build_constructor.
	(patch_new_array_init): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	(array_constructor_check_entry): Likewise.

objc/
	Make CONSTRUCTOR use VEC to store initializers.
	* objc-act.c (objc_build_constructor): Use build_constructor_from_list
	instead of build_constructor.

testsuite/
	Make CONSTRUCTOR use VEC to store initializers.
	* g++.dg/ext/complit3.C: Check for specific error messages.
	* g++.dg/init/brace2.C: Update error message.
	* g++.dg/warn/Wbraces2.C: Likewise.

From-SVN: r102182
2005-07-20 01:19:59 +00:00
Bryce McKinlay
cb14ee6a76 re PR java/18119 (Private inner class is visible when it shouldn't be)
2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>

	PR java/18119
	* parse.y (inner_class_accessible): New function. Logic moved from
	check_inner_class_access.
	(check_inner_class_access): Use inner_class_accessible.
	(resolve_inner_class): Simplify arguments. Create circularity hash
	here. Keep looking for classes if we found one that was
	inaccessible. Return the inaccessible class only if there is no other
	match.
	(do_resolve_class): Update for new resolve_inner_class arguments.
	Don't create circularity_hash here.

From-SVN: r101715
2005-07-07 15:43:59 +01:00
Bryce McKinlay
ca12deb43e re PR java/21045 (Anonymous inner class constructor's exceptions can't be caught or thrown)
2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>

        PR java/21045
	* parse.y (add_exception_to_throws): New function.
	(purge_unchecked_exceptions): Removed.
	(get_constructor_super): Renamed from verify_constructor_super. Now
	returns the super constructor after verification.
	(java_complete_expand_method): Don't use purge_unchecked_exceptions
	or save/restore the exception list.
	(check_thrown_exceptions): Add uncaught exceptions in anonymous
	class initializers and constructors to the throws clause of the
	method.

2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>

        * testsuite/libjava.compile/PR21045.java: New test.
        * testsuite/libjava.jacks/jacks.xfail: Remove 15.9.5.1-exception-1,
        15.9.5.1-exception-3, 8.3.2-abrupt-6, 8.3.2-abrupt-7.

From-SVN: r101713
2005-07-07 15:34:53 +01:00
Bryce McKinlay
b226520a2d re PR java/19674 (Empty declaration through semicolon (;) causes compile failure)
2005-07-05  Bryce McKinlay  <mckinlay@redhat.com>

        PR java/19674
        * parse.y (interface_member_declaration): Allow empty statements in
        interface declarations.

2005-07-05  Bryce McKinlay  <mckinlay@redhat.com>

	* testsuite/libjava.compile/PR19674.java: New test.

From-SVN: r101634
2005-07-05 22:09:57 +01:00
Paolo Bonzini
ef3303124e Makefile.in: Adjust dependencies.
2005-07-05  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in: Adjust dependencies.
	* tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
	* basic-block.h (duplicate_computed_gotos): Remove, it is now static.
	* alias.c (rest_of_handle_cfg, pass_cfg): New.
	* bb-reorder.c (duplicate_computed_gotos): Make it static.
	* cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
	rest_of_compilation.

	* bb-reorder.c (gate_duplicate_computed_gotos,
	pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
	rest_of_handle_reorder_blocks, pass_reorder_blocks,
	gate_handle_partition_blocks, rest_of_handle_partition_blocks,
	pass_partition_blocks): New.
	* bt-load.c (gate_handle_branch_target_load_optimize,
	rest_of_handle_branch_target_load_optimize,
	pass_branch_target_load_optimize): New.
	* cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
	pass_jump2): New.
	* cfglayout.c (pass_insn_locators_initialize): New.
	* cfgrtl.c (pass_free_cfg): New.
	* combine.c (gate_handle_combine, rest_of_handle_combine,
	pass_combine): New.
	* cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
	gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
	* emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
	* except.c (pass_set_nothrow_function_flags,
	pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
	pass_rtl_eh): New.
	* final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
	rest_of_handle_shorten_branches, pass_shorten_branches,
	rest_of_clean_state, pass_clean_state): New.
	* flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
	rest_of_handle_remove_death_notes, pass_remove_death_notes,
	rest_of_handle_life, pass_life, rest_of_handle_flow2,
	pass_flow2): New.
	* function.c (pass_instantiate_virtual_regs, pass_init_function,
	rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
	* gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
	pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
	pass_gcse): New.
	* global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
	* ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
	pass_rtl_ifcvt, gate_handle_if_after_combine,
	rest_of_handle_if_after_combine, pass_if_after_combine,
	gate_handle_if_after_reload, rest_of_handle_if_after_reload,
	pass_if_after_reload): New.
	* integrate.c (pass_initial_value_sets): New.
	* jump.c (pass_cleanup_barriers, purge_line_number_notes,
	pass_purge_lineno_notes): New.
	* mode-switching.c (rest_of_handle_mode_switching,
	pass_mode_switching): New.
	* local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
	* loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
	pass_loop2): New.
	* loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
	pass_loop_optimize): New.
	* modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
	pass_sms): New.
	* postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
	pass_gcse2): New.
	* postreload.c (gate_handle_postreload, rest_of_handle_postreload,
	pass_postreload_cse): New.
	* profile.c (gate_handle_profiling, pass_profiling,
	rest_of_handle_branch_prob, pass_branch_prob): New.
	* recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
	pass_split_before_regstack, gate_handle_split_before_regstack,
	gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
	rest_of_handle_split_all_insns, pass_split_all_insns): New.
	* reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
	pass_stack_regs): New.
	* regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
	gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
	pass_stack_adjustments): New.
	* regrename.c (gate_handle_regrename, rest_of_handle_regrename,
	pass_regrename): New.
	* reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
	pass_delay_slots, gate_handle_machine_reorg,
	rest_of_handle_machine_reorg, pass_machine_reorg): New.
	* rtl.h (extern void purge_line_number_notes): New.
	* sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
	gate_handle_sched2, rest_of_handle_sched2, pass_sched,
	pass_sched2): New.
	* tracer.c (gate_handle_tracer, rest_of_handle_tracer,
	pass_tracer): New.
	* value-prof.c (gate_handle_value_profile_transformations,
	rest_of_handle_value_profile_transformations,
	pass_value_profile_transformations): New.
	* var-tracking.c (gate_handle_var_tracking,
	pass_variable_tracking): New.
	* web.c (gate_handle_web, rest_of_handle_web, pass_web): New.

	* passes.c (open_dump_file, close_dump_file, 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_old_regalloc, rest_of_handle_regrename,
	rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
	rest_of_handle_sms, 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_if_after_reload,
	rest_of_handle_web, rest_of_handle_branch_prob,
	rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
	rest_of_handle_jump_bypass, rest_of_handle_combine,
	rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
	rest_of_handle_gcse, rest_of_handle_loop_optimize,
	rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
	rest_of_handle_mode_switching, rest_of_handle_jump,
	rest_of_handle_eh, rest_of_handle_stack_adjustments,
	rest_of_handle_flow2, rest_of_handle_jump2,
	rest_of_handle_peephole2, rest_of_handle_postreload,
	rest_of_handle_shorten_branches, rest_of_clean_state,
	rest_of_compilation): Remove.

	* cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
	* passes.c (dump_flags, in_gimple_form, all_passes,
	all_ipa_passes, all_lowering_passes, register_one_dump_file,
	register_dump_files, next_pass_1, last_verified, execute_todo,
	execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
	from tree-optimize.c.
	(init_optimization_passes): Moved from tree-optimize.c,
	adding the RTL optimizations.
	* tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
	* tree-optimize.c (dump_flags, in_gimple_form, all_passes,
	all_ipa_passes, all_lowering_passes, register_one_dump_file,
	register_dump_files, next_pass_1, last_verified, execute_todo,
	execute_one_pass, execute_pass_list, execute_ipa_pass_list,
	init_tree_optimization_passes, ipa_passes): Delete.
	* tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
	the RTL dumps.
	(TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
	dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
	from tree.h.
	(ipa_passes): Remove.
	(all_passes, all_ipa_passes, all_lowering_passes): Now extern.
	* tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
	dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
	dump_switch_p, dump_flag_name): Moved to tree-pass.h.
	(dump_info_p, dump_flag): Moved to tree-dump.h.

	* Makefile.in: Adjust dependencies for tree-pretty-print.c,
	cgraph.c, opts.c.
	* passes.c (finish_optimization_passes): Use dump_begin
	and dump_end, TDI_end.
	(gate_rest_of_compilation): New.
	(pass_rest_of_compilation): Use it.
	(gate_postreload, pass_postreload): New.
	* toplev.c (general_init): Rename init_tree_optimization_passes.
	* toplev.h (init_tree_optimization_passes): Rename to
	init_optimizations_passes.
	* tree-dump.c (dump_flag): Make static.
	(dump_files): Remove RTL dumps.
	* tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
	pass_cleanup_cfg, pass_free_cfg_annotations,
	pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
	pass_init_datastructures, pass_fixup_cfg): Make non-static.
	* tree-pretty-print.c: Include tree-pass.h.
	* cgraph.c: Include tree-dump.h.

cp:
2005-07-05  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in (class.o, decl2.o): Adjust dependencies.
	* class.c: Include tree-dump.h.
	* decl2.c: Include tree-dump.h.

java:
2005-07-05  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in (parse.o): Adjust dependencies.
	* parse.y: Include tree-dump.h.

From-SVN: r101627
2005-07-05 16:20:53 +00:00
Andrew Pinski
200bbdcecb parse.y (issue_warning_error_from_context): Call pp_output_formatted_text to be able to get the buffer.
2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>

        * parse.y (issue_warning_error_from_context): Call
        pp_output_formatted_text to be able to get the buffer.

From-SVN: r101505
2005-07-01 08:21:09 -07:00
Andrew Pinski
8ce2456a6d parse.y (issue_warning_error_from_context): Update for the renaming of pp_format_text to pp_format.
2005-06-29  Andrew Pinski  <pinskia@physics.uc.edu>

        * parse.y (issue_warning_error_from_context): Update for the
        renaming of pp_format_text to pp_format.

From-SVN: r101497
2005-06-30 20:39:19 -07:00
Tom Tromey
4ebe7d9317 PR java/21540, PR java/13788:
gcc/java/:
	PR java/21540, PR java/13788:
	* parse.y (java_complete_lhs) <CASE_EXPR>: Use
	fold_constant_for_init.
	(patch_binop): Added 'folding' argument.  Updated all callers.
	(patch_unaryop) <NOP_EXPR>: New case.
	(fold_constant_for_init) <NOP_EXPR>: Likewise.
	(fold_constant_for_init) <COND_EXPR>: Fix sense of test.
libjava/:
	PR java/21540, PR java/13788:
	* testsuite/libjava.compile/pr21540.java: New file.
	* testsuite/libjava.compile/pr13788.java: New file.
	* testsuite/libjava.jacks/jacks.xfail: Updated.

From-SVN: r101358
2005-06-27 18:40:16 +00:00
Kelley Cook
f12c30a8f1 Update FSF address.
From-SVN: r101309
2005-06-25 00:33:05 +00:00
Bryce McKinlay
c0f6dc941d re PR java/20697 (Invalid Can't find method error on call to super)
PR java/20697
	* parse.y (find_most_specific_methods_list): Remove special case for
	inner classes.

From-SVN: r101270
2005-06-23 16:00:50 +01:00
Tom Tromey
924b245026 re PR java/21844 (miscompilation of LinkedHashMap)
PR java/21844:
	* parse.y (nested_field_access_p): Handle case where outer field
	is inherited by enclosing class.

From-SVN: r100893
2005-06-13 19:20:22 +00:00
Kaveh R. Ghazi
74118f1510 gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
* gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
	* java-tree.h (parse_error_context): Move...
	* parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
	* parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
	* verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.

From-SVN: r100795
2005-06-09 10:55:02 +00:00
Jakub Jelinek
4b794eaf73 exgettext: Handle gmsgid and cmsgid arguments specially, as gcc-internal-format and c-format.
gcc/po/
	* exgettext: Handle gmsgid and cmsgid arguments specially,
	as gcc-internal-format and c-format.  Because of xgettext
	bug, invoke xgettext once with --language=c, once with
	--language=GCC-source and then merge together.  Fail if
	xgettext is not 0.14.5 or later.
gcc/
	* intl.h (G_): New macro.
	* rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
	instead of msgid for argument name.
	* tree-ssa.c (warn_uninit): Likewise.
	* c-parser.c (c_parser_error): Likewise.
	* config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
	* config/darwin-c.c (BAD): Likewise.
	* config/c4x/c4x-c.c (BAD): Likewise.
	* c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
	* c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
	* c-common.c (c_parse_error): Likewise.
	* diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
	warning0, pedwarn, error, sorry, fatal_error, internal_error):
	Likewise.
	(fnotice): Use cmsgid instead of msgid for argument name.
	* gcov.c (fnotice): Likewise.
	* protoize.c (notice): Likewise.
	* final.c (output_operand_lossage): Likewise.
	* gcc.c (fatal, notice): Likewise.
	(error): Use gmsgid instead of msgid for argument name.
	* collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
	of msgid for argument name.
	(error): Use gmsgid instead of msgid for argument name.
	* c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
	instead of N_().
	* c-typeck.c (readonly_error, convert_for_assignment): Likewise.
	* tree-inline.c (inline_forbidden_p_1): Likewise.
	* ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
	conventions for marking translations.
	* doc/install.texi: Mention gettext 0.14.5 or later requirement.
gcc/cp/
	* error.c (locate_error): Use gmsgid instead of msgid for argument
	name.
	(cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
gcc/java/
	* jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
	msgid for argument name.
	* gjavah.c (error): Likewise.
	* java-tree.h (parse_error_context): Likewise.
	* parse.y (parse_error_context, parse_warning_context,
	issue_warning_error_from_context): Likewise.

From-SVN: r100676
2005-06-06 21:31:40 +02:00
Ranjit Mathew
38c9d142c8 re PR java/19870 (gcj -C doesn't generate accessors for private members across nested class boundaries)
PR java/19870.
	* java-tree.h (OUTER_FIELD_ACCESS_IDENTIFIER_P): Rename to
	NESTED_FIELD_ACCESS_IDENTIFIER_P.
	(FIELD_INNER_ACCESS): Rename to FIELD_NESTED_ACCESS.
	(FIELD_INNER_ACCESS_P): Rename to FIELD_NESTED_ACCESS_P.
	* jcf-write.c (generate_classfile): Use
	NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
	OUTER_FIELD_ACCESS_IDENTIFIER_P.
	* parse.y (build_outer_field_access): Rename to
	build_nested_field_access. Support static fields and outer-to-inner
	class accesses.
	(outer_field_access_p): Rename to nested_field_access_p. Support
	static fields and generalise to outer-to-inner class and sibling
	inner class accesses.
	(outer_field_expanded_access_p): Rename to
	nested_field_expanded_access_p and support static fields.
	(outer_field_access_fix): Rename to nested_field_access_fix and
	support static fields.
	(build_outer_field_access_expr): Rename to
	build_nested_field_access_expr and support static fields.
	(build_outer_field_access_methods): Rename to
	build_nested_field_access_methods and support static fields. For
	static fields, generate accessors without class instance parameters.
	(build_outer_field_access_method): Rename to
	build_nested_field_access_method and support static fields.
	(build_outer_method_access_method): Use
	NESTED_FIELD_ACCESS_IDENTIFIER_P instead of
	OUTER_FIELD_ACCESS_IDENTIFIER_P.
	(resolve_expression_name): Consider static field accesses across
	nested classes.
	(resolve_qualified_expression_name): Likewise.
	(java_complete_lhs): Use nested_field_access_fix instead of
	outer_field_access_fix.
	(patch_unary_op): Rename outer_field_flag to nested_field_flag.
	Use nested_field_expanded_access_p instead of
	outer_field_expanded_access_p. Use nested_field_access_fix instead
	of outer_field_access_fix.
	(check_thrown_exceptions): Use NESTED_FIELD_ACCESS_IDENTIFIER_P
	instead of OUTER_FIELD_ACCESS_IDENTIFIER_P.

From-SVN: r100246
2005-05-27 05:15:26 +00:00
Richard Henderson
e0f391dd90 builtins.c (define_builtin): Don't call make_decl_rtl.
* builtins.c (define_builtin): Don't call make_decl_rtl.
        * constants.c (build_constant_data_ref): Likewise.
        * class.c (build_utf8_ref): Likewise.
        (build_fieldref_cache_entry, build_static_field_ref): Likewise.
        (get_dispatch_table, layout_class_method): Likewise.
        (build_class_ref): Likewise. Don't set DECL_SIZE or DECL_SIZE_UNIT
        by hand.
        (make_local_function_alias): Don't SET_DECL_ASSEMBLER_NAME.
        (make_method_value): Use METHOD_ABSTRACT instead of DECL_RTL_SET_P
        to determine if we need a non-zero address.
        * decl.c (builtin_function): Don't call make_decl_rtl.
        (give_name_to_locals): Don't SET_DECL_ASSEMBLER_NAME.
        * expr.c (build_known_method_ref): Don't call make_decl_rtl.
        * resource.c (compile_resource_data): Likewise.
        * parse.y (resolve_field_access): Re-word comment to avoid
        building DECL_RTL.

From-SVN: r100108
2005-05-24 12:22:03 -07:00
Paolo Bonzini
6fb09909fc re PR java/17845 (More problems with simple type names as superclasses)
2005-05-19  Paolo Bonzini  <bonzini@gnu.org>

	PR java/17845

	* parse.y (register_package, package_list): Remove.
	(package_declaration): Do not call register_package.
	(do_resolve_class): Do not use package_list.

From-SVN: r99977
2005-05-19 11:16:27 +00:00
Paolo Bonzini
27e928edee re PR java/21436 (imports not remembered for previously compiled files)
gcc/java:
2005-05-10  Paolo Bonzini  <bonzini@gnu.org>

	PR java/21436
	* class.c (maybe_layout_super_class): Look for imports in this_class.
	* parse.h (ctxp_for_generation_last): New.
	(do_resolve_class): Add a parameter.
	* parse.y (ctxp_for_generation_last): New.
	(java_pop_parser_context): Add at end of list.
	(find_in_imports, find_in_imports_on_demand): Look in ctxp
	if the TYPE_IMPORT_LIST or respectively the TYPE_IMPORT_DEMAND_LIST of
	the given type are NULL.
	(do_resolve_class): Look into the imports of the new second parameter.
	Adjust recursive calls.
	(resolve_class, resolve_inner_class, find_as_inner_class): Adjust
	calls to do_resolve_class.
	(create_class): Set the TYPE_IMPORT_LIST and TYPE_IMPORT_DEMAND_LIST.
	(java_complete_class): Do not do that here.

libjava:
2005-05-10  Paolo Bonzini  <bonzini@gnu.org>

	PR java/21436
	* testsuite/libjava.jacks/jacks.xfail: Adjust.

From-SVN: r99513
2005-05-10 13:23:35 +00:00
DJ Delorie
d4ee4d2525 diagnostic.c (warning): Accept parameter to classify warning option.
* diagnostic.c (warning): Accept parameter to classify warning option.
(warning0): New, for when a pointer to an error() like function is needed.
* errors.c (warning): Likewise.
* errors.h (warning, warning0): Adjust prototypes.
* toplev.h (warning, warning0): Likewise.

* attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.

* config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
config/darwin.c, config/darwin.h, config/h8300/h8300.c,
config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
config/rs6000/aix52.h, config/rs6000/darwin.h,
config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
config/stormy16/stormy16.c, config/v850/v850-c.c,
config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
callers.

* ada/misc.c: Adjust warning() callers.

* cp/call.c, cp/class.c, cp/cvt.c, cp/decl.c, cp/decl2.c,
cp/except.c, cp/friend.c, cp/init.c, cp/lex.c, cp/mangle.c,
cp/method.c, cp/name-lookup.c, cp/parser.c, cp/repo.c, cp/rtti.c,
cp/tree.c, cp/typeck.c, cp/typeck2.c: Adjust warning() callers.

* fortran/trans-decl.c: Adjust warning() callers.

* java/class.c, java/decl.c, java/expr.c, java/jcf-io.c,
java/jcf-parse.c, java/jv-scan.c, java/parse.y: Adjust warning()
callers.

* objc/objc-act.c: Adjust warning() callers.

* treelang/parse.y: Adjust warning() callers.

From-SVN: r98633
2005-04-23 17:29:07 -04:00
Ian Lance Taylor
15f188a462 * parse.y (maybe_yank_clinit): Don't crash if bbody is NULL.
From-SVN: r97264
2005-03-30 17:55:57 +00:00
Ranjit Mathew
2743ba1c48 re PR java/20312 (No warning on bad method)
PR java/20312
	* parse.y (checks_throws_clauses): Check exceptions list even when
	the base class does not come from a source file being compiled.
	(java_complete_lhs): Remove unused variable 'wfl'.

From-SVN: r96251
2005-03-10 18:40:26 +00:00
Ranjit Mathew
ecf713657e Remove xref code.
* xref.c, xref.h: Remove file.
	* Make-lang.in (java/xref.o): Remove.
	* java-tree.h (flag_emit_xref, do_not_fold): Remove declaration.
	* lang.c (flag_emit_xref): Remove definition.
	* parse.h (DECL_END_SOURCE_LINE, DECL_INHERITED_SOURCE_LINE): Remove.
	* typeck.c (convert): Remove use of do_not_fold.
	* parse.y (do_not_fold): Remove definition.
	(parser grammar): Remove xref code.
	(maybe_create_class_interface_decl, create_class): Likewise.
	(register_fields, method_header, finish_method_declaration): Likewise.
	(declare_local_variables, source_end_java_method): Likewise.
	(java_complete_expand_classes): Do not set do_not_fold.
	(java_complete_expand_method): Remove xref code.
	(java_expand_classes, resolve_field_access, patch_invoke): Likewise.
	(java_complete_tree, java_complete_lhs, patch_assignment): Likewise.
	(patch_binop, build_string_concatenation, patch_array_ref): Likewise.
	(patch_synchronized_statement, patch_throw_statement): Likewise.
	(maybe_build_class_init_for_field): Likewise.

From-SVN: r95965
2005-03-06 08:42:33 +00:00
Ranjit Mathew
7f75bb8318 re PR java/9157 (SEGV on bad java source)
PR java/9157
        * parse.y (build_string_concatenation): Remove redundant if.
        (patch_conditional_expr): Attempt to patch_string() the condition
        of a ?: as well, in addition to its other operands.

From-SVN: r94513
2005-02-01 02:36:29 +00:00
Ranjit Mathew
31fc696ccb re PR java/19070 (internal compiler error: in generate_bytecode_conditional, at java/jcf-write.c:1271)
PR java/19070
        * parse.y (patch_binop): Allow comparisons against NULL only
        if the other operand is of a reference type.

From-SVN: r94205
2005-01-25 06:12:32 +00:00
Mark Wielaard
b927d3a451 parse.y (process_imports): Allocate (and free) original_name only when not already defined.
* parse.y (process_imports): Allocate (and free) original_name only
       when not already defined.
       * jcf-parse.c (read_class): Free results of find_class() and
       lrealpath().
       (java_parse_file): Keep pointer to head of file_list and free when
       done. Free result of lrealpath().

From-SVN: r93109
2005-01-09 13:54:34 +00:00
Tom Tromey
a58d74533c re PR java/14853 (Assignment to final field permitted when compiling to native)
PR java/14853:
	* java-tree.h (extract_field_decl): Declare.
	* parse.y (extract_field_decl): Renamed from
	strip_out_static_field_access_decl.  No longer static.
	* check-init.c (get_variable_decl): Unwrap COMPOUND_EXPRs.

From-SVN: r91778
2004-12-06 15:32:38 +00:00
Tom Tromey
5c5d79d28c re PR java/16675 (Null parameter values for anonymous constructor invocation require explicit cast)
PR java/16675:
	* parse.y (craft_constructor): Special case null_pointer_node.

From-SVN: r91657
2004-12-02 19:41:03 +00:00
Andrew Pinski
532815a787 re PR java/18305 (Class initialization optimization is not done when compiled from .class)
2004-11-26  Andrew Pinski  <pinskia@physics.uc.edu>

        PR java/18305
        * decl.c (end_java_method): Call
        attach_init_test_initialization_flags on all the init_decls.
        * parse.y (attach_init_test_initialization_flags): Move to ...
        * expr.c (attach_init_test_initialization_flags): here and
        support BIND_EXPR also.
        * java-tree.h (attach_init_test_initialization_flags): Prototype.
        * jcf-parse.c (parse_class_file): Don't disable class init
        optimization.

From-SVN: r91343
2004-11-26 10:04:45 -08: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
16df8078b8 expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR.
gcc/
	* expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR
	and LABELED_BLOCK_EXPR.
	* gimplify.c (gimplify_labeled_block_expr): Remove.
	(gimplify_exit_block_expr): Remove.
	(gimplify_expr): Don't call them.
	* tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR
	and LABELED_BLOCK_EXPR.
	(estimate_num_insns_1): Likewise.
	(walk_tree): Likewise.
	* tree-pretty-print.c (dump_generic_node): Don't handle
	EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR.
	* tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def.
	(LABELED_BLOCK_EXPR): Likewise.
	* tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h.
	(LABELED_BLOCK_BODY): Likewise.
	(EXIT_BLOCK_LABELED_BLOCK): Likewise.
	(EXIT_BLOCK_RETURN): Removed.

java/
	* java-gimplify.c (java_gimplify_labeled_block_expr): New function.
	(java_gimplify_exit_block_expr): New function.
	(java_gimplify_expr): Use them to gimplify EXIT_BLOCK_EXPR and
	LABELED_BLOCK_EXPR.
	* java-tree.def (LABELED_BLOCK_EXPR): Moved from tree.def.
	(EXIT_BLOCK_EXPR): Likewise.
	* java-tree.h (LABELED_BLOCK_LABEL): Moved from tree.h.
	(LABELED_BLOCK_BODY): Likewise.
	(EXIT_BLOCK_LABELED_BLOCK): Likewise.
	* jcf-write.c (generate_bytecode_insns): Don't handle the unused
	EXIT_BLOCK_RETURN operand.  Use EXIT_BLOCK_LABELED_BLOCK instead of
	TREE_OPERAND.
	* lang.c (java_tree_inlining_walk_subtrees): Handle EXIT_BLOCK_EXPR.
	(java_dump_tree): Use LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, and
	EXIT_BLOCK_LABELED_BLOCK instead of TREE_OPERAND.  Don't handle the
	second operand of EXIT_BLOCK_EXPR.
	* parse.y (find_expr_with_wfl): Use LABELED_BLOCK_BODY instead of
	TREE_OPERAND.
	(build_bc_statement): Use build1 to build EXIT_BLOCK_EXPR nodes.

From-SVN: r91149
2004-11-24 11:41:38 +00:00
Andrew Pinski
6571838f58 re PR java/15576 (Class initialization optimization is disabled)
2004-11-09  Andrew Pinski  <pinskia@physics.uc.edu>

        PR java/15576
        * check-init.c (check_init): Ignore DECL_EXPR.
        * expr.c (always_initialize_class_p): Reenable.
        (build_class_init): Use a variable to store the decl.  Also use
        boolean_false_node instead of integer_zero_node.
        * parse.y (attach_init_test_initialization_flags): Add a decl_expr
        to the block.

From-SVN: r90343
2004-11-09 06:33:32 -08:00
Hans-Peter Nilsson
e86d9e4bca expr.c (expr_add_location): Move declaration to before all statements.
* expr.c (expr_add_location): Move declaration to before all
	statements.
	* parse.y (java_expand_classes): Ditto.
	* lex.c (java_peek_unicode): Ditto.

From-SVN: r89152
2004-10-16 18:27:32 +00:00