1. 12 Nov, 2014 37 commits
    • Implement resolutions of LWG 2399, 2400 and 2401. · d8af84e6
      	* include/bits/shared_ptr.h (shared_ptr, weak_ptr): Define
      	_Convertible alias template to simplify constraints.
      	(shared_ptr(unique_ptr<TD>&&)): Constrain (LWG 2399).
      	* include/bits/shared_ptr_base.h: Likewise.
      	(_Sp_counted_deleter::_M_get_deleter()): Use addressof (LWG 2400).
      	* include/std/functional (function::operator=(nullptr_t)): Add
      	noexcept (LWG 2401).
      	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
      	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Adjust dg-error.
      
      From-SVN: r217442
      Jonathan Wakely committed
    • Add a testcase for PR tree-optimization/63835 · 3e147937
      	PR tree-optimization/63835
      	* gcc.dg/pr63835.c: New test.
      
      From-SVN: r217441
      H.J. Lu committed
    • Add bounds checking to vqdm*_lane intrinsics via a qualifier that also flips endianness · 2a49c16d
      gcc/:
      
      	* config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.
      
      	* config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
      	qualifier_lane_index.
      	(aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
      	(aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
      	(aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.
      
      	(aarch64_types_getlane_qualifiers): Rename to...
      	(aarch64_types_binop_imm_qualifiers): ...this.
      	(TYPES_SHIFTIMM): Follow renaming.
      	(TYPES_GETLANE): Rename to...
      	(TYPE_GETREG): ...this.
      
      	(aarch64_types_setlane_qualifiers): Rename to...
      	(aarch64_type_ternop_imm_qualifiers): ...this.
      	(TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
      	(TYPES_SETLANE): Follow renaming above, and rename self to...
      	(TYPE_SETREG): ...this.
      
      	(enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
      	(aarch64_simd_expand_args): Add range check and endianness-flip.
      
      	(aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.
      
      	* config/aarch64/aarch64-simd.md
      	(aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
      	(aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
      	(aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.
      
      	(aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
      	(aarch64_sq<r>dmulh_lane<mode>): ...this.
      
      	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
      	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.
      
      	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
      	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.
      
      	(aarch64_sqdmull_lane<mode>_internal *2): Rename to...
      	(aarch64_sqdmull_lane<mode>): ...this.
      
      	(aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
      	(aarch64_sqdmull_laneq<mode>): ...this.
      
      	(aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
      	(aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
      	aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
      	aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.
      
      	(aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
      	aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
      	aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
      	bounds check and lane flip.
      
      	* config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
      	get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
      	set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.
      
      	(sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
      	sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
      	renaming of TERNOP_LANE to QUADOP_LANE.
      
      	(sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
      	sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
      	qualifiers to TERNOP_LANE.
      
      gcc/testsuite/:
      
               * gcc.target/aarch64/simd/vqdmlal_high_lane_s16_indices_1.c: New test.
               * gcc.target/aarch64/simd/vqdmlal_high_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlal_high_laneq_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlal_high_laneq_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlal_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlal_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlal_laneq_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlal_laneq_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlalh_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlals_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlsl_high_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlsl_high_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlsl_high_laneq_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlsl_high_laneq_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlsl_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlsl_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlsl_laneq_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlsl_laneq_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlslh_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmlsls_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmulh_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmulh_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmulh_laneq_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmulh_laneq_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmulhh_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmulhq_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmulhq_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmulhq_laneq_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmulhq_laneq_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmulhs_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmull_high_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmull_high_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmull_high_laneq_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmull_high_laneq_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmull_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmull_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmull_laneq_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmull_laneq_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmullh_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqdmulls_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqrdmulh_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqrdmulh_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqrdmulh_laneq_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqrdmulh_laneq_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqrdmulhh_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqrdmulhq_lane_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqrdmulhq_lane_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqrdmulhq_laneq_s16_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqrdmulhq_laneq_s32_indices_1.c: Likewise.
               * gcc.target/aarch64/simd/vqrdmulhs_lane_s32_indices_1.c: Likewise.
      
      From-SVN: r217440
      Alan Lawrence committed
    • Fix ChangeLog of previous commit, r217438: · 0a002272
              * Makefile.def: Make all-gcc depend on all-isl.
      
      From-SVN: r217439
      Tobias Burnus committed
    • Makefile.def: Remove CLooG. · 7d35a59e
      2014-11-11  Tobias Burnus  <burnus@net-b.de>
      
              * Makefile.def: Remove CLooG.
              * Makefile.in: Regenerate.
      
      From-SVN: r217438
      Tobias Burnus committed
    • 387-1.c (dg-skip-if): Use *-*-* target selector. · 34388f82
      	* gcc.target/i386/387-1.c (dg-skip-if): Use *-*-* target selector.
      	* gcc.target/i386/387-2.c (dg-skip-if): Ditto.
      	* gcc.target/i386/387-5.c (dg-skip-if): Ditto.
      	* gcc.target/i386/387-6.c (dg-skip-if): Ditto.
      	* gcc.target/i386/cmov7.c (dg-skip-if): Ditto.
      	* gcc.target/i386/funcspec-2.c (dg-skip-if): Ditto.
      	* gcc.target/i386/funcspec-3.c (dg-skip-if): Ditto.
      	* gcc.target/i386/funcspec-8.c (dg-skip-if): Ditto.
      	* gcc.target/i386/funcspec-9.c (dg-skip-if): Ditto.
      	* gcc.target/i386/gcc-have-sync-compare-and-swap-1.c (dg-skip-if):
      	Ditto.
      	* gcc.target/i386/gcc-have-sync-compare-and-swap-2.c (dg-skip-if):
      	Ditto.
      	* gcc.target/i386/isa-1.c (dg-skip-if): Ditto.
      	* gcc.target/i386/isa-6.c (dg-skip-if): Ditto.
      	* gcc.target/i386/isa-9.c (dg-skip-if): Ditto.
      	* gcc.target/i386/lea.c (dg-skip-if): Ditto.
      	* gcc.target/i386/memcpy-strategy-1.c (dg-skip-if): Ditto.
      	* gcc.target/i386/memcpy-strategy-2.c (dg-skip-if): Ditto.
      	* gcc.target/i386/memcpy-vector_loop-1.c (dg-skip-if): Ditto.
      	* gcc.target/i386/memcpy-vector_loop-2.c (dg-skip-if): Ditto.
      	* gcc.target/i386/memset-vector_loop-1.c (dg-skip-if): Ditto.
      	* gcc.target/i386/memset-vector_loop-2.c (dg-skip-if): Ditto.
      	* gcc.target/i386/pad-10.c (dg-skip-if): Ditto.
      	* gcc.target/i386/pad-2.c (dg-skip-if): Ditto.
      	* gcc.target/i386/pad-3.c (dg-skip-if): Ditto.
      	* gcc.target/i386/pad-4.c (dg-skip-if): Ditto.
      	* gcc.target/i386/pad-5a.c (dg-skip-if): Ditto.
      	* gcc.target/i386/pad-5b.c (dg-skip-if): Ditto.
      	* gcc.target/i386/pad-6a.c (dg-skip-if): Ditto.
      	* gcc.target/i386/pad-6b.c (dg-skip-if): Ditto.
      	* gcc.target/i386/pad-7.c (dg-skip-if): Ditto.
      	* gcc.target/i386/pad-8.c (dg-skip-if): Ditto.
      	* gcc.target/i386/pad-9.c (dg-skip-if): Ditto.
      	* gcc.target/i386/pentium4-not-mull.c (dg-skip-if): Ditto.
      	* gcc.target/i386/pr42589.c (dg-skip-if): Ditto.
      	* gcc.target/i386/sse-19.c (dg-skip-if): Ditto.
      	* gcc.target/i386/sse2-init-v2di-2.c (dg-skip-if): Ditto.
      	* gcc.target/i386/ssefn-1.c (dg-skip-if): Ditto.
      	* gcc.target/i386/ssetype-1.c (dg-skip-if): Ditto.
      	* gcc.target/i386/ssetype-2.c (dg-skip-if): Ditto.
      	* gcc.target/i386/ssetype-5.c (dg-skip-if): Ditto.
      	* gcc.target/i386/vect-double-1.c (dg-skip-if): Ditto.
      
      From-SVN: r217437
      Uros Bizjak committed
    • Makefile.in (CLOOGLIBS, CLOOGINC): Remove. · d62352f9
      2014-11-12  Tobias Burnus  <burnus@net-b.de>
      
              * Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
              * configure.ac: Ditto.
              * graphite-interchange.c: Remove HAVE_CLOOG block.
              * config.in: Regenerate.
              * configure: Regenerate.
      
      From-SVN: r217436
      Tobias Burnus committed
    • pr45852.c: Simplify target selector. · b51a6787
      	* gcc.target/i386/pr45852.c: Simplify target selector.
      	* gcc.target/i386/pr63495.c: Ditto.
      	* gcc.target/i386/pr39496.c: Ditto.
      	* gcc.target/i386/pr36613.c: Ditto.
      
      From-SVN: r217432
      Uros Bizjak committed
    • [AArch64] Let LR register alloctable · 1c923b60
        gcc/
          * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as caller-save.
          (EPILOGUE_USES): Guard the check by epilogue_completed.
          * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for LR.
          (aarch64_can_eliminate): Check LR_REGNUM liveness.
      
        gcc/testsuite/
          * gcc.target/aarch64/lr_free_1.c: New testcase for -fomit-frame-pointer.
          * gcc.target/aarch64/lr_free_2.c: New testcase for leaf
          -fno-omit-frame-pointer.
      
      From-SVN: r217431
      Jiong Wang committed
    • Fix typo in *<arith_shift_insn>_shiftsi · 70654ae6
      From-SVN: r217430
      Ramana Radhakrishnan committed
    • Cast strtol return to unsigned long · 43cf21c6
      	* testsuite/test-strtol.c (run_tests): Cast strtol return to
      	unsigned long.
      
      From-SVN: r217429
      Kirill Yukhin committed
    • gcc-dg.exp (${tool}_load): Call prune_file_path instead of prune_gcc_output. · 4feb5dd8
      	* lib/gcc-dg.exp (${tool}_load): Call prune_file_path instead
      	of prune_gcc_output.
      	* lib/prune.exp (prune_file_path): New procedure.
      
      From-SVN: r217428
      Marek Polacek committed
    • fold-const.c (fold_binary_loc): Don't fold if the result is undefined. · 2f68e8bc
      	* fold-const.c (fold_binary_loc): Don't fold if the result
      	is undefined.
      	* match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
      	-(-A) -> A): Likewise.
      
      	* c-c++-common/ubsan/overflow-sub-4.c: New test.
      	* c-c++-common/ubsan/overflow-sub-2.c: Adjust dg-output.
      	* c-c++-common/ubsan/overflow-int128.c: Likewise.
      
      From-SVN: r217427
      Marek Polacek committed
    • pr52252-atom-1.c: Extend assembler scan on AVX2 case. · b8c03a9b
      gcc/testsuite
      
      	* gcc.target/i386/pr52252-atom-1.c: Extend assembler scan on AVX2 case.
      
      From-SVN: r217423
      Evgeny Stupachenko committed
    • [multiple changes] · 72eb311d
      2014-11-12  Richard Biener  <rguenther@suse.de>
      
      	Merge from match-and-simplify branch
      	2014-11-04  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
      
      	* genmatch.c (user_id): Add new member is_oper_list.
      	(user_id::user_id): Add new default argument.
      	(parser::parse_operator_list): New function.
      	(parser::parse_for): Allow operator-list.
      	(parser::parse_pattern): Call parser::parse_operator_list.
      	(parser::parse_operation): Reject operator-list.
      	* match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.
      
      	2014-10-31  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
      
      	* genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.
      
      	2014-10-30  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
      
      	* genmatch.c (parser::parse_op): Check if predicate is used in
      	result operand.
      
      	2014-10-29  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
      
      	* genmatch.c (parser::parse_for): Make sure to have a valid
      	token to report errors at.
      
      	2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
      
      	* genmatch.c (parser): Add new member parsing_match_operand.
      	(parser::parse_operation): Check for conditional convert in result
      	operand.
      	(parser::parse_expr): Check for commutative operator in result operand.
      	Check for :type in match operand.
      	(parser::parse_simplify): Set/unset parsing_match_operand.
      	(parser::parser): Initialize parsing_match_operand.
      
      	2014-10-28  Richard Biener  <rguenther@suse.de>
      
      	* genmatch.c (parser::parse_for): Properly check for already
      	defined operators.
      
      	2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
      
      	* genmatch.c (error_cb): Adjust for printing warnings.
      	(warning_at): New function.
      	(user_id): Add new member used.
      	(get_operator): Mark user_id as used.
      	(parse_for): Warn for unused operators.
      
      From-SVN: r217422
      Richard Biener committed
    • match.pd: Implement simple complex operations cancelling. · eaeba53a
      2014-11-12  Richard Biener  <rguenther@suse.de>
      
      	* match.pd: Implement simple complex operations cancelling.
      	* fold-const.c (fold_unary_loc): Remove them here.
      
      	* gcc.dg/tree-ssa/ssa-fre-32.c: Disable forwprop.
      
      From-SVN: r217421
      Richard Biener committed
    • Predefine __NO_MATH_ERRNO__ for -fno-math-errno. · 2079956a
      This patch adds a predefined macro __NO_MATH_ERRNO__ for when
      -fno-math-errno is passed or implied.  This allows math.h to provide a
      more accurate definition of the C99 math_errhandling macro that takes
      this option into account, and allows for choice of libm functions to
      be optimized at compile time based on this option.
      
      (There may be a case for such interfaces for -fno-rounding-math
      (default) and -fno-trapping-math as well, but as C99 standard pragmas
      would allow those to vary on a per-block basis, predefined macros
      would be problematic as the interface; you can't select a
      -fno-trapping-math or -fno-rounding-math version of a function in a
      standard header if a conforming program could then use "#pragma STDC
      FENV_ACCESS ON" to require a -ftrapping-math -frounding-math version
      in a particular block.  So built-in functions might be a better way of
      providing access to information about those options.)
      
      Bootstrapped with no regressions on x86_64-unknown-linux-gnu.  OK to
      commit?
      
      	* cppbuiltin.c (define_builtin_macros_for_compilation_flags):
      	Define __NO_MATH_ERRNO__ if -fno-math-errno.
      	* doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.
      
      c-family:
      	* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Define and
      	undefine __NO_MATH_ERRNO__ based on changes to -fmath-errno state.
      
      testsuite:
      	* gcc.dg/no-math-errno-1.c, gcc.dg/no-math-errno-2.c,
      	gcc.dg/no-math-errno-3.c, gcc.dg/no-math-errno-4.c: New tests.
      
      From-SVN: r217420
      Joseph Myers committed
    • Avoid tail call in c-c++-common/asan/strlen-overflow-1.c · b9700367
      	PR testsuite/63830
      	* c-c++-common/asan/strlen-overflow-1.c (main): Avoid tail call.
      
      From-SVN: r217417
      H.J. Lu committed
    • genmatch.c (::gen_transform): Add capture_info and expand_compares arguments. · 47b25362
      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.
      
      From-SVN: r217416
      Richard Biener committed
    • re PR c/59708 (clang-compatible checked arithmetic builtins) · 1304953e
      	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.
      
      From-SVN: r217415
      Jakub Jelinek committed
    • genmatch.c (capture_info::capture_info): Add missing COND_EXPR handling. · 6a3cbe90
      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.
      
      From-SVN: r217414
      Richard Biener committed
    • LWG DR 2315. weak_ptr should be movable · f871d7f9
      	* 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.
      
      From-SVN: r217413
      Jonathan Wakely committed
    • Add -Wno-deprecated to dg-options. · 098c88fb
      	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.
      
      From-SVN: r217412
      Jonathan Wakely committed
    • re PR bootstrap/63821 (ICE in verify_gimple during libgcc build starting with r217349) · a0f12cf8
      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.
      
      From-SVN: r217411
      Richard Biener committed
    • re PR middle-end/63819 (Cannot build compiler with… · e7d1000c
      re PR middle-end/63819 (Cannot build compiler with --enable-gather-detailed-mem-stats (error: default argument given for parameter 5 of ‘void* ggc_internal_cleared_alloc))
      
      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.
      
      From-SVN: r217410
      Richard Biener committed
    • [multiple changes] · f351abd6
      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.
      
      From-SVN: r217409
      Thomas Preud'homme committed
    • [PATCH][dejagnu] truncate absolute file path into relative for dg-output · d30fc980
        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.
      
      From-SVN: r217408
      Jiong Wang committed
    • rtl.h (rtx_function, [...]): Delete. · e02101ff
      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.
      
      From-SVN: r217407
      Richard Sandiford committed
    • [AArch64] Remove unnecessary files. · 02c0ac45
      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.
      
      From-SVN: r217406
      Tejas Belagod committed
    • [AArch64] Add reference to ACLE and consolidate documentation. · 3f155273
      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.
      
      From-SVN: r217405
      Tejas Belagod committed
    • eabi1.c: Replace arm*-*-*eabi* and arm*-*-symbianelf* with arm_eabi. · cb16603e
      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.
      
      From-SVN: r217403
      Andreas Tobler committed
    • Fix dump scanning in g++.dg/ipa/devirt-42.C · d300d4c4
      	* g++.dg/ipa/devirt-42.C: Fix dump scanning for "return 2".
      
      From-SVN: r217402
      H.J. Lu committed
    • 1.cc: Remove unused header. · 78366f57
      	* 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.
      
      From-SVN: r217401
      Jonathan Wakely committed
    • VRP: Simplify logic for checking if any asserts need to be inserted · d476245d
      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.
      
      From-SVN: r217400
      Patrick Palka committed
    • Daily bump. · 6dc37e0d
      From-SVN: r217399
      GCC Administrator committed
    • optional (_Has_addressof): Check for non-member operator&. · 72e58f18
      	* 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.
      
      From-SVN: r217397
      Jonathan Wakely committed
  2. 11 Nov, 2014 3 commits
    • Define __void_t and SFINAE-friendly iterator_traits. · 847e9cf8
      	* 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.
      
      From-SVN: r217395
      Jonathan Wakely committed
    • Bug target/61997 · 3c03d39d
      2014-11-11  Andrew Pinski  <apinski@cavium.com>
      
              Bug target/61997
              * config.gcc (aarch64*-*-*): Set target_gtfiles to include
              aarch64-builtins.c.
              * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
              at the end of the file.
      
      From-SVN: r217394
      Andrew Pinski committed
    • Make std::mem_fn work with varargs functions. · f6b640be
      	* include/std/functional (_Mem_fn_traits): Add partial specializations
      	for varargs functions.
      	(_Mem_fn_base): Do not check arguments are convertible for varargs.
      	(_Bind_check_arity): Add partial specializations for varargs functions.
      	* include/std/type_traits (__bool_constant): Add alias template.
      	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
      	* testsuite/20_util/bind/refqual.cc: New, test ref-qualifiers.
      	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
      	* testsuite/20_util/function_objects/mem_fn/refqual.cc: Test varargs.
      	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
      	dg-error.
      	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
      	dg-error.
      
      From-SVN: r217393
      Jonathan Wakely committed