1. 06 Dec, 2011 19 commits
  2. 05 Dec, 2011 21 commits
    • Fix earlier Changelog entry to match the · 19d13e3e
      commit.
      
      From-SVN: r182033
      Ramana Radhakrishnan committed
    • initializer_list: Do not declare anything if __GXX_EXPERIMENTAL_CXX0X__ is not defined. · 8972079e
      2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* libsupc++/initializer_list: Do not declare anything if
      	__GXX_EXPERIMENTAL_CXX0X__ is not defined.
      
      From-SVN: r182031
      Paolo Carlini committed
    • Fix cp/ChangeLog · be4d4144
      From-SVN: r182030
      Fabien Chêne committed
    • re PR c++/51319 (Eigen3 enums not accepted) · a9727434
      gcc/testsuite/ChangeLog
      
      2011-12-05  Fabien Chene  <fabien@gcc.gnu.org>
      
      	PR c++/51319
      	* g++.dg/lookup/using50.C: New.
      	* g++.dg/lookup/using51.C: New.
      
      gcc/cp/ChangeLog
      
      2011-12-05  Fabien Chene  <fabien@gcc.gnu.org>
      
      	PR c++/51319
      	* semantics.c (finish_id_expression): Strip using declarations
      	early in the function.
      
      From-SVN: r182029
      Fabien Chêne committed
    • re PR tree-optimization/51396 (ICE: verify_flow_info failed: BB 4 can not throw… · 0fb808ea
      re PR tree-optimization/51396 (ICE: verify_flow_info failed: BB 4 can not throw but has an EH edge with -O2 -fnon-call-exceptions -mfma4)
      
      	PR tree-optimization/51396
      	* tree-ssa-math-opts.c (convert_mult_to_fma): Don't optimize
      	if MUL_RESULT has zero uses.
      
      	* g++.dg/opt/pr51396.C: New test.
      
      From-SVN: r182028
      Jakub Jelinek committed
    • re PR debug/51410 (duplicate variable DIE) · 17fe0fdb
      	PR debug/51410
      	* c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls
      	for debug info if scope is file_scope.
      
      	* gcc.dg/debug/dwarf2/pr51410.c: New test.
      
      From-SVN: r182027
      Jakub Jelinek committed
    • re PR c/51339 (ICE: in convert_move, at expr.c:326 with -fopenmp and parallel for) · 156030d3
      	PR c/51339
      	* c-decl.c (c_finish_incomplete_decl, finish_decl): Call
      	relayout_decl instead of layout_decl.
      
      	* gcc.dg/gomp/pr51339.c: New test.
      
      From-SVN: r182026
      Jakub Jelinek committed
    • re PR c++/51399 ([c++0x] [4.7 Regression] ICE with invalid initializer list) · a9eba00e
      /cp
      2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/51399
      	* init.c (perform_member_init): Early return if init is error_mark_node.
      
      /testsuite
      2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/51399
      	* g++.dg/cpp0x/initlist62.C: New.
      
      From-SVN: r182025
      Paolo Carlini committed
    • re PR fortran/51338 (seg fault in gfc_dep_compare_expr with -O2) · 671b487d
      2011-12-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/51338
      	* dependency.c (are_identical_variables):  Handle case where
      	end fields of substring references are NULL.
      
      2011-12-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/51338
      	* gfortran.dg/assumed_charlen_substring_1.f90:  New test.
      
      From-SVN: r182024
      Thomas Koenig committed
    • resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK if there is in epilogue. · dfa51991
      gcc/
      	* resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK
      	if there is in epilogue.
      
      From-SVN: r182023
      Richard Sandiford committed
    • optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target to emit_library_call_value. · fae67e1d
      gcc/
      	* optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target
      	to emit_library_call_value.
      	(expand_atomic_compare_and_swap): Likewise.
      
      From-SVN: r182021
      Richard Sandiford committed
    • pr46338.C: Add dg-require-profiling. · 2b808bd9
      gcc/testsuite/
      	* g++.dg/debug/pr46338.C: Add dg-require-profiling.
      	* g++.dg/torture/pr39732.C: Likewise.
      	* g++.dg/torture/pr40642.C: Likewise.
      	* gcc.c-torture/compile/pr44686.c: Likewise.
      	* gcc.dg/20050309-1.c: Likewise.
      	* gcc.dg/20050330-2.c: Likewise.
      	* gcc.dg/20051201-1.c: Likewise.
      	* gcc.dg/gomp/pr27573.c: Likewise.
      	* gcc.dg/pr46255.c: Likewise.
      	* gcc.dg/profile-dir-1.c: Likewise.
      	* gcc.dg/profile-dir-2.c: Likewise.
      	* gcc.dg/profile-dir-3.c: Likewise.
      	* gcc.dg/profile-generate-1.c: Likewise.
      	* gfortran.dg/gomp/pr27573.f90: Likewise.
      	* gcc.dg/profile-generate-3.c: Be specific about the type of
      	profiling required.
      
      From-SVN: r182020
      Richard Sandiford committed
    • re PR c++/51414 (Broken diagnostic with invalid use of __underlying_type) · ca2507dc
      /cp
      2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/51414
      	* semantics.c (finish_underlying_type): Use %qT, not %qE for the
      	error message.
      
      /testsuite
      2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/51414
      	* g++.dg/ext/underlying_type11.C: New.
      
      From-SVN: r182017
      Paolo Carlini committed
    • re PR testsuite/51128 (New LTO failures) · 6778ae9d
      	PR testsuite/51128
      	* gcc.dg/torture/pr23821.c: Skip if -fno-fat-lto-objects was passed.
      	* gcc.dg/torture/pr39074.c: Ditto.
      	* gcc.dg/torture/pr39074-2.c: Ditto.
      	* gcc.dg/torture/pr42898.c: Ditto.
      	* gcc.dg/torture/pr42898-2.c: Ditto.
      	* gcc.dg/torture/pr45704.c: Ditto.
      	* gcc.dg/torture/pr50472.c: Ditto.
      	* gcc.dg/torture/pta-callused-1.c: Ditto.
      	* gcc.dg/torture/pta-ptrarith-1.c: Ditto.
      	* gcc.dg/torture/pta-ptrarith-2.c: Ditto.
      	* gcc.dg/torture/pta-ptrarith-3.c: Ditto.
      	* gcc.dg/torture/pta-escape-1.c: Ditto.
      	* gcc.dg/torture/ipa-pta-1.c: Ditto.
      	* gcc.dg/torture/ssa-pta-fn-1.c: Ditto.
      
      From-SVN: r182016
      Uros Bizjak committed
    • re PR other/50775 (Register allocator sets up frame and frame pointer with low register pressure) · 27508f5f
      2011-12-05  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR other/50775
      	* ira-int.h (struct ira_object): Remove add_data.
      	(OBJECT_ADD_DATA): Remove.
      
      	* ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA
      	initialization.
      
      	* ira-color.c (object_hard_regs_t, object_hard_regs): Rename to
      	allocno_hard_regs_t, allocno_hard_regs.
      	(object_hard_regs_node_t, object_hard_regs_node): Rename to
      	allocno_hard_regs_node_t and allocno_hard_regs_node.
      	(struct allocno_color_data): Add new member last_process.  Move
      	profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
      	from object_color_data.
      	(object_color_data_t, object_color_data, OBJECT_COLOR_DATA):
      	Remove.
      	(curr_allocno_process): New static variable.
      	(object_hard_regs_eq, object_hard_regs_htab): Rename to
      	allocno_hard_regs_eq and allocno_hard_regs_htab.
      	(init_object_hard_regs, finish_object_hard_regs): Rename to
      	init_allocno_hard_regs and finish_allocno_hard_regs.
      	(object_hard_regs_compare, object_hard_regs_node_t): Rename to
      	allocno_hard_regs_compare and allocno_hard_regs_node_t.
      	(create_new_object_hard_regs_node): Rename to
      	create_new_allocno_hard_regs_node.
      	(add_new_object_hard_regs_node_to_forest): Rename to
      	add_new_allocno_hard_regs_node_to_forest.
      	(add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
      	Rename to add_allocno_hard_regs_to_forest and collect_allocno_hard_regs_cover.
      	(setup_object_hard_regs_nodes_parent): Rename to setup_allocno_hard_regs_nodes_parent.
      	(remove_unused_object_hard_regs_nodes): Rename to remove_unused_allocno_hard_regs_nodes.
      	(enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
      	Rename to enumerate_allocno_hard_regs_nodes and allocno_hard_regs_nodes_num.
      	(object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
      	allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
      	(object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
      	allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
      	(object_hard_regs_subnode_index): Rename to allocno_hard_regs_subnode_index.
      	(setup_object_hard_regs_subnode_index): Rename to
      	setup_allocno_hard_regs_subnode_index.
      	(get_object_hard_regs_subnodes_num): Rename to get_allocno_hard_regs_subnodes_num.
      	(form_object_hard_regs_nodes_forest): Rename to form_allocno_hard_regs_nodes_forest.
      	(finish_object_hard_regs_nodes_tree): Rename to form_allocno_hard_regs_nodes_forest
      	(finish_object_hard_regs_nodes_forest): Rename to
      	finish_allocno_hard_regs_nodes_forest.
      	(setup_left_conflict_sizes_p): Use allocno data instead of object
      	ones.  Process conflict allocnos once.
      	(update_left_conflict_sizes_p): Use allocno data instead of object
      	ones.  Change prototype signature.
      	(empty_profitable_hard_regs): Use allocno data instead of object
      	ones.
      	(setup_profitable_hard_regs): Ditto.
      	(get_conflict_profitable_regs): Rename to
      	get_conflict_and_start_profitable_regs.  Use allocno data for
      	profitable regs calculation.
      	(check_hard_reg_p): Change prototype signature.  Check profitable
      	regs for allocno not the objects.
      	(assign_hard_reg): Process conflict allocnos only once for
      	updating conflict costs.
      	(setup_allocno_available_regs_num): Use allocno data instead of
      	object ones.  Modify debug output.
      	(color_pass): Remove initialization and finalization of object
      	color data.
      
      From-SVN: r182015
      Vladimir Makarov committed
    • re PR target/51408 (Miscompilation in arm.md:*minmax_arithsi) · 100ed614
      gcc/
      	PR target/51408
      	* config/arm/arm.md (*minmax_arithsi): Always require the else
      	clause in the MINUS case.
      
      gcc/testsuite/
      	PR target/51408
      	* gcc.dg/pr51408.c: New.
      
      From-SVN: r182014
      Kazu Hirata committed
    • Implement C++11 delegating constructors. · 238e471c
      	* cp-tree.h (enum cpp0x_warn_str): Add CPP0X_DELEGATING_CTORS.
      	* error.c (maybe_warn_cpp0x): Adjust.
      	* parser.c (cp_parser_mem_initializer_list): Use it.  Diagnose
      	multiple initializers if a delegating initializer is present.
      	* call.c (build_special_member_call): Convert an assert into an if.
      	* init.c (perform_target_ctor): New.
      	(emit_mem_initializers): Use it.
      	(expand_member_init, expand_default_init): Adjust.
      
      Co-Authored-By: Pedro Lamarão <pedro.lamarao@gmail.com>
      
      From-SVN: r182012
      Ville Voutilainen committed
    • re PR c++/51404 ([c++0x] [4.7 Regression] ICE with invalid use of auto) · 12c574ca
      /cp
      2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/51404
      	* typeck2.c (build_functional_cast): Early return error_mark_node
      	for invalid uses of 'auto'.
      	* parser.c (cp_parser_direct_declarator): When
      	cp_parser_constant_expression returns error do not produce further
      	diagnostic for the bound.
      
      /testsuite
      2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/51404
      	* g++.dg/cpp0x/auto28.C: New.
      
      From-SVN: r182011
      Paolo Carlini committed
    • re PR tree-optimization/50904 (pessimization when -fno-protect-parens is enabled by -Ofast) · 546d314c
      2011-12-05  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/50904
      	* tree-ssa-loop-im.c (struct mem_ref): Remove vops member.
      	(MEM_ANALYZABLE): New.
      	(memory_references): Remove clobbered_vops and vop_ref_map
      	members, add all_refs_stored_in_loop member.
      	(memref_free): Adjust.
      	(mem_ref_alloc): Likewise.
      	(gather_mem_refs_stmt): Do not record clobbers, instead
      	record refs for unanalyzable stmts.
      	(gather_mem_refs_in_loops): Do not propagate clobbers.
      	(struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free,
      	record_vop_access, get_vop_accesses, get_vop_stores,
      	add_vop_ref_mapping): Remove.
      	(create_vop_ref_mapping_loop): Adjust to simply record all
      	stores.
      	(analyze_memory_references): Adjust.
      	(refs_independent_p): Check for not analyzable refs.
      	(can_sm_ref_p): Likewise.
      	(ref_indep_loop_p_1): Simplify.
      	(tree_ssa_lim_finalize): Adjust.
      
      	* tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE
      	rather than magic constants.  Assign zero cost to PAREN_EXPR
      	and SSA_NAME copies.  Assign cost proportional to the vector
      	size for vector constructors.
      
      From-SVN: r182010
      Richard Guenther committed
    • tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field. · 14cd91f9
      2011-12-05  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field.
      	* tree-ssa-alias.c (ao_ref_init): Initialize it.
      	(ao_ref_init_from_ptr_and_size): Likewise.
      	(refs_may_alias_p_1): Two volatile accesses conflict.
      	(ref_maybe_used_by_call_p_1): Likewise.
      	(call_may_clobber_ref_p_1): Likewise.
      	* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize
      	volatile_p field.
      
      From-SVN: r182009
      Richard Guenther committed