Commit Graph

59142 Commits

Author SHA1 Message Date
Paolo Carlini
482c0c5d0f complex_inserters_extractors.cc, [...]: Move to...
2004-06-22  Paolo Carlini  <pcarlini@suse.de>

	* testsuite/26_numerics/complex_inserters_extractors.cc,
	complex_value.cc, buggy_complex.cc: Move to...
	* testsuite/26_numerics/complex/: ... here.
	* testsuite/26_numerics/c99_classification_macros_c++.cc,
	c99_classification_macros_c.cc, c_math.cc, c_math_dynamic.cc,
	fabs_inline.cc: Move to...
	* testsuite/26_numerics/cmath/: ... here.
	* testsuite/26_numerics/binary_closure.cc, slice.cc,
	slice_array_assignment.cc, valarray.cc, valarray_const_bracket.cc,
	valarray_name_lookup.cc, valarray_operators.cc,
	valarray_subset_assignment.cc: Move to...
	* testsuite/26_numerics/valarray/: ... here (new dir).
	* testsuite/26_numerics/sum_diff.cc: Move to...
	* testsuite/26_numerics/numeric/: ... here (new dir).

From-SVN: r83489
2004-06-22 10:52:14 +00:00
Paolo Bonzini
00bfee6f84 tree-cfg.c (pass_warn_function_return): It needs CFG, not SSA.
2004-06-22  Paolo Bonzini  <bonzini@gnu.org>

	* tree-cfg.c (pass_warn_function_return): It needs
	CFG, not SSA.

From-SVN: r83487
2004-06-22 10:06:49 +00:00
Paolo Carlini
80dddedcaf std_istream.h (ignore(streamsize __n = 1, int_type __delim = traits_type::eof())): Split into...
2004-06-22  Paolo Carlini  <pcarlini@suse.de>

	* include/std/std_istream.h (ignore(streamsize __n = 1,
	int_type __delim = traits_type::eof())): Split into...
	(ignore(), ignore(streamsize __n), ignore(streamsize __n,
	int_type __delim)): The first two can be much more simpler
	and efficient than the fully general case; also, the last
	two can take advantage of the same mechanism already used
	for getline.
	* include/bits/istream.tcc (ignore(streamsize __n = 1,
	int_type __delim = traits_type::eof()): Remove.
	(ignore(), ignore(streamsize __n), ignore(streamsize __n,
	int_type __delim)): New.

From-SVN: r83486
2004-06-22 10:06:39 +00:00
Nathan Sidwell
39bc18760f invoke.texi (Machine Dependent Options): Alphabetize.
* doc/invoke.texi (Machine Dependent Options): Alphabetize.
	(Submodel Options): Likewise.

From-SVN: r83485
2004-06-22 08:32:31 +00:00
Andrew Pinski
f6bf7bb617 Radar #: 3701874
2004-06-21  Andrew Pinski  <apinski@apple.com>

        Radar #: 3701874
        * c-decl.c (push_file_scope): Return early if we already
        have a file scope.

2004-06-21  Andrew Pinski  <apinski@apple.com>

        * gcc.dg/pch/struct-1.c: New.
        * gcc.dg/pch/struct-1.hs: New.

From-SVN: r83483
2004-06-22 00:23:25 -07:00
Mark Mitchell
058b15c1dc cp-tree.def (NEW_EXPR): Add a fourth slot.
* cp-tree.def (NEW_EXPR): Add a fourth slot.
	* cp-tree.h (PARMLIST_ELLIPSIS_P): Remove.
	(TREE_PARMLIST): Likewise.
	(CALL_DECLARATOR_PARMS): Likewise.
	(CALL_DECLARATOR_QUALS): Likewise.
	(CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
	(cp_declarator_kind): New type.
	(cp_parameter_declarator): Likewise.
	(cp_declarator): Likewise.
	(cp_error_declarator): Likewise.
	(no_parameters): Likewise.
	(groktypename): Change prototype.
	(start_decl): Likewise.
	(start_handler_parms): Likewise.
	(get_scope_of_declarator): Likewise.
	(start_function): Likewise.
	(start_preparsed_function): New function.
	(start_function): Change prototype.
	(start_method): Likewise.
	(grokfield): Likewise.
	(grokbitfield): Likewise.
	(build_new): Likewise.
	(make_pointer_declarator): Remove.
	(make_reference_declarator): Likewise.
	(make_call_declarator): Likewise.
	(set_quals_and_spec): Likewise.
	(process_template_parm): Change prototype.
	(begin_function_definition): Remove.
	(finish_parmlist): Remove.
	* decl.c (groktypename): Do not use trees to represent
	declarators.
	(start_decl): Likewise.
	(start_handler_parms): Remove.
	(get_scope_of_declarator): Reimplement.
	(grokdeclarator): Do not use trees to represent	declarators.
	(grokparms): Likewise.
	(start_function): Likewise.
	(start_method): Likewise.
	(build_void_list_mode): Do not use TREE_PARMLIST.
	* decl.h (grokdeclarator): Change prototype.
	* decl2.c (grok_method_quals): Robustify.
	(grok_x_components): Do not use trees to represent declarators.
	(grokfield): Likewise.
	(grokbitfield): Likewise.
	(start_objects): Build FUNCTION_DECLs, not declarators.
	(start_static_storage_duration_function): Likewise.
	* init.c (build_new): Simplify.
	* lex.c (make_pointer_declarator): Remove.
	(make_reference_declarator): Likewise.
	(make_call_declarator): Likewise.
	(set_quals_and_spec): Likewise.
	* method.c (use_thunk): Use start_preparsed_function.
	(synthesize_method): Likewise.
	(implicitly_declare_fn): Build FUNCTION_DECLs, not declarators.
	* optimize.c (maybe_clone_body): Use start_preparsed_function.
	* parser.c (cp_error_declarator): New variable.
	(declarator_obstack): Likewise.
	(alloc_declarator): New function.
	(make_declarator): Likewise.
	(make_id_declarator): Likewise.
	(make_pointer_declarator): Likewise.
	(make_reference_declarator): Likewise.
	(make_ptrmem_declarator): Likewise.
	(make_call_declarator): Likewise.
	(make_array_declarator): Likewise.
	(no_parameters): New variable.
	(make_parameter_declarator): Likewise.
	(cp_parser_check_for_definition_in_return_type): Do not use trees
	to represent declarators.
	(cp_parser_translation_unit): Likewise.
	(cp_parser_new_expression): Likewise.
	(cp_parser_new_type_id): Likewise.
	(cp_parser_new_declarator_opt): Likewise.
	(cp_parser_direct_new_declarator): Likewise.
	(cp_parser_condition): Likewise.
	(cp_parser_declaration_statement): Likewise.
	(cp_parser_declaration): Likewise.
	(cp_parser_conversion_type_id): Likewise.
	(cp_parser_conversion_declarator_opt): Likewise.
	(cp_parser_template_parameter_list): Likewise.
	(cp_parser_template_parameter): Likewise.
	(cp_parser_explicit_instantiation): Likewise.
	(cp_parser_init_declarator): Likewise.
	(cp_parser_declarator): Likewise.
	(cp_parser_direct_declarator): Likewise.
	(cp_parser_type_id): Likewise.
	(cp_parser_parameter_declaration_clause): Likewise.
	(cp_parser_parameter_declaration_list): Likewise.
	(cp_parser_parameter_declaration): Likewise.
	(cp_parser_member_declaration): Likewise.
	(cp_parser_exception_declaration): Likewise.
	(cp_parser_check_declarator_template_parameters): Likewise.
	(cp_parser_function_definition_from_specifiers_and_declarator):
	Likewise.
	(cp_parser_save_member_function_body): Likewise.
	* pt.c (process_template_parm): Add is_non_type parameter.
	(convert_template_argument): Adjust call to groktypename.
	(tsubst_call_declarator_parms): Remove use of TREE_PARMLIST.
	(tsubst): Do not expect declarators.
	(tsubst_copy_and_build): Adjust NEW_EXPR case to handle additional
	argument.
	(instantiate_decl): Use start_preparsed_function.
	* semantics.c (begin_function_definition): Remove.
	(finish_parmlist): Remove.
	* cp-mudflap.c (mflang_flush_calls): Build FUNCTION_DECLs, not
	declarators.

From-SVN: r83482
2004-06-22 07:18:38 +00:00
Geoffrey Keating
c0d578e68f c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
2004-06-21  Geoffrey Keating  <geoffk@apple.com>

	* c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
	* c-common.h (flag_pch_preprocess): Declare.
	(c_common_pch_pragma): Likewise.
	* c-common.c (flag_pch_preprocess): New.
	* c-pch.c (c_common_read_pch): Support -fpreprocess-only.
	(c_common_pch_pragma): New.
	* c-ppoutput.c (cb_read_pch): New.
	(init_pp_output): Support -fpch-preprocess.
	* c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
	* c.opt (fpch-preprocess): New.
	* gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
	* doc/cppopts.texi: Document -fpch-preprocess.
	* doc/invoke.texi (Precompiled Headers): Mention that
	-fpreprocessed is safe for PCH.  Mention that if an option is
	listed as safe that doesn't mean it does what you expect.

Index: gcc/testsuite/ChangeLog
2004-06-21  Geoffrey Keating  <geoffk@apple.com>

	* gcc.dg/pch/save-temps-1.c: New file.
	* gcc.dg/pch/save-temps-1.hs: New file.

Index: libcpp/ChangeLog
2004-06-21  Geoffrey Keating  <geoffk@apple.com>

	* files.c (should_stack_file): Correct swapped parameters to call
	to cb.read_pch.
	* pch.c (cpp_valid_state): Handle -fpreprocessed.

From-SVN: r83478
2004-06-22 06:51:56 +00:00
Ben Elliston
f6144c34c8 * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
From-SVN: r83477
2004-06-22 16:08:37 +10:00
Matthew Sachs
ccde3f1a6e MAINTAINERS: Added self to write-after-approval.
From-SVN: r83476
2004-06-22 04:13:32 +00:00
Richard Kenner
2b27ff64d1 * Makefile.in (gimplify.o): Add cgraph.h.
From-SVN: r83475
2004-06-21 23:18:15 -04: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
Christopher Faylor
6264b0a68d configure.in: Check for srcdir/winsup rather than build directory winsup.
* configure.in: Check for srcdir/winsup rather than build directory winsup.
* configure: Regenerate.

From-SVN: r83473
2004-06-22 01:37:04 +00:00
Janne Blomqvist
8750f9cdec re PR fortran/15750 (IOLENGTH form of INQUIRE statement not implemented)
PR fortran/15750
	* io.c (gfc_match_inquire): Bugfix for iolength related stuff.
	(gfc_resolve_inquire): Resolve the iolength tag.  Return
	SUCCESS at end of function if no failure has occured.
	* resolve.c (resolve_code): Resolve if iolength is encountered.
	* trans-io.c: (ioparm_iolength, iocall_iolength,
	iocall_iolength_done): New variables.
	(last_dt): Add IOLENGTH.
	(gfc_build_io_library_fndecls ): Set iolength related variables.
	(gfc_trans_iolength): Implement.
	(gfc_trans_dt_end): Treat iolength as a third form of data transfer.
libgfortran/
	PR fortran/15750
	* inquire.c (st_inquire): Add comment
	* io.h (st_parameter): Add iolength.
	(st_iolength, st_iolength_done): Declare.
	* transfer.c (iolength_transfer, iolength_transfer_init,
	st_iolength, st_iolength_done): New functions.
testsuite/
	* gfortran.fortran-torture/execute/iolength_1.f90: New test.
	* gfortran.fortran-torture/execute/iolength_3.f90: New test.

From-SVN: r83472
2004-06-22 00:43:55 +00:00
Loren J. Rittle
88c499cce7 linker-map.gnu: Use wildcards for __basic_file::sys_open(FILE*, _Ios_Openmode).
* config/linker-map.gnu: Use wildcards for
	__basic_file::sys_open(FILE*, _Ios_Openmode).

From-SVN: r83470
2004-06-22 00:24:52 +00:00
GCC Administrator
026a935f41 Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r83467.2
2004-06-22 00:16:47 +00:00
GCC Administrator
b080e5a29e Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r83466.2
2004-06-22 00:16:42 +00:00
John David Anglin
cae80939b6 re PR rtl-optimization/14782 (produces an unaligned data access at -O2)
PR rtl-optimization/14782
	* pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
	the address checks for secondary reloads for loads from and stores
	to floating-point registers.
	* pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
	in the address check.  Move work around for ELF32 targets to
	GO_IF_LEGITIMATE_ADDRESS.
	(GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
	correctly aligned for DImode loads and stores.  Don't allow long
	SFmode displacements on ELF32.

From-SVN: r83464
2004-06-21 23:49:04 +00:00
Richard Henderson
a90fc8e0f3 re PR rtl-optimization/16114 (Hang in cse.c (flush_hash_table))
PR rtl-opt/16114
        * cse.c (merge_equiv_classes): Also rehash in response to
        delete_reg_equiv changes.
        (rehash_using_reg): Don't exclude REGs from rehashing.

From-SVN: r83463
2004-06-21 16:39:26 -07:00
Richard Henderson
5088b05874 c-common.def (RETURN_STMT): Remove.
* c-common.def (RETURN_STMT): Remove.
        * c-common.h (RETURN_STMT_EXPR): Remove.
        (c_expand_return, build_return_stmt): Remove.
        (c_common_stmt_codes): Remove RETURN_STMT.
        * c-dump.c (dump_next_stmt): Remove.
        (c_dump_tree): Remove RETURN_STMT.
        * c-decl.c (finish_function): Use c_finish_return.
        * c-parse.in (stmt): Likewise.
        * c-gimplify.c (gimplify_return_stmt): Remove.
        (c_gimplify_expr): Remove RETURN_STMT.
        * c-pretty-print.c (pp_c_statement): Likewise.
        * c-semantics.c (build_return_stmt): Remove.
        * c-tree.h (c_finish_return): Declare.
        * c-typeck.c (c_finish_return): Rename from c_expand_return.
        Return void.  Build RETURN_EXPR directly.
        * tree-dump.h (dump_next_stmt): Remove.
cp/
        * dump.c (cp_dump_tree): Don't use dump_next_stmt.
        * parser.c (cp_parser_jump_statement): Update commentary.
        * pt.c (tsubst_expr): Use RETURN_EXPR.
        * semantics.c (finish_return_stmt): Likewise.
        (finalize_nrv_r): Likewise.
        * typeck.c, typeck2.c: Update file start commentary.

From-SVN: r83461
2004-06-21 16:30:30 -07:00
Zack Weinberg
0b4da8a182 c-decl.c (start_function): Don't call make_decl_rtl.
* c-decl.c (start_function): Don't call make_decl_rtl.  Don't
	look at TREE_ADDRESSABLE of symbol name.

From-SVN: r83460
2004-06-21 23:04:49 +00:00
Tobias Schlüter
63110e4e74 select_1.f90: Rename function to fix type error.
* gfortran.fortran-torture/execute/select_1.f90: Rename function
to fix type error.
* gfortran.fortran-torture/execute/intrinsic_associated.f90:
Remove trailing spaces.

From-SVN: r83459
2004-06-22 00:56:34 +02:00
Kelley Cook
8e2cd6dda7 re PR target/15551 (-mtune=pentium4 -O2 with sjlj EH breaks stack probe worker on windows32 targets)
2004-06-21  Kelley Cook  <kcook@gcc.gnu.org>

	PR target/15551
	* config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
	(allocate_stack_worker): Make unspec_volatile.
	(allocate_stack_worker_rex64):  Likewise.
	(allocate_stack_worker_postreload):  Likewise.
	(allocate_stack_worker_rex64_postreload):  Likewise.

From-SVN: r83458
2004-06-21 22:52:04 +00:00
R. Kelley Cook
f648d1e451 Fix whitespace from previous checking
From-SVN: r83457
2004-06-21 22:48:39 +00:00
Steven G. Kargl
0bf68c6eab etime.c (etime_sub): Remove array rank check; Add check for sufficient space.
* etime.c (etime_sub): Remove array rank check;
	Add check for sufficient space.

From-SVN: r83456
2004-06-21 22:25:12 +00:00
Tobias Schlüter
fa84120041 re PR fortran/15511 (Warning about truncated lines does not follow the standard gcc error message format)
PR fortran/15511
* scanner.c (load_line): Don't truncate preprocessor lines.
Reformat error message.
(preprocessor_line): Issue warning in case of malformed
preprocessor line.

From-SVN: r83455
2004-06-22 00:22:32 +02:00
Daniel Berlin
6263a8f6a5 New test, extracted from 15982
From-SVN: r83454
2004-06-21 21:59:38 +00:00
Daniel Berlin
56db793abf re PR tree-optimization/15982 (ICE in tree-ssa-pre due to GVN-PRE)
2004-06-21  Daniel Berlin  <dberlin@dberlin.org>

    Fix PR optimization/15982
    * tree-ssa-pre.c: Update a few comments and todos to
    reflect constants change.
    (get_value_handle): Constants now value number to themselves.
    (lookup): Constants lookup to themselves.
    (add_to_value): Adjust to always be on.
    (set_contains_value): Adjust for constants change.
    (find_leader): Ditto.
    (phi_translate): 'r' nodes are never ANTIC right now.
    (valid_in_set): Ditto.
    (get_expr_set): New function.
    (find_or_generate_expression): New function, broken out from
    insert_aux.
    (create_expression_by_pieces): Ditto, plus additional
    machinery to handle complex values.
    (compute_avail): Remove dead RETURN_EXPR handling.

From-SVN: r83453
2004-06-21 21:57:33 +00:00
Steven Bosscher
8bc527afe9 i386.c: Include insn-codes.h
* config/i386/i386.c: Include insn-codes.h
	* config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
	define here.
	* config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
	DIRFLAG_REG): New define_constants.  Use them everywhere.

From-SVN: r83451
2004-06-21 20:41:39 +00:00
Joern Rennecke
b16c5d49c4 Typo fix.
From-SVN: r83445
2004-06-21 20:11:23 +01:00
Joern Rennecke
da28a3b97d [multiple changes]
2004-06-21  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/t-linux (MULTILIB_OPTIONS): Remove.

2004-06-21  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionanlly define.
	(SUPPORT_SH4_SINGLE): Likewise.
	(TARGET_SWITCHES): Break out switches for cpu subtargets:
	(TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
	(TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
	(TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
	(TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
	(TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
	(TARGET_SWITCHES_SH5_32MEDIA): Likewise.
	(TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
	(SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
	(SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
	(SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
	(SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
	(SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
	(ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
	* sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
	(TARGET_DEFAULT): Likewise.
	* config/sh/t-elf: Amend comment.
	* config/sh/t-1e, config/sh/t-mlib-sh1: New files.
	* config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
	* config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
	* config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
	* config/sh/t-mlib-sh4-single: Likewise.
	* config/sh/t-mlib-sh4-single-only: Likewise.
	* config/sh/t-mlib-sh5-32media: Likewise.
	* config/sh/t-mlib-sh5-32media-nofpu: Likewise.
	* config/sh/t-mlib-sh5-64media: Likewise.
	* config/sh/t-mlib-sh5-64media-nofpu: Likewise.
	* config/sh/t-mlib-sh5-compact: Likewise.
	* config/sh/t-mlib-sh5-compact-nofpu: Likewise.
	* config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
	(MULTILIB_CPUS): Define.
	(MULTILIB_OPTIONS): Use MULTILIB_CPUS.
	(MULTILIB_MATCHES): Use some shell code to calculate it.
	(MULTILIB_EXCEPTIONS): Change to ml/m1.
	* config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
	* config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
	(LINK_DEFAULT_CPU_EMUL): Don't redefine.
	(NO_PROFILE_COUNTERS): Define to 1.
	* config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
	(MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
	* config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
	(MULTILIB_MATCHES): Don't zap.
	(MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
	* config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
	(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
	(MULTILIB_RAW_DIRNAMES): Define.
	(MULTILIB_DIRNAMES): Use it.
	* config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
	(sh*linux configurations): Merge into:
	(sh*elf / sh*kaos configurations).  Support --with-endian, --with-cpu,
	--with-multilib-list options.  Support sh-superh-elf configuration.
	(sh*-netbsd*): Use SELECT_SH* macros.
	(supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
	Merge sh*-*-netbsd* configurations into sh-elf configurations.
	* config/sh/t-netbsd-sh5, config/sh/t-le, config/sh/t-le: Delete.
	* config/sh/t-monolib: Likewise.

From-SVN: r83444
2004-06-21 19:18:40 +01:00
Tobias Schlüter
f5e440e11d resolve.c (resolve_symbol): Add comment in function body.
* resolve.c (resolve_symbol): Add comment in function body.
(check_data_variable): Change type of mark to ar_type, adapt code
accordingly.

From-SVN: r83443
2004-06-21 19:23:52 +02:00
Tobias Schlüter
da4f9e3b4d array.c (gfc_insert_constructor): Avoid redundant call to mpz_comp.
* array.c (gfc_insert_constructor): Avoid redundant call to
mpz_comp. Add 2004 to copyright years.

From-SVN: r83442
2004-06-21 19:16:25 +02:00
Andrew Haley
979bf9a120 java-gimplify.c (java_gimplify_block): set TREE_USED on the new block.
2004-06-21  Andrew Haley  <aph@redhat.com>

	* java-gimplify.c (java_gimplify_block): set TREE_USED on the new
	block.

From-SVN: r83441
2004-06-21 16:55:07 +00:00
Andrew Haley
deb3d52fec ObjectOutputStream.java: Add DEBUG statements everywhere.
2004-06-21  Andrew Haley  <aph@redhat.com>

	* java/io/ObjectOutputStream.java: Add DEBUG statements
	everywhere.
	(dumpElementln): New method.
	(depth): New field.
	* java/io/ObjectInputStream.java
	(currentClassLoader): Make native.
	(callersClassLoader): New field.
	(depth): New field.
	(readObject): ENDBLOCKDATA is generated if the class has a write
	method, not if it has a read method.
	(readObject): Save and restore this.currentObject and
	this.currentObjectStreamClass around calls to callReadMethod().
	* java/io/natObjectInputStream.cc (getCallersClassLoader): New
	method.

From-SVN: r83440
2004-06-21 16:52:14 +00:00
Matthew Sachs
413ed876c5 Adding self to MAINTAINERS
From-SVN: r83439
2004-06-21 16:47:49 +00:00
Nick Clifton
e7ebc32a80 * encoding.c (BITS_PER_UNIT): Define if a definition is not provided.
From-SVN: r83438
2004-06-21 16:39:21 +00:00
Paul Brook
de6f27a82e arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need not imply FPA.
* config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
	not imply FPA.

From-SVN: r83434
2004-06-21 13:32:09 +00:00
Roger Sayle
54d581a26e fold-const.c (operand_equal_p): Pass flags in recursive calls for binary and relational operations.
* fold-const.c (operand_equal_p): Pass flags in recursive calls for
	binary and relational operations.  Add support for TRUTH_ANDIF_EXPR,
	TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
	* tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
	ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
	and TRUTH_XOR_EXPR.

From-SVN: r83433
2004-06-21 12:59:58 +00:00
Paolo Bonzini
19aec19565 rtlanal.c (may_trap_p): Mark LTGT as trapping.
2004-06-21  Paolo Bonzini  <bonzini@gnu.org>

	* rtlanal.c (may_trap_p): Mark LTGT as trapping.

From-SVN: r83432
2004-06-21 12:51:37 +00:00
Joseph Myers
b40410b908 tree-alias-common.h (struct tree_alias_ops): Change ip and ip_partial to unsigned int.
* tree-alias-common.h (struct tree_alias_ops): Change ip and
	ip_partial to unsigned int.

fortran:
	* trans.h (stmtblock_t): Change has_scope to unsigned int.

java:
	* jcf.h (struct JCF): Change java_source, right_zip and finished
	to unsigned int.
	* lex.h (struct java_lexer): Change hit_eof, read_anything,
	byte_swap and use_fallback to unsigned int.
	* parse.h (struct _jdep): Change flag0 to unsigned int.

From-SVN: r83430
2004-06-21 13:37:46 +01:00
Richard Henderson
3a5b9284da c-common.c (verify_sequence_points): Export.
* c-common.c (verify_sequence_points): Export.
        (c_expand_expr_stmt): Move to c-typeck.c.
        * c-common.h (c_expand_expr_stmt): Remove.
        (verify_sequence_points): Declare.
        * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
        * c-parse.in (for_init_stmt, stmt): Likewise.
        * c-tree.h (c_finish_expr_stmt): Declare.
        (c_tree_expr_nonnegative_p): Remove.
        * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
        (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
        (emit_side_effect_warnings): New.
        (c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
        (c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
        Use emit_side_effect_warnings.
        (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
        * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
        * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
        with void initializer.
        (gimplify_target_expr): Handle void BIND_EXPR initializer.
        * tree-inline.c (estimate_num_insns_1): Fix type lookup for
        INIT_EXPR and MODIFY_EXPR.
        * objc/objc-act.c (build_module_descriptor): Use add_stmt
        instead of c_expand_expr_stmt.
cp/
        * semantics.c (finish_expr_stmt): Call verify_sequence_points.
testsuite/
        * gcc.dg/tree-ssa/20030714-1.c: Rename variables to avoid
        merging && to BIT_FIELD_REF.

From-SVN: r83429
2004-06-21 02:15:29 -07:00
Paolo Bonzini
2c486ea78c fold-const.c (fold_cond_expr_with_comparison): New function, extracted from fold.
2004-06-21  Paolo Bonzini  <bonzini@gnu.org>

	* fold-const.c (fold_cond_expr_with_comparison):
	New function, extracted from fold.
	(fold): Extract code to fold A op B ? A : C, use
	it to fold A op B ? C : A.  Really optimize
	A & N ? N : 0 where N is a power of two.  Avoid
	relying on canonicalization and recursion for
	foldings of COND_EXPR to happen.

From-SVN: r83428
2004-06-21 08:34:12 +00:00
Richard Sandiford
992d907d5c * g++.dg/opt/placeholder1.C: New test.
From-SVN: r83427
2004-06-21 06:32:29 +00:00
David Ayers
5c234cd7f4 objc-act.h (get_object_reference): Rename to get_protocol_reference.
2004-06-20  David Ayers  <d.ayers@inode.at>

	* objc/objc-act.h (get_object_reference): Rename to
	get_protocol_reference.
	(super_type): Rename to objc_super_type.
	(selector_type): Rename to objc_selector_type.
	(id_type): Rename to objc_id_type.
	(instance_type): Rename to objc_instance_type.
	(protocol_type): Rename to objc_protocol_type.
	(IS_ID): Update reference to id_type.
	* objc/objc-act.c (get_object_reference): Rename to
	get_protocol_reference; add documentation; update references to
	id_type.
	(lookup_method_in_protocol_list): Rename class_meth to
	is_class; add documentation.
	(finish_message_expr): Rename is_class to class_tree.
	(synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
	next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
	build_next_objc_exception_stuff, get_arg_type_list,
	build_objc_method_call): Update references to id_type.
	(synth_module_prologue, build_objc_symtab_template,
	build_selector_reference_decl, build_selector,
	build_selector_translation_table, build_typed_selector_reference,
	get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
	synth_self_and_ucmd_args): Update references to selector_type.
	(build_private_template, build_ivar_reference):	Update references
	to instance_type.
	(synth_module_prologue, build_protocol_reference,
	build_protocol_expr, start_protocol): Update references to
	protocol_type.
	(synth_module_prologue, get_arg_type_list, build_objc_method_call):
	Update references to super_type.
	* c-parse.in: (typespec_nonreserved_nonattr): Update
	references to get_object_reference.
	* objc/objc-tree.def: Add C mode identifier sequence.

From-SVN: r83425
2004-06-21 01:50:18 +00:00
GCC Administrator
6687b0fc2a Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r83423.2
2004-06-21 00:16:16 +00:00
GCC Administrator
a763177b7b Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r83422.2
2004-06-21 00:16:11 +00:00
Zdenek Dvorak
5e96277660 loop-invariant.c: New file.
* loop-invariant.c: New file.
	* Makefile.in (loop-invariant.o): New.
	* cfgloop.h (global_cost_for_size, init_set_costs,
	move_loop_invariants): Declare.
	* cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
	functions.
	(avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
	variables.
	* common.opt (floop-optimize2, fmove-loop-invariants): New options.
	* loop-init.c (loop_optimizer_init): Call init_set_costs.
	* passes.c (rest_of_handle_loop2): Call move_loop_invariants.
	(rest_of_compilation): Check flag_loop_optimize2.
	* toplev.c (process_options): Handle flag_loop_optimize2.
	* doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
	* doc/passes.texi (loop-invariant.c): Document.

From-SVN: r83419
2004-06-20 21:31:32 +00:00
Zdenek Dvorak
2e24fa83ab * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
From-SVN: r83418
2004-06-20 21:12:55 +00:00
Steven G. Kargl
160874e4cd arith.c (gfc_range_check): correct complex underflow.
2004-06-20  Steven G. Kargl  <kargls@comcast.net>

* arith.c (gfc_range_check): correct complex underflow.

From-SVN: r83417
2004-06-20 20:34:25 +02:00
Richard Henderson
b9861bff6c stmt.c (warn_if_unused_value): Add locus argument.
* stmt.c (warn_if_unused_value): Add locus argument.
        * tree.h (warn_if_unused_value): Update decl.
        * c-typeck.c (internal_build_compound_expr): Update call.
        * c-gimplify.c (gimplify_expr_stmt): Likewise.

From-SVN: r83416
2004-06-20 10:16:27 -07:00