Define __void_t and SFINAE-friendly iterator_traits.

	* include/std/type_traits (__void_t): Define new alias template.
	(_GLIBCXX_HAS_NESTED_TYPE): Redefine using __void_t.
	* include/std/functional (_Maybe_get_result_type): Likewise.
	* include/bits/stl_iterator_base_types.h (__iterator_traits): Likewise.
	* include/bits/uses_allocator.h (__uses_allocator_helper): Likewise.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
	* testsuite/20_util/reference_wrapper/typedefs-3.cc: Adjust to changes
	in _GLIBCXX_HAS_NESTED_TYPE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217395 138bc75d-0d04-0410-961f-82ee72b054a4
	* include/experimental/optional (_Has_addressof): Check for non-member
	operator&.
	* testsuite/experimental/optional/observers/2.cc: Add operator&.
	* testsuite/experimental/optional/constexpr/observers/2.cc: Likewise.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217399 138bc75d-0d04-0410-961f-82ee72b054a4
VRP: Simplify logic for checking if any asserts need to be inserted

2014-11-11  Patrick Palka  <ppalka@gcc.gnu.org>

	* tree-vrp.c (register_edge_assert_for_2): Change return type to
	void and adjust accordingly.
	(register_edge_assert_for_1): Likewise.
	(register_edge_assert_for): Likewise.
	(find_conditional_asserts): Likewise.
	(find_switch_asserts): Likewise.
	(find_assert_locations_1): Likewise.
	(find_assert_locations): Likewise.
	(insert_range_insertions): Inspect the need_assert_for bitmap.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217400 138bc75d-0d04-0410-961f-82ee72b054a4
	* testsuite/experimental/optional/constexpr/observers/1.cc: Remove
	unused header.
	* testsuite/experimental/optional/constexpr/observers/2.cc: Likewise.
	* testsuite/experimental/optional/constexpr/observers/3.cc: Likewise.
	* testsuite/experimental/optional/constexpr/observers/4.cc: Likewise.
	* testsuite/experimental/optional/constexpr/observers/5.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217401 138bc75d-0d04-0410-961f-82ee72b054a4
Fix dump scanning in g++.dg/ipa/devirt-42.C

	* g++.dg/ipa/devirt-42.C: Fix dump scanning for "return 2".


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217402 138bc75d-0d04-0410-961f-82ee72b054a4
2014-11-12  Andreas Tobler  <andreast@gcc.gnu.org>

        * gcc.target/arm/eabi1.c: Replace arm*-*-*eabi* and arm*-*-symbianelf*
	with arm_eabi.
	* g++.dg/abi/arm_rtti1.C: Likewise.
	* g++.dg/abi/key1.C: Likewise.
	* g++.dg/ext/visibility/arm1.C: Likewise.
	* g++.dg/ext/visibility/arm2.C: Likewise.
	* g++.dg/ext/visibility/arm3.C: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217403 138bc75d-0d04-0410-961f-82ee72b054a4
libgo: Update libtool support to files in current GCC trunk.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217404 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Add reference to ACLE and consolidate documentation.

2014-11-12  Tejas Belagod  <tejas.belagod@arm.com>

        * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
        arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
        * doc/aarch64-acle-intrinsics.texi: Remove.
        * doc/arm-acle-intrinsics.texi: Remove.
        * doc/arm-neon-intrinsics.texi: Remove.
        * doc/extend.texi: Consolidate sections AArch64 intrinsics,
        ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
        Extension section. Add references to public ACLE specification.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217405 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Remove unnecessary files.

2014-11-12  Tejas Belagod  <tejas.belagod@arm.com>

        * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
        arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
        * doc/aarch64-acle-intrinsics.texi: Remove.
        * doc/arm-acle-intrinsics.texi: Remove.
        * doc/arm-neon-intrinsics.texi: Remove.
        * doc/extend.texi: Consolidate sections AArch64 intrinsics,
        ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
        Extension section. Add references to public ACLE specification.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217406 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
	* rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
	(for_each_rtx_in_insn): Delete.
	(init_rtlanal): Remove initialization of non_rtx_starting_operands.
	* df-core.c: Remove reference to for_each_rtx in comment.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217407 138bc75d-0d04-0410-961f-82ee72b054a4
[PATCH][dejagnu] truncate absolute file path into relative for dg-output

  gcc/testsuite/
    * lib/gcc-dg.exp (${tool}_load): Truncate gcc output.
    * lib/prune.exp (prune_gcc_output): New absolute path to relative path
    truncation pattern.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217408 138bc75d-0d04-0410-961f-82ee72b054a4
2014-11-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR tree-optimization/63761
    * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
    rather than taking it as a parameter. Add some comments to explain the
    gsi_move_before in case of load and why canonicalization of bswap into
    a rotation is only done for 16bit values.
    (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
    refer to the statement just before cur_stmt. Ignore 16bit bswap that
    are already in canonical form. Adapt bswap_replace to removal of its
    gsi parameter.

    2014-11-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    PR tree-optimization/63761
    * gcc.c-torture/compile/pr63761.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217409 138bc75d-0d04-0410-961f-82ee72b054a4
2014-11-12  Richard Biener  <rguenther@suse.de>

	PR bootstrap/63819
	* hash-table.h: Include ggc.h also for generator programs.
	* genmatch.c (ggc_internal_cleared_alloc): Properly define
	using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217410 138bc75d-0d04-0410-961f-82ee72b054a4
2014-11-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/63821
	* match.pd: Add missing conversion to the -(T)-X pattern.

	* gfortran.dg/pr63821.f90: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217411 138bc75d-0d04-0410-961f-82ee72b054a4
Add -Wno-deprecated to dg-options.

	PR c++/33911
	* testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Use -Wno-deprecated.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
	* testsuite/ext/array_allocator/variadic_construct.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217412 138bc75d-0d04-0410-961f-82ee72b054a4
LWG DR 2315. weak_ptr should be movable

	* include/bits/shared_ptr.h (weak_ptr): Add move constructor and
	assignment.
	* include/bits/shared_ptr_base.h (__weak_count, __weak_ptr): Likewise.
	Use nullptr and injected class name.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Adjust dg-error.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217413 138bc75d-0d04-0410-961f-82ee72b054a4
2014-11-12  Richard Biener  <rguenther@suse.de>

	* genmatch.c (capture_info::capture_info): Add missing
	COND_EXPR handling.
	(capture_info::walk_match): Fix COND_EXPR handling.
	(capture_info::walk_result): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217414 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c/59708
	* builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
	* builtins.c (fold_builtin_arith_overflow): New function.
	(fold_builtin_3): Use it.
	* builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
	BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
	BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
	BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
	BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
	BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
	BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
	BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
	BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
	BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
	* builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
	BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
	BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
	BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
	BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
	* expr.c (write_complex_part): Remove prototype, no longer static.
	* expr.h (write_complex_part): New prototype.
	* function.c (aggregate_value_p): For internal functions return 0.
	* gimple-fold.c (arith_overflowed_p): New functions.
	(gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
	* gimple-fold.h (arith_overflowed_p): New prototype.
	* tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
	(find_non_realpart_uses, maybe_optimize_arith_overflow): New
	functions.
	(eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
	into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
	never used.
	* gimplify.c (gimplify_call_expr): Handle gimplification of
	internal calls with lhs.
	* internal-fn.c (get_range_pos_neg, get_min_precision,
	expand_arith_overflow_result_store): New functions.
	(ubsan_expand_si_overflow_addsub_check): Renamed to ...
	(expand_addsub_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
	UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
	Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
	(ubsan_expand_si_overflow_neg_check): Renamed to ...
	(expand_neg_overflow): ... this.  Add LOC, LHS, ARG1, IS_UBSAN
	arguments, remove STMT argument.  Handle SUB_OVERFLOW with
	0 as first argument expansion.
	(ubsan_expand_si_overflow_mul_check): Renamed to ...
	(expand_mul_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
	UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
	Handle MUL_OVERFLOW expansion.
	(expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
	arguments for it.
	(expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
	expand_neg_overflow, prepare arguments for it.
	(expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
	for it.
	(expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
	expand_MUL_OVERFLOW): New functions.
	* internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
	internal functions.
	* tree-vrp.c (check_for_binary_op_overflow): New function.
	(extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
	is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
	(simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
	internal functions.
	* optabs.def (umulv4_optab): New optab.
	* config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
	(*umulv<mode>4, *<u>mulvqi4): New define_insns.
	* doc/extend.texi (Integer Overflow Builtins): Document
	__builtin_*_overflow.
c-family/
	* c-common.c (check_builtin_function_arguments): Handle
	BUILT_IN_{ADD,SUB,MUL}_OVERFLOW.
testsuite/
	* c-c++-common/builtin-arith-overflow-1.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-10.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-11.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-12.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-12.h: New file.
	* c-c++-common/torture/builtin-arith-overflow-13.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-14.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-15.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-16.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-17.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-18.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-1.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-1.h: New file.
	* c-c++-common/torture/builtin-arith-overflow-2.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-3.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-4.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-5.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-6.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-7.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-8.c: New test.
	* c-c++-common/torture/builtin-arith-overflow-9.c: New test.
	* c-c++-common/torture/builtin-arith-overflow.h: New file.
	* gcc.dg/builtin-arith-overflow-1.c: New test.
	* gcc.dg/builtin-arith-overflow-2.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217415 138bc75d-0d04-0410-961f-82ee72b054a4
2014-11-12  Richard Biener  <rguenther@suse.de>

	* genmatch.c (::gen_transform): Add capture_info and
	expand_compares arguments.
	(struct expr): Add is_generic flag.
	(lower_cond): New functions lowering [VEC_]COND_EXPR
	conditions to a GENERIC and a GIMPLE variant.
	(lower): Call lower_cond.
	(cmp_operand): Also compare the is_generic flag.
	(capture_info::cinfo): Add cond_expr_cond_p flag.
	(capture_info::capture_info): Pass down whether the
	expression argument is a COND_EXPR condition.
	(capture_info::walk_match): Likewise, mark captures
	capturing COND_EXPR conditions with cond_expr_cond_p.
	(expr::gen_transform): Pass down whether we need to
	expand compares from COND_EXPR conditions.
	(capture::gen_transform): Expand compares substituted
	from COND_EXPR conditions into non-COND_EXPR conditions.
	(dt_operand::gen_gimple_expr): Handle explicitely marked
	GENERIC expressions as generic.
	(dt_simplify::gen): Pass whether we need to expand
	conditions to gen_transform.  Handle capture results
	which are from COND_EXPR conditions.
	(main): Pass gimple flag down to lower.


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