OSDN Git Service

pf3gnuchains/gcc-fork.git
13 years ago PR middle-end/44706
hubicka [Fri, 2 Jul 2010 09:39:54 +0000 (09:39 +0000)]
PR middle-end/44706
* predict.c (predict_paths_for_bb): Handle case when control dependence
BB has only abnormal edges.
* g++.dg/tree-ssa/pr44706.C: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161691 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-07-02 Richard Guenther <rguenther@suse.de>
rguenth [Fri, 2 Jul 2010 09:14:03 +0000 (09:14 +0000)]
2010-07-02  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/44748
* tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
the embedded conversion in MEM_REFs.

* gcc.dg/tree-ssa/ssa-ccp-29.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161689 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agorestore darwin8 objc/c++ test functionality.
iains [Fri, 2 Jul 2010 09:04:55 +0000 (09:04 +0000)]
restore darwin8 objc/c++ test functionality.

* objc-obj-c++-shared/next-abi.h: Remove dependency on system
headers.  Add clause to reflect that, pre-10.5, ABI is always 0.
* objc/execute/forward-1.m: Depend only on __NEXT_RUNTIME__ for
the method types to forward:.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161687 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agofix darwin8 bootstrap issue
iains [Fri, 2 Jul 2010 08:56:04 +0000 (08:56 +0000)]
fix darwin8 bootstrap issue

       * compare-debug (Darwin): Remove '-x' flag from ld-based object
       stripping.  Add a comment as to why we do it this way.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161686 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoDaily bump.
gccadmin [Fri, 2 Jul 2010 00:17:05 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161685 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * g++.dg/cpp0x/nullptr04.C: Use __INTPTR_TYPE__.
jason [Thu, 1 Jul 2010 14:37:22 +0000 (14:37 +0000)]
* g++.dg/cpp0x/nullptr04.C: Use __INTPTR_TYPE__.
* g++.dg/other/pr25632.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161673 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * reload.c: Include toplev.h.
hp [Thu, 1 Jul 2010 13:47:36 +0000 (13:47 +0000)]
* reload.c: Include toplev.h.
* recog.c:  Likewise.
* Makefile.in: Adjust dependencies.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161671 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR tree-optimization/40421
jakub [Thu, 1 Jul 2010 12:53:44 +0000 (12:53 +0000)]
PR tree-optimization/40421
* gfortran.fortran-torture/compile/pr40421.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161669 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * config/ia64/ia64.c (ia64_register_move_cost): Fix argument types.
amylaar [Thu, 1 Jul 2010 12:35:37 +0000 (12:35 +0000)]
* config/ia64/ia64.c (ia64_register_move_cost): Fix argument types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161667 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR debug/44694
jakub [Thu, 1 Jul 2010 11:11:46 +0000 (11:11 +0000)]
PR debug/44694
* dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161662 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-07-01 Richard Guenther <rguenther@suse.de>
rguenth [Thu, 1 Jul 2010 10:50:14 +0000 (10:50 +0000)]
2010-07-01  Richard Guenther  <rguenther@suse.de>

* emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
types for offsets.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161659 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR target/44732
amylaar [Thu, 1 Jul 2010 10:27:34 +0000 (10:27 +0000)]
    PR target/44732
        * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161658 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR target/44727
bernds [Thu, 1 Jul 2010 09:20:40 +0000 (09:20 +0000)]
PR target/44727
* config/i386/i386.md (peephole2 for arithmetic ops with memory):
Make sure operand 0 dies.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161656 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-07-01 Richard Guenther <rguenther@suse.de>
rguenth [Thu, 1 Jul 2010 08:49:19 +0000 (08:49 +0000)]
2010-07-01  Richard Guenther  <rguenther@suse.de>

PR middle-end/42834
PR middle-end/44468
* doc/gimple.texi (is_gimple_mem_ref_addr): Document.
* doc/generic.texi (References to storage): Document MEM_REF.
* tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
(print_call_name): Likewise.
* tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
(build_simple_mem_ref_loc): New function.
(mem_ref_offset): Likewise.
* tree.h (build_simple_mem_ref_loc): Declare.
(build_simple_mem_ref): Define.
(mem_ref_offset): Declare.
* fold-const.c: Include tree-flow.h.
(operand_equal_p): Handle MEM_REF.
(build_fold_addr_expr_with_type_loc): Likewise.
(fold_comparison): Likewise.
(fold_unary_loc): Fold
VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
(fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
(ptr_deref_may_alias_ref_p_1): Likewise.
(ao_ref_base_alias_set): Properly differentiate base object for
offset and TBAA.
(ao_ref_init_from_ptr_and_size): Use MEM_REF.
(indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
(indirect_refs_may_alias_p): Likewise.
(refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
chasing code.
(ref_maybe_used_by_call_p_1): Handle MEM_REF.
(call_may_clobber_ref_p_1): Likewise.
* dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
* expr.c (expand_assignment): Handle MEM_REF.
(store_expr): Handle MEM_REFs from STRING_CSTs.
(store_field): If expanding a MEM_REF of a non-addressable
decl use bitfield operations.
(get_inner_reference): Handle MEM_REF.
(expand_expr_addr_expr_1): Likewise.
(expand_expr_real_1): Likewise.
* tree-eh.c (tree_could_trap_p): Handle MEM_REF.
* alias.c (ao_ref_from_mem): Handle MEM_REF.
(get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
* tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
(dr_analyze_indices): Likewise.
(dr_analyze_alias): Likewise.
(object_address_invariant_in_loop_p): Likewise.
* gimplify.c (mark_addressable): Handle MEM_REF.
(gimplify_cond_expr): Build MEM_REFs.
(gimplify_modify_expr_to_memcpy): Likewise.
(gimplify_init_ctor_preeval_1): Handle MEM_REF.
(gimple_fold_indirect_ref): Adjust.
(gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
* tree.def (MEM_REF): New tree code.
* tree-dfa.c: Include toplev.h.
(get_ref_base_and_extent): Handle MEM_REF.
(get_addr_base_and_unit_offset): New function.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
* gimple-fold.c (may_propagate_address_into_dereference): Handle
MEM_REF.
(maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
accesses if the array has just one dimension.  Remove always true
parameter.  Do not require type compatibility here.
(maybe_fold_offset_to_component_ref): Remove.
(maybe_fold_stmt_indirect): Remove.
(maybe_fold_reference): Remove INDIRECT_REF handling.
Fold back to non-MEM_REF.
(maybe_fold_offset_to_address): Simplify.  Deal with type
mismatches here.
(maybe_fold_reference): Likewise.
(maybe_fold_stmt_addition): Likewise.  Also handle
&ARRAY + I in addition to &ARRAY[0] + I.
(fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
(gimple_get_relevant_ref_binfo): Handle MEM_REF.
* cfgexpand.c (expand_debug_expr): Handle MEM_REF.
* tree-ssa.c (useless_type_conversion_p): Make most pointer
conversions useless.
(warn_uninitialized_var): Handle MEM_REF.
(maybe_rewrite_mem_ref_base): New function.
(execute_update_addresses_taken): Implement re-writing of MEM_REFs
to SSA form.
* tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
INDIRECT_REF handling.
(copy_tree_body_r): Handle MEM_REF.
* gimple.c (is_gimple_addressable): Adjust.
(is_gimple_address): Likewise.
(is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
invariant base are invariant.
(is_gimple_min_lval): Adjust.
(is_gimple_mem_ref_addr): New function.
(get_base_address): Handle MEM_REF.
(count_ptr_derefs): Likewise.
(get_base_loadstore): Likewise.
* gimple.h (is_gimple_mem_ref_addr): Declare.
(gimple_call_fndecl): Handle invariant MEM_REF addresses.
* tree-cfg.c (verify_address): New function, split out from ...
(verify_expr): ... here.  Use for verifying ADDR_EXPRs and
the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
INDIRECT_REFs.
(verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
INDIRECT_REF.  Allow conversions.
(verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
a register does not change its size.
(verify_types_in_gimple_reference): Verify MEM_REF.
(verify_gimple_assign_single): Disallow INDIRECT_REF.
Handle MEM_REF.
* tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
New.
(mark_address_taken): Handle MEM_REF.
(get_indirect_ref_operands): Pass through opf_not_non_addressable.
(get_asm_expr_operands): Pass opf_not_non_addressable.
(get_expr_operands): Handle opf_[not_]non_addressable.
Handle MEM_REF.  Remove INDIRECT_REF handling.
* tree-vrp.c: (check_array_ref): Handle MEM_REF.
(search_for_addr_array): Likewise.
(check_array_bounds): Likewise.
(vrp_stmt_computes_nonzero): Adjust for MEM_REF.
* tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
(ref_always_accessed_p): Likewise.
(gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
* tree-complex.c (extract_component): Do not handle INDIRECT_REF.
Handle MEM_REF.
* cgraphbuild.c (mark_load): Properly check for NULL result
from get_base_address.
(mark_store): Likewise.
* tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
* tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
handling for MEM_REF.
* tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
&MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
* builtins.c (stabilize_va_list_loc): Use the function ABI
valist type if we couldn't canonicalize the argument type.
Always dereference with the canonical va-list type.
(maybe_emit_free_warning): Handle MEM_REF.
(fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
memmove to memcpy.
* builtins.c (fold_builtin_memory_op): Use ref-all types
for all memcpy foldings.
* omp-low.c (build_receiver_ref): Adjust for MEM_REF.
(build_outer_var_ref): Likewise.
(scan_omp_1_op): Likewise.
(lower_rec_input_clauses): Likewise.
(lower_lastprivate_clauses): Likewise.
(lower_reduction_clauses): Likewise.
(lower_copyprivate_clauses): Likewise.
(expand_omp_atomic_pipeline): Likewise.
(expand_omp_atomic_mutex): Likewise.
(create_task_copyfn): Likewise.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
Remove old union trick.  Initialize constant offsets.
(ao_ref_init_from_vn_reference): Likewise.  Do not handle
INDIRECT_REF.  Init base_alias_set properly.
(vn_reference_lookup_3): Replace INDIRECT_REF handling with
MEM_REF.
(vn_reference_fold_indirect): Adjust for MEM_REFs.
(valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
for ARRAY_REFs.
(may_insert): Remove.
(visit_reference_op_load): Do not test may_insert.
(run_scc_vn): Remove parameter, do not fiddle with may_insert.
* tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
a field to store the constant offset this op applies.
(run_scc_vn): Adjust prototype.
* cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
* tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
bother about volatile qualifiers on pointers.
(fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
* tree-ssa-loop-ivopts.c
* tree-ssa-loop-ivopts.c (determine_base_object): Adjust
for MEM_REF.
(strip_offset_1): Likewise.
(find_interesting_uses_address): Replace INDIRECT_REF handling with
MEM_REF handling.
(get_computation_cost_at): Likewise.
* ipa-pure-const.c (check_op): Handle MEM_REF.
* tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
* tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
and constants.
* ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
* tree-parloops.c (take_address_of): Adjust for MEM_REF.
(eliminate_local_variables_1): Likewise.
(create_call_for_reduction_1): Likewise.
(create_loads_for_reductions): Likewise.
(create_loads_and_stores_for_name): Likewise.
* matrix-reorg.c (may_flatten_matrices_1): Sanitize.
(ssa_accessed_in_tree): Handle MEM_REF.
(ssa_accessed_in_assign_rhs): Likewise.
(update_type_size): Likewise.
(analyze_accesses_for_call_stmt): Likewise.
(analyze_accesses_for_assign_stmt): Likewise.
(transform_access_sites): Likewise.
(transform_allocation_sites): Likewise.
* tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
not handle INDIRECT_REF.
* tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
(cond_store_replacement): Likewise.
* tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
MEM_REF, no not handle INDIRECT_REFs.
(insert_into_preds_of_block): Properly initialize avail.
(phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
for ARRAY_REFs.  Properly handle reference lookups that
require a bit re-interpretation.
(can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
* tree-sra.c
* tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
(build_ref_for_offset_1): Remove.
(build_ref_for_offset): Build MEM_REFs.
(gate_intra_sra): Disable for now.
(sra_ipa_modify_expr): Handle MEM_REF.
(ipa_early_sra_gate): Disable for now.
* tree-sra.c (create_access): Swap INDIRECT_REF handling for
MEM_REF handling.
(disqualify_base_of_expr): Likewise.
(ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
MEM_REF handling.
(sra_ipa_modify_expr): Remove INDIRECT_REF handling.
Use mem_ref_offset.  Remove bogus folding.
(build_access_from_expr_1): Properly handle MEM_REF for
non IPA-SRA.
(make_fancy_name_1): Add support for MEM_REF.
* tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
* tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
* ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
(compute_complex_ancestor_jump_func): Likewise.
(ipa_analyze_virtual_call_uses): Likewise.
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
INDIRECT_REF folding with more generalized MEM_REF folding.
(tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
(forward_propagate_addr_into_variable_array_index): Also handle
&ARRAY + I in addition to &ARRAY[0] + I.
* tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
* tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
creates assignments with overlap.
* tree-nested.c (get_static_chain): Adjust for MEM_REF.
(get_frame_field): Likewise.
(get_nonlocal_debug_decl): Likewise.
(convert_nonlocal_reference_op): Likewise.
(struct nesting_info): Add mem_refs pointer-set.
(create_nesting_tree): Allocate it.
(convert_local_reference_op): Insert to be folded mem-refs.
(fold_mem_refs): New function.
(finalize_nesting_tree_1): Perform defered folding of mem-refs
(free_nesting_tree): Free the pointer-set.
* tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
(vectorizable_load): Likewise.
* tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
(propagate_with_phi): Likewise.
* tree-object-size.c (addr_object_size): Handle MEM_REFs
instead of INDIRECT_REFs.
(compute_object_offset): Handle MEM_REF.
(plus_stmt_object_size): Handle MEM_REF.
(collect_object_sizes_for): Dispatch to plus_stmt_object_size
for &MEM_REF.
* tree-flow.h (get_addr_base_and_unit_offset): Declare.
(symbol_marked_for_renaming): Likewise.
* Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
(fold-const.o): Add $(TREE_FLOW_H).
* tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
(find_func_clobbers): Likewise.
* ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
(decompose_access): Likewise.
(replace_field_acc): Likewise.
(replace_field_access_stmt): Likewise.
(insert_new_var_in_stmt): Likewise.
(get_stmt_accesses): Likewise.
(reorg_structs_drive): Disable.
* config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
(ix86_canonical_va_list_type): Likewise.

cp/
* cp-gimplify.c (cp_gimplify_expr): Open-code the rhs
predicate we are looking for, allow non-gimplified
INDIRECT_REFs.

testsuite/
* gcc.c-torture/execute/20100316-1.c: New testcase.
* gcc.c-torture/execute/pr44468.c: Likewise.
* gcc.c-torture/compile/20100609-1.c: Likewise.
* gcc.dg/volatile2.c: Adjust.
* gcc.dg/plugin/selfassign.c: Likewise.
* gcc.dg/pr36902.c: Likewise.
* gcc.dg/tree-ssa/foldaddr-2.c: Remove.
* gcc.dg/tree-ssa/foldaddr-3.c: Likewise.
* gcc.dg/tree-ssa/forwprop-8.c: Adjust.
* gcc.dg/tree-ssa/pr17141-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-fre-13.c: Likewise.
* gcc.dg/tree-ssa/ssa-fre-14.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-21.c: Likewise.
* gcc.dg/tree-ssa/pta-ptrarith-1.c: Likewise.
* gcc.dg/tree-ssa/20030807-7.c: Likewise.
* gcc.dg/tree-ssa/forwprop-10.c: Likewise.
* gcc.dg/tree-ssa/ssa-fre-1.c: Likewise.
* gcc.dg/tree-ssa/pta-ptrarith-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-23.c: Likewise.
* gcc.dg/tree-ssa/forwprop-1.c: Likewise.
* gcc.dg/tree-ssa/forwprop-2.c: Likewise.
* gcc.dg/tree-ssa/struct-aliasing-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-25.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-26.c: Likewise.
* gcc.dg/tree-ssa/struct-aliasing-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-26.c: Likewise.
* gcc.dg/tree-ssa/ssa-sccvn-4.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-7.c: Likewise.
* gcc.dg/tree-ssa/forwprop-5.c: Likewise.
* gcc.dg/struct/w_prof_two_strs.c: XFAIL.
* gcc.dg/struct/wo_prof_escape_arg_to_local.c: Likewise.
* gcc.dg/struct/wo_prof_global_var.c: Likewise.
* gcc.dg/struct/wo_prof_malloc_size_var.c: Likewise.
* gcc.dg/struct/w_prof_local_array.c: Likewise.
* gcc.dg/struct/w_prof_single_str_global.c: Likewise.
* gcc.dg/struct/wo_prof_escape_str_init.c: Likewise.
* gcc.dg/struct/wo_prof_array_through_pointer.c: Likewise.
* gcc.dg/struct/w_prof_global_array.c: Likewise.
* gcc.dg/struct/wo_prof_array_field.c: Likewise.
* gcc.dg/struct/wo_prof_single_str_local.c: Likewise.
* gcc.dg/struct/w_prof_local_var.c: Likewise.
* gcc.dg/struct/wo_prof_two_strs.c: Likewise.
* gcc.dg/struct/wo_prof_empty_str.c: Likewise.
* gcc.dg/struct/wo_prof_local_array.c: Likewise.
* gcc.dg/struct/w_prof_global_var.c: Likewise.
* gcc.dg/struct/wo_prof_single_str_global.c: Likewise.
* gcc.dg/struct/wo_prof_escape_substr_value.c: Likewise.
* gcc.dg/struct/wo_prof_global_array.c: Likewise.
* gcc.dg/struct/wo_prof_escape_return.c: Likewise.
* gcc.dg/struct/wo_prof_escape_substr_array.c: Likewise.
* gcc.dg/struct/wo_prof_double_malloc.c: Likewise.
* gcc.dg/struct/w_ratio_cold_str.c: Likewise.
* gcc.dg/struct/wo_prof_escape_substr_pointer.c: Likewise.
* gcc.dg/struct/wo_prof_local_var.c: Likewise.
* gcc.dg/tree-prof/stringop-1.c: Adjust.
* g++.dg/tree-ssa/pr31146.C: Likewise.
* g++.dg/tree-ssa/copyprop-1.C: Likewise.
* g++.dg/tree-ssa/pr33604.C: Likewise.
* g++.dg/plugin/selfassign.c: Likewise.
* gfortran.dg/array_memcpy_3.f90: Likewise.
* gfortran.dg/array_memcpy_4.f90: Likewise.
* c-c++-common/torture/pr42834.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161655 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoDaily bump.
gccadmin [Thu, 1 Jul 2010 00:17:09 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161653 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago/cp
paolo [Wed, 30 Jun 2010 20:46:46 +0000 (20:46 +0000)]
/cp
2010-06-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/44628
* typeck.c (cp_build_unary_op): Early return error_mark_node when
arg is NULL_TREE too.
* call.c (convert_class_to_reference): Return error_mark_node when
expr is NULL_TREE.

/testsuite
2010-06-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/44628
* g++.dg/template/crash100.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161639 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR other/44566
amylaar [Wed, 30 Jun 2010 18:47:43 +0000 (18:47 +0000)]
    PR other/44566
        * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
        * target.def (struct gcc_target): Replace enum reg_class with
        reg_class_t in hook argument / return types.
        * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
        (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
        (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
        * targhooks.h (default_branch_target_register_class): Likewise.
        (default_ira_cover_classes, default_secondary_reload): Likewise.
        (default_memory_move_cost, default_register_move_cost): Likewise.
        * targhooks.c (default_branch_target_register_class): Likewise.
        (default_ira_cover_classes, default_secondary_reload): Likewise.
        (default_memory_move_cost, default_register_move_cost): Likewise.
        * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
        * bt-load.c (branch_target_load_optimize): Likewise.
        * ira.c (setup_cover_and_important_classes): Likewise.
        * ira-costs.c (copy_cost): Likewise.
        * reload1.c (emit_input_reload_insns): Likewise.
        * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
        * config/frv/frv.c (frv_secondary_reload): Likewise.
        * config/s390/s390.c (s390_secondary_reload): Likewise.
        * config/i386/i386.c (i386_ira_cover_classes): Likewise.
        (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
        (ix86_register_move_cost): Likewise.
        * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
        * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
        * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
        * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
        * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
        (rs6000_ira_cover_classes): Likewise.
        * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
        * config/picochip/picochip-protos.h (picochip_secondary_reload):
        Likewise.
        * config/pa/pa.c (pa_secondary_reload): Likewise.
        * config/mips/mips.c (mips_ira_cover_classes): Likewise.
        * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
        * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
        * doc/tm.texi: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161633 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-30 Sebastian Pop <sebastian.pop@amd.com>
rguenth [Wed, 30 Jun 2010 18:38:37 +0000 (18:38 +0000)]
2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>

PR bootstrrap/44726
* graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
use.
(build_alias_set_optimal_p): Likewise.
(build_base_obj_set_for_drs): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161631 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * target.def (print_operand, print_operand_address): Update comment.
amylaar [Wed, 30 Jun 2010 18:24:20 +0000 (18:24 +0000)]
* target.def (print_operand, print_operand_address): Update comment.
(print_operand_punct_valid_p): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161629 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * target.def (dfa_new_cycle): Use DEFHOOK. Rename dump_file to dump,
amylaar [Wed, 30 Jun 2010 18:11:35 +0000 (18:11 +0000)]
* target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
last-sched_cycle to last_clock, cur_cycle to clock.
* doc/tm.texi.in: Use @hook.
* doc/tm.texi: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161628 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * target.def (return_pops_args): Use DEFHOOK.
amylaar [Wed, 30 Jun 2010 18:10:23 +0000 (18:10 +0000)]
* target.def (return_pops_args): Use DEFHOOK.
* doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
Rename stack-size to size.
* doc/tm.texi: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161627 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * target.def (resolve_overloaded_builtin): Rename params to arglist.
amylaar [Wed, 30 Jun 2010 18:08:56 +0000 (18:08 +0000)]
* target.def (resolve_overloaded_builtin): Rename params to arglist.
Use DEFHOOK.
* doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
* doc/tm.texi: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161626 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * target.def (pass_by_reference): Use DEFHOOK.
amylaar [Wed, 30 Jun 2010 18:06:11 +0000 (18:06 +0000)]
* target.def (pass_by_reference): Use DEFHOOK.
* doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
* doc/tm.texi: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161625 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * target.def (pragma_parse): Use DEFHOOK.
amylaar [Wed, 30 Jun 2010 18:04:48 +0000 (18:04 +0000)]
    * target.def (pragma_parse): Use DEFHOOK.
        * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
        s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
        * doc/tm.texi: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161624 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * target.def (memory_move_cost): Use DEFHOOK.
amylaar [Wed, 30 Jun 2010 17:56:15 +0000 (17:56 +0000)]
* target.def (memory_move_cost): Use DEFHOOK.
* doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
Rename regclass AKA class to rclass.
* doc/tm.texi: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161623 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * target.def (fold_builtin): Rename nargs to n_args. Use DEFHOOK.
amylaar [Wed, 30 Jun 2010 17:55:03 +0000 (17:55 +0000)]
* target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
* doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
* doc/tm.texi: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161622 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * target.def (enum_va_list_p): Use DEFHOOK.
amylaar [Wed, 30 Jun 2010 17:53:44 +0000 (17:53 +0000)]
    * target.def (enum_va_list_p): Use DEFHOOK.
        * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
        Rename ptype to ptree.
        * doc/tm.texi: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161621 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * target.def (builtin_reciprocal): Change tm_fn to md_fn. Use DEFHOOK.
amylaar [Wed, 30 Jun 2010 17:52:17 +0000 (17:52 +0000)]
* target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
* doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161620 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * target.def (declare_constant_name): Change exp to expr. Use DEFHOOK.
amylaar [Wed, 30 Jun 2010 17:49:36 +0000 (17:49 +0000)]
    * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
        * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
        * doc/tm.texi: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161619 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * target.def: Remove comment about licensing problems of function
amylaar [Wed, 30 Jun 2010 17:48:41 +0000 (17:48 +0000)]
* target.def: Remove comment about licensing problems of function
declaration.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161618 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
manu [Wed, 30 Jun 2010 17:12:36 +0000 (17:12 +0000)]
2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
to rtl.h.
(error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
* rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations
here.
* rtl-error.h: New.
* regrename.c: Do not include toplev.h. Include rtl-error.h.
* rtl-error.c: Likewise.
* reload.c: Likewise.
* recog.c:  Likewise.
* sel-sched.c: Likewise.
* function.c: Likewise.
* reg-stack.c: Likewise.
* cfgrtl.c: Likewise.
* reload1.c: Likewise.
* final.c: Include rtl-error.
* Makefile.in: Adjust dependencies.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161617 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoFix typo.
hubicka [Wed, 30 Jun 2010 16:56:02 +0000 (16:56 +0000)]
Fix typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161616 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR middle-end/PR44706
hubicka [Wed, 30 Jun 2010 16:51:36 +0000 (16:51 +0000)]
PR middle-end/PR44706
* ipa-split (split_function): Refine conditions when to use DECL_RESULT
to return the value.
* gcc.dg/tree-ssa/ipa-split-4.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161615 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR bootstrap/44699
matz [Wed, 30 Jun 2010 16:34:22 +0000 (16:34 +0000)]
PR bootstrap/44699
* tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
* gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
a gimple reg, attach the original VDEF to the last store in the
sequence.

testsuite/
PR bootstrap/44699
* gcc.dg/pr44699.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161614 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago* repo.c (finish_repo): Fix typo.
matz [Wed, 30 Jun 2010 16:08:29 +0000 (16:08 +0000)]
* repo.c (finish_repo): Fix typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161612 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR other/44034
iains [Wed, 30 Jun 2010 14:33:40 +0000 (14:33 +0000)]
PR other/44034
* config/darwin.c (darwin_override_options): Use renamed
targetm.asm_out.emit_unwind_label.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161606 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR tree-optimization/39799
bernds [Wed, 30 Jun 2010 14:16:28 +0000 (14:16 +0000)]
PR tree-optimization/39799
* tree-inline.c (remap_ssa_name): Initialize variable only if
SSA_NAME_OCCURS_IN_ABNORMAL_PHI.

testsuite/
PR tree-optimization/39799
* c-c++-common/uninit-17.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161605 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agogcc/
froydnj [Wed, 30 Jun 2010 12:20:54 +0000 (12:20 +0000)]
gcc/
* c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.

gcc/cp/
* parser.c (cp_parser_omp_for_loop): Use a VEC for for_block.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161599 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * repo.c (pending_repo): Change type to a VEC.
froydnj [Wed, 30 Jun 2010 12:13:34 +0000 (12:13 +0000)]
* repo.c (pending_repo): Change type to a VEC.
(finish_repo): Adjust for new type of pending_repo.
(repo_emit_p): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161598 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-30 Richard Guenther <rguenther@suse.de>
rguenth [Wed, 30 Jun 2010 11:09:37 +0000 (11:09 +0000)]
2010-06-30  Richard Guenther  <rguenther@suse.de>

PR target/44722
* config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
against oscillation with reverse peephole2.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161597 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-30 H.J. Lu <hongjiu.lu@intel.com>
rguenth [Wed, 30 Jun 2010 09:47:25 +0000 (09:47 +0000)]
2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>

PR target/44721
* config/i386/i386.md (peephole2 for arithmetic ops with memory):
Fix last commit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161594 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * config/rx/rx-modes.def: New file.
nickc [Wed, 30 Jun 2010 08:50:14 +0000 (08:50 +0000)]
    * config/rx/rx-modes.def: New file.
        * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
        (CC_REGNUM): Define.
        (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
        register.
        (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
        (SELECT_CC_MODE): Define.
        * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
        (reg:CC CC_REG) instead of (cc0).
        (attr "cc"): Delete.
        (cbranchsi4): Do not split compare and branch here. Instead move
        it to...
        (cbranchsi4_<code>): ... here.  New patterns.
        (cmpsi): Call rx-compare_redundant to find out if it is necessary
        to emit the compare instruction.
        * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
        cc_status flags.
        (rx_get_stack_layout): Iterate up to before CC_REGNUM not
        FIRST_PSEUDO_REGNUM.
        (rx_expand_prologue, rx_expand_epilogue): Likewise.
        (rx_notice_update_cc): Delete.
        (rx_cc_modes_compatible): New function.
        (flags_needed_for_conditional): New function.
        (flags_from_mode): New function.
        (rx_compare_redundant): New function - scans backwards through
        insn list to find out if condition flags are already set
        correctly.
        (TARGET_CC_MODES_COMPATIBLE): Define.
        * config/rx/rx-protos.h (rx_compare_redundant): Prototype.

        * config/rx/rx.h (BRANCH_COST): Define.
        (REGISTER_MOVE_COST): Define.
        * config/rx/predicates (rx_source_operand): Allow all constant
        types.
        * config/rx/rx.md (addsi3): Add alternative for swapped operands.
        (tstsi4): New pattern.
        * config/rx/rx.c (rx_memory_move_cost): Define.
        (TARGET_MEMORY_MOVE_COST): Define.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161592 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
manu [Wed, 30 Jun 2010 07:39:21 +0000 (07:39 +0000)]
2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* tree.h (block_may_fallthru): Declare here.
* tree-flow.h (block_may_fallthru): Do not declare here.
* c-typeck.c: Do not include tree-flow.h. Include gimple.h and
bitmap.h
* Makefile.in (c-typeck.o): Update dependencies.
c-family/
* c-gimplify.c: Do not include tree-flow.h
cp/
* tree.c: Include gimple.h. Do not include tree-flow.h
* decl.c: Do not include tree-flow.h
* Make-lang.in: Adjust dependencies.
ada/
* gcc-interface/trans.c: Do not include tree-flow.h.
* gcc-interface/Make-lang.in: Adjust dependencies.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161591 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR debug/44694
jakub [Wed, 30 Jun 2010 06:12:22 +0000 (06:12 +0000)]
PR debug/44694
* cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
* cselib.c (cfa_base_preserved_regno): New static variable.
(cselib_reset_table): Don't reset cfa_base_preserved_regno instead
of REGNO (cfa_base_preserved_val->locs->loc).
(cselib_preserve_cfa_base_value): Add regno argument, set
cfa_base_preserved_regno to it.
(cselib_invalidate_regno): Allow removal of registers other than
cfa_base_preserved_regno from cfa_base_preserved_val.
(cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
* var-tracking.c (adjust_mems): Replace sp or hfp even outside
of MEM addresses, if not on LHS.
(reverse_op): Don't add reverse ops for cfa_base_rtx.
(vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161587 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Wed, 30 Jun 2010 01:38:42 +0000 (01:38 +0000)]
2010-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libfortran/43298
* gfortran.dg/read_infnan_1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161586 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Wed, 30 Jun 2010 01:35:56 +0000 (01:35 +0000)]
2010-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libfortran/43298
* io/read.c: Add code to parse and read Inf, Infinity, NaN, and Nan with
optional parenthesis.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161585 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * decl.c (incomplete_var): Declare. Declare VECs containing them.
froydnj [Wed, 30 Jun 2010 01:26:14 +0000 (01:26 +0000)]
* decl.c (incomplete_var): Declare.  Declare VECs containing them.
(incomplete_vars): Adjust comment.  Change type to a VEC.
(maybe_register_incomplete_var): Adjust for new type.
(complete_vars): Adjust iteration over incomplete_vars.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161584 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * decl.c (struct named_label_entry): Change type of bad_decls field
froydnj [Wed, 30 Jun 2010 01:24:53 +0000 (01:24 +0000)]
* decl.c (struct named_label_entry): Change type of bad_decls field
to a VEC.
(poplevel_named_label_1): Adjust for new type of bad_decls.
(check_goto): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161583 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago Enable implicitly declared move constructor/operator= (N3053).
jason [Wed, 30 Jun 2010 00:51:44 +0000 (00:51 +0000)]
Enable implicitly declared move constructor/operator= (N3053).
gcc/cp/
* class.c (add_implicitly_declared_members): A class with no
explicitly declared copy or move constructor gets both declared
implicitly, and similarly for operator=.
(check_bases): A type with no copy ctor does not inhibit
a const copy ctor in a derived class.
(check_field_decl): Likewise.
(check_bases_and_members): A nonexistent copy ctor/op= is non-trivial.
* tree.c (type_has_nontrivial_copy_init): Adjust semantics.
(trivially_copyable_p): Likewise.
* call.c (convert_like_real): Use type_has_nontrivial_copy_init.
* class.c (finish_struct_bits): Likewise.
* tree.c (build_target_expr_with_type): Likewise.
* typeck2.c (store_init_value): Likewise.
libstdc++-v3/
* include/bits/unordered_map.h: Explicitly default copy constructors.
* include/bits/unordered_set.h: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161582 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago Enable implicitly deleted functions (N2346)
jason [Wed, 30 Jun 2010 00:51:29 +0000 (00:51 +0000)]
Enable implicitly deleted functions (N2346)
* class.c (check_bases_and_members): Adjust lambda flags.
* method.c (implicitly_declare_fn): Set DECL_DELETED_FN if appropriate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161581 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * decl2.c (mark_used): Adjust error for use of deleted function.
jason [Wed, 30 Jun 2010 00:51:13 +0000 (00:51 +0000)]
* decl2.c (mark_used): Adjust error for use of deleted function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161580 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago Machinery to support implicit delete/move.
jason [Wed, 30 Jun 2010 00:50:57 +0000 (00:50 +0000)]
Machinery to support implicit delete/move.
* cp-tree.h: (struct lang_type_class): Add lazy_move_assign,
has_complex_move_ctor, has_complex_move_assign bitfields.
(CLASSTYPE_LAZY_MOVE_ASSIGN): New.
(TYPE_HAS_COMPLEX_MOVE_ASSIGN): New.
(TYPE_HAS_COMPLEX_MOVE_CTOR): New.
(enum special_function_kind): Add sfk_move_assignment.
(LOOKUP_SPECULATIVE): New.
* call.c (build_over_call): Return early if it's set.
(build_over_call): Use trivial_fn_p.
* class.c (check_bases): If the base has no default constructor,
the derived one is non-trivial.  Handle move ctor/op=.
(check_field_decl): Likewise.
(check_bases_and_members): Handle move ctor/op=.
(add_implicitly_declared_members): Handle CLASSTYPE_LAZY_MOVE_ASSIGN.
(type_has_move_constructor, type_has_move_assign): New.
* decl.c (grok_special_member_properties): Handle move ctor/op=.
* method.c (type_has_trivial_fn, type_set_nontrivial_flag): New.
(trivial_fn_p): New.
(do_build_copy_constructor): Use it.
(do_build_assign_ref): Likewise.  Handle move assignment.
(build_stub_type, build_stub_object, locate_fn_flags): New.
(locate_ctor): Use locate_fn_flags.
(locate_copy, locate_dtor): Remove.
(get_dtor, get_default_ctor, get_copy_ctor, get_copy_assign): New.
(process_subob_fn, synthesized_method_walk): New.
(maybe_explain_implicit_delete): New.
(implicitly_declare_fn): Use synthesized_method_walk,
type_has_trivial_fn, and type_set_nontrivial_flag.
(defaulted_late_check): Set DECL_DELETED_FN.
(defaultable_fn_check): Handle sfk_move_assignment.
(lazily_declare_fn): Clear CLASSTYPE_LAZY_* early.  Don't declare
implicitly deleted move ctor/op=.
* search.c (lookup_fnfields_1): Handle sfk_move_assignment.
(lookup_fnfields_slot): New.
* semantics.c (omp_clause_info_fndecl): Remove.
(cxx_omp_create_clause_info): Use get_default_ctor, get_copy_ctor,
get_copy_assign, trivial_fn_p.
(trait_expr_value): Adjust call to locate_ctor.
* tree.c (special_function_p): Handle sfk_move_assignment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161579 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * class.c (type_has_virtual_destructor): New.
jason [Wed, 30 Jun 2010 00:50:45 +0000 (00:50 +0000)]
* class.c (type_has_virtual_destructor): New.
* cp-tree.h: Declare it.
* semantics.c (trait_expr_value): Use it.

* call.c (build_over_call): Only give warnings with tf_warning.

* name-lookup.c (pop_scope): Handle NULL_TREE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161578 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * cp-tree.h (TYPE_HAS_ASSIGN_REF): Rename to TYPE_HAS_COPY_ASSIGN.
jason [Wed, 30 Jun 2010 00:50:34 +0000 (00:50 +0000)]
* cp-tree.h (TYPE_HAS_ASSIGN_REF): Rename to TYPE_HAS_COPY_ASSIGN.
(TYPE_HAS_CONST_ASSIGN_REF): Rename to TYPE_HAS_CONST_COPY_ASSIGN.
(TYPE_HAS_INIT_REF): Rename to TYPE_HAS_COPY_CTOR.
(TYPE_HAS_CONST_INIT_REF): Rename to TYPE_HAS_CONST_COPY_CTOR.
(TYPE_HAS_COMPLEX_ASSIGN_REF): Rename to TYPE_HAS_COMPLEX_COPY_ASSIGN.
(TYPE_HAS_COMPLEX_INIT_REF): Rename to TYPE_HAS_COMPLEX_COPY_CTOR.
(TYPE_HAS_TRIVIAL_ASSIGN_REF): Rename to TYPE_HAS_TRIVIAL_COPY_ASSIGN.
(TYPE_HAS_TRIVIAL_INIT_REF): Rename to TYPE_HAS_TRIVIAL_COPY_CTOR.
(CLASSTYPE_LAZY_ASSIGNMENT_OP): Rename to CLASSTYPE_LAZY_COPY_ASSIGN.
(sfk_assignment_operator): Rename to sfk_copy_assignment.
* decl.c, call.c, class.c, init.c, method.c, pt.c, ptree.c: Adjust.
* search.c, semantics.c, tree.c: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161577 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoDaily bump.
gccadmin [Wed, 30 Jun 2010 00:17:19 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161574 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
bernds [Tue, 29 Jun 2010 22:29:30 +0000 (22:29 +0000)]
* recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
static variables.
(peep2_buf_position): New static function.
(peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
peephole2_optimize): Use it.
(peep2_attempt, peep2_update_life): New static functions, broken out
of peephole2_optimize.
(peep2_fill_buffer): New static function.
(peephole2_optimize): Change the main loop to try to fill the buffer
with the maximum number of insns before matching them against
peepholes.  Use a forward scan.  Remove special case for targets with
conditional execution.
* genrecog.c (change_state): Delete dead code.
* config/i386/i386.md (peephole2 for arithmetic ops with memory):
Rewrite so as not to expect the second insn to have had a peephole
applied yet.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161570 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-29 Janus Weil <janus@gcc.gnu.org>
janus [Tue, 29 Jun 2010 21:40:38 +0000 (21:40 +0000)]
2010-06-29  Janus Weil  <janus@gcc.gnu.org>

PR fortran/44718
* resolve.c (is_external_proc): Prevent procedure pointers from being
regarded as external procedures.

2010-06-29  Janus Weil  <janus@gcc.gnu.org>

PR fortran/44718
* gfortran.dg/proc_ptr_28.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161569 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * genhooks.c (emit_findices): Cast field precision to int.
froydnj [Tue, 29 Jun 2010 20:54:53 +0000 (20:54 +0000)]
* genhooks.c (emit_findices): Cast field precision to int.
(emit_documentation): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161568 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR tree-optimization/43801
jakub [Tue, 29 Jun 2010 19:46:05 +0000 (19:46 +0000)]
PR tree-optimization/43801
* cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
if old_decl was DECL_ONE_ONLY.

* g++.dg/torture/pr43801.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161564 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR debug/44668
jakub [Tue, 29 Jun 2010 19:37:46 +0000 (19:37 +0000)]
PR debug/44668
* dwarf2out.c (add_accessibility_attribute): New function.
(gen_subprogram_die, gen_variable_die, gen_field_die): Use it
instead of adding DW_AT_accessibility manually.
(gen_enumeration_type_die, gen_struct_or_union_type_die,
gen_typedef_die): Use it.

* g++.dg/debug/dwarf2/accessibility1.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161563 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * pt.c (dependent_scope_ref_p): Remove.
jason [Tue, 29 Jun 2010 19:29:14 +0000 (19:29 +0000)]
* pt.c (dependent_scope_ref_p): Remove.
(value_dependent_expression_p): Don't call it.
(type_dependent_expression_p): Here either.
* init.c (build_offset_ref): Set TREE_TYPE on a qualified-id
if the scope isn't dependent.

* pt.c (convert_nontype_argument): Use mark_lvalue_use if we want
a reference.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161560 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR c++/44587
jason [Tue, 29 Jun 2010 19:29:02 +0000 (19:29 +0000)]
PR c++/44587
* pt.c (has_value_dependent_address): New.
(value_dependent_expression_p): Check it.
(convert_nontype_argument): Likewise.  Call decay_conversion before
folding if we want a pointer.
* semantics.c (finish_id_expression): Don't add SCOPE_REF if the
scope is the current instantiation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161559 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
amylaar [Tue, 29 Jun 2010 19:26:56 +0000 (19:26 +0000)]
    * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
        (targetm.sched.init): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161558 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * vmsdbgout.c (full_name): Just output the file name if not native.
rupp [Tue, 29 Jun 2010 19:15:12 +0000 (19:15 +0000)]
* vmsdbgout.c (full_name): Just output the file name if not native.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161557 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
rupp [Tue, 29 Jun 2010 19:11:47 +0000 (19:11 +0000)]
* vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
(funcnam_table): New static table.
(funcnum_table): New static table.
(write_rtnbeg): Write value saved in funcnum_table.
(write_rtnend): Write value saved in funcnum_table.
(vmsdbgout_begin_function): Save current function info in
(vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
(vmsdbgout_finish): Iterate over funcnum_table.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161556 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * Makefile.in (s-tm-texi): Remove stray tab / rule.
amylaar [Tue, 29 Jun 2010 19:09:25 +0000 (19:09 +0000)]
* Makefile.in (s-tm-texi): Remove stray tab / rule.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161555 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-29 Janus Weil <janus@gcc.gnu.org>
janus [Tue, 29 Jun 2010 19:06:07 +0000 (19:06 +0000)]
2010-06-29  Janus Weil  <janus@gcc.gnu.org>

PR fortran/44696
* trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
passed as second argument of ASSOCIATED.

2010-06-29  Janus Weil  <janus@gcc.gnu.org>

PR fortran/44696
* gfortran.dg/associated_target_4.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161554 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
rupp [Tue, 29 Jun 2010 19:05:53 +0000 (19:05 +0000)]
* vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
(vmsdbgout_type_decl): Declare
(vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
(FUNC_EPILOGUE_LABEL): New macro
(vmsdbgout_begin_epilogue): New function.
(vmsdbgout_type_decl): New function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161553 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoCommitted as obvious.
rupp [Tue, 29 Jun 2010 19:04:12 +0000 (19:04 +0000)]
Committed as obvious.

* vmsdbg.h: Update copyright.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161552 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-29 Paul Thomas <pault@gcc.gnu.org>
pault [Tue, 29 Jun 2010 18:57:43 +0000 (18:57 +0000)]
2010-06-29  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/44582
* trans-expr.c (arrayfunc_assign_needs_temporary): New function
to determine if a function assignment can be made without a
temporary.
(gfc_trans_arrayfunc_assign): Move all the conditions that
suppress the direct function call to the above new functon and
call it.

2010-06-29  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/44582
* gfortran.dg/aliasing_array_result_1.f90 : New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161550 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * vmsdbg.h (DST_K_TBG): New DST constant.
rupp [Tue, 29 Jun 2010 18:53:39 +0000 (18:53 +0000)]
* vmsdbg.h (DST_K_TBG): New DST constant.
* vmsdbgout.c (addr_const_to_string): Removed, not referenced.
(write_modbeg): Cast module_language to avoid warning.
(write_rtnbeg): Use DST_K_TBG vice magic mystery number.
Minor reformatting.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161549 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agogcc:
amylaar [Tue, 29 Jun 2010 18:22:00 +0000 (18:22 +0000)]
gcc:
PR other/44034
* target.def, doc/tm.texi.in, genhooks.c: New files.
* target.h: Instead of defining individual hook members,
define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
include target.def.
* target-def.h: Instead of defining individual hook initializers,
include target-hooks-def.h.
* df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
targetm.live_on_entry -> targetm.extra_live_on_entry
targetm.sched.md_finish ->targetm.sched.finish
targetm.sched.md_init -> targetm.sched.init
targetm.sched.md_init_global -> targetm.sched.init_global
targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
targetm.asm_out.except_table_label ->
  targetm.asm_out.emit_except_table_label
targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
targetm.target_help -> targetm.help
targetm.vectorize.builtin_support_vector_misalignment ->
  targetm.vectorize.support_vector_misalignment
targetm.file_start_app_off -> targetm.asm_file_start_app_off
targetm.file_start_file_directive ->
 targetm.asm_file_start_file_directive
* dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
* varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
* gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
TARGET_VECTOR_ALIGNMENT_REACHABLE ->
  TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
  TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
* config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
* Makefile.in (TARGET_H): Depend on target.def.
(TARGET_DEF_H): Depend on target-hooks-def.h.
(target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
(s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
* doc/tm.texi: Regenerate.
gcc/c-family:
* c-common.c: Rename targetm member:
targetm.enum_va_list -> targetm.enum_va_list_p
gcc/po:
* EXCLUDES: Add genhooks.c.
Index: gcc/doc/tm.texi

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161547 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * lib/lto.exp (lto_prune_warns): Also accept leading single quote.
ro [Tue, 29 Jun 2010 16:35:06 +0000 (16:35 +0000)]
* lib/lto.exp (lto_prune_warns): Also accept leading single quote.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161541 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR bootstrap/44713
froydnj [Tue, 29 Jun 2010 15:57:06 +0000 (15:57 +0000)]
PR bootstrap/44713
* config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
(function_arg_advance_32): Const-ify TYPE parameter.
(function_arg_advance_64): Likewise.  Change type of NAMED to bool.
(ix86_function_arg_advance): Change type of NAMED to bool.
(function_arg_32): Const-ify CUM and TYPE parameters.
(function_arg_64): Likewise.  Change type of NAMED to bool.
(function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
to bool.
(ix86_function_arg): Change type of NAMED to bool.
(ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
last argument as a bool.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161540 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoChangeLog typo fix.
amylaar [Tue, 29 Jun 2010 15:03:06 +0000 (15:03 +0000)]
ChangeLog typo fix.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161539 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
amylaar [Tue, 29 Jun 2010 14:38:13 +0000 (14:38 +0000)]
    * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
        (OVERRIDE_OPTIONS): Add note of obsolescence.
        Replace references with references to TARGET_OPTION_OVERRIDE.
        (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
         the macro).
        * targhooks.c (default_target_option_override): New function.
        * targhooks.h (default_target_option_override): Declare.
        * target.h (struct gcc_target): Add override member to
        target_option emmber.
        * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
        targetm.target_option.override call.
        * target-def.h (TARGET_OPTION_OVERRIDE): Define.
        (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161538 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * tree-inline.c: Replace incomming by incomin and clonning by cloning.
hubicka [Tue, 29 Jun 2010 14:26:00 +0000 (14:26 +0000)]
* tree-inline.c: Replace incomming by incomin and clonning by cloning.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161537 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
hubicka [Tue, 29 Jun 2010 14:14:15 +0000 (14:14 +0000)]
* predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
unreachable.
(rebuild_frequencies): New function.
* predict.h (rebuild_frequencies): Declare.
* tree-inline.c (copy_cfg_body): Compute properly count & frequency of
entry block and edge reaching new_entry.
(tree_function_versioning): When doing partial cloning, rebuild frequencies
when done.
* passes.c (execute_function_todo): Use rebild_frequencies.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161536 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-29 Richard Guenther <rguenther@suse.de>
rguenth [Tue, 29 Jun 2010 14:02:23 +0000 (14:02 +0000)]
2010-06-29  Richard Guenther  <rguenther@suse.de>

* tree-dfa.c (dump_variable): Remove noalias_state dumping.
* tree-flow.h (enum noalias_state): Remove.
(struct var_ann_d): Remove noalias_state member.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161535 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago Revert parts of the change for PR25130.
bernds [Tue, 29 Jun 2010 13:51:37 +0000 (13:51 +0000)]
Revert parts of the change for PR25130.
* cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
MEM_ALIAS_SET.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161534 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR target/43902
bernds [Tue, 29 Jun 2010 13:43:57 +0000 (13:43 +0000)]
PR target/43902
* config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
(maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
(maddhidi4): Likewise.

testsuite/
PR target/43902
* gcc.target/arm/wmul-1.c: Test for smlabb instead of smulbb.
* gcc.target/arm/wmul-3.c: New test.
* gcc.target/arm/wmul-4.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161533 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
froydnj [Tue, 29 Jun 2010 12:24:04 +0000 (12:24 +0000)]
* calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
targetm.calls.function_incoming_arg, and
targetm.calls.function_arg_advance instead of FUNCTION_ARG,
FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
* target.h (struct gcc_target): Add function_arg_advance,
function_arg, and function_incoming_arg fields.
* target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
(TARGET_FUNCTION_INCOMING_ARG): Define.
(TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
and TARGET_FUNCTION_INCOMING_ARG.
* targhooks.h (default_function_arg_advance): Declare.
(default_function_arg, default_function_incoming_arg): Declare.
* targhooks.c (default_function_arg_advance): New function.
(default_function_arg, default_function_incoming_arg): New function.
* config/i386/i386.c (function_arg_advance): Rename to...
(ix86_function_arg_advance): ...this.  Make static.
(function_arg): Rename to...
(ix86_function_arg): ...this.  Make static.
(TARGET_FUNCTION_ARG_ADVANCE): Define.
(TARGET_FUNCTION_ARG): Define.
* config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
(FUNCTION_ARG): Delete.
* config/i386/i386-protos.h (function_arg_advance): Delete prototype.
(function_arg): Delete prototype.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161530 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * gcc-interface/gigi.h (gnat_build_constructor): Take a VEC instead
froydnj [Tue, 29 Jun 2010 12:21:37 +0000 (12:21 +0000)]
* gcc-interface/gigi.h (gnat_build_constructor): Take a VEC instead
of a TREE_LIST.  Update comment.
* gcc-interface/trans.c (gigi): Build a VEC instead of a TREE_LIST.
Adjust call to gnat_build_constructor.
(Attribute_to_gnu): Likewise.
(gnat_to_gnu): Likewise.
(pos_to_constructor): Likewise.
(extract_values): Likewise.
* gcc-interface/utils.c (build_template): Likewise.
(convert_vms_descriptor64): Likewise.
(convert_vms_descriptor32): Likewise.
(convert_to_fat_pointer): Likewise.
(convert): Likewise.
(unchecked_convert): Likewise.
* gcc-interface/decl.c (gnat_to_gnu_entity): Likewise.
* gcc-interface/utils2.c (build_allocator): Likewise.
(fill_vms_descriptor): Likewise.
(gnat_build_constructor): Take a VEC instead of a TREE_LIST.
(compare_elmt_bitpos): Adjust for parameters being constructor_elts
instead of TREE_LISTs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161529 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * reginfo.c (init_reg_sets_1): Adjust comments.
froydnj [Tue, 29 Jun 2010 12:18:36 +0000 (12:18 +0000)]
* reginfo.c (init_reg_sets_1): Adjust comments.
* combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
* calls.c (prepare_call_address): Likewise.
(emit_call_1): Use targetm.calls.return_pops_args.
(expand_call): Likewise.
* function.c (assign_parms): Likewise.
* system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
* target.h (struct gcc_target) [struct calls]: Add
return_pops_args field.
* targhooks.h (default_return_pops_args): Declare.
* targhooks.c (default_return_pops_args): Define.
* target-def.h (TARGET_RETURN_POPS_ARGS): Define.
(TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
* doc/tm.texi (RETURN_POPS_ARGS): Rename to...
(TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
documentation.
* config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
* config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
* config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
* config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
* config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
* config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
* config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
* config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
* config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
* config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
* config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
* config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
* config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
* config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
* config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
* config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
* config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
* config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
* config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
* config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
* config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
* config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
* config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
* config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
* config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
* config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
* config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
* config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
* config/score/score.h (RETURN_POPS_ARGS): Likewise.
* config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
* config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
* config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
* config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
* config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
* config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
* config/i386/i386-protos.h (ix86_return_pops_args): Delete.
* config/i386/i386.h (RETURN_POPS_ARGS): Delete.
* config/i386/i386.c (ix86_return_pops_args): Make static.
Constify arguments.
(TARGET_RETURN_POPS_ARGS): Define.
* config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
* config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
(TARGET_RETURN_POPS_ARGS): Define.
* config/vax/vax.h (RETURN_POPS_ARGS): Move to...
* config/vax/vax.c (vax_return_pops_args): ...here.  New function.
(TARGET_RETURN_POPS_ARGS): Define.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161528 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-29 Richard Guenther <rguenther@suse.de>
rguenth [Tue, 29 Jun 2010 12:12:10 +0000 (12:12 +0000)]
2010-06-29  Richard Guenther  <rguenther@suse.de>

PR middle-end/44667
* tree-inline.c (initialize_inlined_parameters): Make sure
to remap the inlined parameter variable substitutions types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161527 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-29 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Tue, 29 Jun 2010 10:03:36 +0000 (10:03 +0000)]
2010-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/44708
* include/ext/algorithm (copy_n): Qualify __copy_n call with
__gnu_cxx::
* testsuite/ext/rope/44708.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161524 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR rtl-optimization/44659
ebotcazou [Tue, 29 Jun 2010 09:24:34 +0000 (09:24 +0000)]
PR rtl-optimization/44659
* combine.c (make_compound_operation) <SUBREG>: Do not return the
result of force_to_mode if it partially re-expanded the compound.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161523 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoDaily bump.
gccadmin [Tue, 29 Jun 2010 00:17:05 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161521 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR middle-end/44671
hubicka [Mon, 28 Jun 2010 21:16:25 +0000 (21:16 +0000)]
PR middle-end/44671
* ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of RESULT_DECL.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161514 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR c++/44682
jakub [Mon, 28 Jun 2010 20:12:31 +0000 (20:12 +0000)]
PR c++/44682
* class.c (build_base_path): If want_pointer, call mark_rvalue_use
on expr.

* g++.dg/warn/Wunused-var-14.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161511 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-28 Tobias Burnus <burnus@net-b.de>
burnus [Mon, 28 Jun 2010 20:04:40 +0000 (20:04 +0000)]
2010-06-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/43298
        * list_read.c (parse_real, read_real): Support NAN(alphanum).

2010-06-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/43298
        * gfortran.dg/nan_6.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161510 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * double-int.h (force_fit_type_double): Remove declaration.
aesok [Mon, 28 Jun 2010 18:23:16 +0000 (18:23 +0000)]
* double-int.h (force_fit_type_double): Remove declaration.
* double-int.c (force_fit_type_double): Move to tree.c.
* tree.h (force_fit_type_double): Declare.
* tree.h (force_fit_type_double): Moved from double-int.c. Use
double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
double_int_to_tree instead of fit_double_type and build_int_cst_wide.
* convert.c (convert_to_pointer): Adjust call to
force_fit_type_double.
* tree-vrp.c (extract_range_from_assert,
extract_range_from_unary_expr): Adjust call to force_fit_type_double.
* fold-const.c: Update comment.
(int_const_binop, fold_convert_const_int_from_int,
fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
round_up_loc): Adjust call to force_fit_type_double.

/c-family
* c-common.c (shorten_compare): Adjust call to force_fit_type_double.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161509 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
dje [Mon, 28 Jun 2010 17:52:59 +0000 (17:52 +0000)]
* config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161507 138bc75d-0d04-0410-961f-82ee72b054a4

13 years agoAdd a testcase for PR tree-optimization/43781.
hjl [Mon, 28 Jun 2010 17:25:49 +0000 (17:25 +0000)]
Add a testcase for PR tree-optimization/43781.

2010-06-28  H.J. Lu  <hongjiu.lu@intel.com>

PR tree-optimization/43781
* gcc.dg/torture/pr43781.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161505 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-28 Paul Thomas <pault@gcc.gnu.org>
pault [Mon, 28 Jun 2010 17:16:06 +0000 (17:16 +0000)]
2010-06-28  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/40158
* interface.c (argument_rank_mismatch): New function.
(compare_parameter): Call new function instead of generating
the error directly.

2010-06-28  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/40158
* gfortran.dg/actual_rank_check_1.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161504 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-26 Martin Jambor <mjambor@suse.cz>
jamborm [Mon, 28 Jun 2010 16:47:55 +0000 (16:47 +0000)]
2010-06-26  Martin Jambor  <mjambor@suse.cz>

* tree-sra.c (convert_callers): New parameter, change fndecls of
recursive calls.
(modify_function): Pass the old decl to convert_callers.

* testsuite/gcc.dg/ipa/ipa-sra-6.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161503 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-28 Martin Jambor <mjambor@suse.cz>
jamborm [Mon, 28 Jun 2010 16:43:09 +0000 (16:43 +0000)]
2010-06-28  Martin Jambor  <mjambor@suse.cz>

* ipa-cp.c (ipcp_init_cloned_node): Replace calls to
ipa_check_create_node_params and ipa_initialize_node_params with
checking asserts they are not necessary.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161502 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR tree-optimization/44687
hubicka [Mon, 28 Jun 2010 15:51:25 +0000 (15:51 +0000)]
PR tree-optimization/44687
* gcc.c-torture/compile/pr44687.c
PR tree-optimization/44687
* ipa-split.c (split_function): Use DECL_RESULT to store return value.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161500 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago2010-06-28 Martin Jambor <mjambor@suse.cz>
jamborm [Mon, 28 Jun 2010 15:42:01 +0000 (15:42 +0000)]
2010-06-28  Martin Jambor  <mjambor@suse.cz>

PR c++/44535
* gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
(gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
instead of BINFO_BASE_BINFO.

* testsuite/g++.dg/torture/pr44535.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161498 138bc75d-0d04-0410-961f-82ee72b054a4

13 years ago PR middle-end/44592
matz [Mon, 28 Jun 2010 15:14:31 +0000 (15:14 +0000)]
PR middle-end/44592
* gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
proper VDEF chain for intermediate stores in the sequence.

testsuite/
PR middle-end/44592
* gfortran.dg/pr44592.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161496 138bc75d-0d04-0410-961f-82ee72b054a4