aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2004-06-23* doc/extend.texi (Function Attributes): Alphabetize.Nathan Sidwell2-439/+456
From-SVN: r83543
2004-06-23c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call.Richard Henderson7-84/+83
* c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call. Use gimplify_and_add. * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt. * gimplify.c (build_and_jump, gimplify_exit_expr, gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup, gimplify_stmt, gimplify_expr): Likewise. (shortcut_cond_expr): Handle NULL arms of COND_EXPR. (gimplify_statement_list): Remove NULL entries. (gimplify_to_stmt_list): Handle NULL results. (gimplify_type_sizes): Add list_p argument. (gimplify_one_sizepos): Don't use internal pre/post queue. * tree-gimple.h (gimplify_type_sizes): Update. ada/ * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call. From-SVN: r83539
2004-06-23rs6000.md (*insvsi_internal5/6): New patterns.Eric Christopher2-12/+51
2004-06-22 Eric Christopher <echristo@redhat.com> * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns. From-SVN: r83538
2004-06-22cfghooks.c (make_forwarder_block): Decrement count on fallthru edge when ↵Pat Haugen2-1/+12
redirecting back edges. * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge when redirecting back edges. * cfghooks.c (split_block): Call make_single_succ_edge so that edge count/probability are set correctly. From-SVN: r83537
2004-06-22* gcc.dg/noreturn-1.c (foo5): Update function does return lineno.Richard Henderson2-2/+5
From-SVN: r83535
2004-06-22c-typeck.c (emit_side_effect_warnings): Ignore error marks.Richard Henderson2-2/+9
* c-typeck.c (emit_side_effect_warnings): Ignore error marks. (c_finish_stmt_expr): Likewise. From-SVN: r83534
2004-06-22i386.c (TARGET_STRUCT_VALUE_RTX): New.Richard Henderson2-21/+43
* config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New. (ix86_return_in_memory): Move SSE vector return warning ... (ix86_struct_value_rtx): ... here. New. From-SVN: r83533
2004-06-23* gcc.dg/builtins-config.h: Handle FreeBSD.Loren J. Rittle2-0/+6
From-SVN: r83532
2004-06-22tree.def (VTABLE_REF): Remove.Richard Henderson23-109/+196
* tree.def (VTABLE_REF): Remove. (OBJ_TYPE_REF): New. (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'. * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF. * fold-const.c (non_lvalue): Likewise. * gimplify.c (gimplify_expr): Likewise. (gimplify_call_expr): Use is_gimple_call_addr. * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New. * langhooks.h (fold_obj_type_ref): New. * tree-gimple.c (is_gimple_call_addr): New. * tree-gimple.h (is_gimple_call_addr): Declare. * tree-inline.c (inlinable_function_p): Fix merge error. (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF. * tree-pretty-print.c (dump_generic_node): Likewise. (print_call_name): Handle OBJ_TYPE_REF. * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF. * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF. * tree.h (OBJ_TYPE_REF_EXPR): New. (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New. * doc/c-tree.texi (VTABLE_REF): Remove. * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF. cp/ * class.c (build_vfn_ref): Take a pointer not object. Build an OBJ_TYPE_REF. (cp_fold_obj_type_ref): New. * call.c (build_over_call): Update build_vfn_ref call. * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New. * cp-tree.h (cp_fold_obj_type_ref): Declare. testsuite/ * g++.dg/opt/devirt1.C: New. From-SVN: r83531
2004-06-23Daily bump.GCC Administrator1-1/+1
[[Split portion of a mixed commit.]] From-SVN: r83527.2
2004-06-22re PR middle-end/16026 (ICE in function.c:4804, assign_parms, when ↵Richard Henderson2-2/+6
-mpowerpc64 & half-word operation) PR middle-end/16026 * function.c (assign_parms): Don't abort for overaligned PARALLEL. From-SVN: r83525
2004-06-22* Makefile.in (distclean): Don't try to remove empty directories.Joseph Myers2-1/+4
From-SVN: r83523
2004-06-22fixJason Merrill1-1/+3
From-SVN: r83517
2004-06-22re PR target/15869 (No NOP after LW (with -mips1 -O0))Richard Sandiford2-0/+8
PR target/15869 * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow. From-SVN: r83516
2004-06-22pr15551.C: New testcase.Kelley Cook2-0/+26
2004-06-22 Kelley Cook <kcook@gcc.gnu.org> * g++.dg/opt/pr15551.C: New testcase. From-SVN: r83515
2004-06-22re PR c++/16112 (ICE with statement expression in return statement)Jason Merrill3-0/+15
PR c++/16112 * cp-gimplify.c (cp_gimplify_init_expr): Look through CLEANUP_POINT_EXPR. From-SVN: r83514
2004-06-22re PR target/14800 (Some x86 tests aren't valid for x86_64)H.J. Lu2-0/+11
2004-06-22 H.J. Lu <hongjiu.lu@intel.com> PR target/14800 * gcc.misc-tests/linkage.exp: Set native_cflags to "-m32" for x86_64-*-linux* when compiling for 32bit. From-SVN: r83513
2004-06-22Testcases for my rs6000-specific change of this date.Dale Johannesen2-0/+23
From-SVN: r83511
2004-06-22mn10300.md (movdi, movdf): Use high/low for movu operands.Alexandre Oliva2-4/+9
* config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu operands. From-SVN: r83510
2004-06-22re PR java/16113 (ICE: Segmentation fault when compiling bytecode with ↵Andrew Haley2-1/+6
debugging info and try/catch) Fixes PR java/16113. * decl.c (force_poplevels): Remove call to expand_end_bindings. Co-Authored-By: Ranjit Mathew <rmathew@hotmail.com> From-SVN: r83509
2004-06-22parse.y (create_class): Correct diagnostic message about java.lang.Object ↵Ranjit Mathew2-2/+7
extending anything else. * parse.y (create_class): Correct diagnostic message about java.lang.Object extending anything else. From-SVN: r83507
2004-06-22rs6000.c (legitimate_offset_address_p): Make global, rename ↵Dale Johannesen4-30/+67
rs6000_legitimate_offset_address_p. 2004-06-22 Dale Johannesen <dalej@apple.com> * config/rs6000/rs6000.c (legitimate_offset_address_p): Make global, rename rs6000_legitimate_offset_address_p. (rs6000_legitimate_address_p): Adjust calls to it. (lmw_operation): Ditto. (stmw_operation): Ditto. * config/rs6000/rs6000-protos.h: Declare it. * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it instead of offsettable_memref_p. 2004-06-22 Dale Johannesen <dalej@apple.com> * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow [reg+reg] mode for TFmode memory accesses. (rs6000_eliminate_indexed_memrefs): New. (rs6000_emit_move): Call preceding for TImode and TFmode. From-SVN: r83504
2004-06-22tree-cfg.c (pass_warn_function_return): It needs CFG, not SSA.Paolo Bonzini2-1/+6
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-22invoke.texi (Machine Dependent Options): Alphabetize.Nathan Sidwell2-3358/+3401
* doc/invoke.texi (Machine Dependent Options): Alphabetize. (Submodel Options): Likewise. From-SVN: r83485
2004-06-22Radar #: 3701874Andrew Pinski5-0/+28
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-22cp-tree.def (NEW_EXPR): Add a fourth slot.Mark Mitchell14-1430/+1343
* 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-22c-opts.c (c_common_handle_option): Handle -fpch-preprocess.Geoffrey Keating14-14/+171
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* tree-ssa.c (ssa_redirect_edge): Correct leading comment.Ben Elliston2-2/+6
From-SVN: r83477
2004-06-21* Makefile.in (gimplify.o): Add cgraph.h.Richard Kenner2-2/+4
From-SVN: r83475
2004-06-21alias.c (adjust_offset_for_component_ref): Use component_ref_field_offset.Richard Kenner72-780/+1648
* 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-22re PR fortran/15750 (IOLENGTH form of INQUIRE statement not implemented)Janne Blomqvist7-16/+137
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-22Daily bump.GCC Administrator1-1/+1
[[Split portion of a mixed commit.]] From-SVN: r83466.2
2004-06-21re PR rtl-optimization/14782 (produces an unaligned data access at -O2)John David Anglin3-23/+69
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-21re PR rtl-optimization/16114 (Hang in cse.c (flush_hash_table))Richard Henderson2-5/+16
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-21c-common.def (RETURN_STMT): Remove.Richard Henderson20-118/+55
* 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-21c-decl.c (start_function): Don't call make_decl_rtl.Zack Weinberg2-9/+7
* 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-22select_1.f90: Rename function to fix type error.Tobias Schlüter3-8/+15
* 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-21re PR target/15551 (-mtune=pentium4 -O2 with sjlj EH breaks stack probe ↵Kelley Cook2-7/+19
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-21Fix whitespace from previous checkingR. Kelley Cook1-16/+16
From-SVN: r83457
2004-06-22re PR fortran/15511 (Warning about truncated lines does not follow the ↵Tobias Schlüter2-11/+35
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-21New test, extracted from 15982Daniel Berlin1-0/+17
From-SVN: r83454
2004-06-21re PR tree-optimization/15982 (ICE in tree-ssa-pre due to GVN-PRE)Daniel Berlin2-168/+243
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-21i386.c: Include insn-codes.hSteven Bosscher4-847/+861
* 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-21Typo fix.Joern Rennecke1-1/+1
From-SVN: r83445
2004-06-21[multiple changes]Joern Rennecke32-180/+394
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-21resolve.c (resolve_symbol): Add comment in function body.Tobias Schlüter2-6/+15
* 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-21array.c (gfc_insert_constructor): Avoid redundant call to mpz_comp.Tobias Schlüter2-3/+10
* array.c (gfc_insert_constructor): Avoid redundant call to mpz_comp. Add 2004 to copyright years. From-SVN: r83442
2004-06-21java-gimplify.c (java_gimplify_block): set TREE_USED on the new block.Andrew Haley2-0/+10
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-21arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need not imply FPA.Paul Brook2-3/+7
* config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need not imply FPA. From-SVN: r83434
2004-06-21fold-const.c (operand_equal_p): Pass flags in recursive calls for binary and ↵Roger Sayle3-3/+39
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