1. 13 Jul, 2016 29 commits
    • genrecog.c (special_predicate_operand_p): New function. · b2a9e897
      	* genrecog.c (special_predicate_operand_p): New function.
      	(predicate_name): Move function.
      	(validate_pattern): Don't warn about missing mode for all
      	define_special_predicate predicates.
      
      From-SVN: r238314
      Andrew Burgess committed
    • re PR c++/70926 (Libiberty Demangler segfaults (5)) · 03ef0c6c
      	PR c++/70926
      	* cplus-dem.c: Handle large values and overflow when demangling
      	length variables.
      	(demangle_template_value_parm): Read only until end of mangled string.
      	(do_hpacc_template_literal): Likewise.
      	(do_type): Handle overflow when demangling array indices.
      
      From-SVN: r238313
      Marcel Böhme committed
    • Fix return type handling for Proxy classes · 0d355cf9
      libjava/
      
      	* java/lang/reflect/natVMProxy.cc (unbox): Use ffi_arg for
      	integer return types smaller than a word.
      	* testsuite/libjava.jar/ReturnInvocationHandler.java: New file.
      	* testsuite/libjava.jar/ReturnProxyTest.jar: Likewise.
      	* testsuite/libjava.jar/ReturnProxyTest.java: Likewise.
      	* testsuite/libjava.jar/ReturnProxyTest.out: Likewise.
      	* testsuite/libjava.jar/ReturnProxyTest.xfail: Likewise.
      	* testsuite/libjava.jar/ReturnTypes.java: Likewise.
      	* testsuite/libjava.jar/ReturnTypesImpl.java: Likewise.
      
      From-SVN: r238312
      Matthew Fortune committed
    • Fix the use of FFI closures in the java interpreter for integer returns · 845a4b72
      libjava/
      
      	* interpret-run.cc: Use ffi_arg for FFI integer return types.
      	* testsuite/libjava.jar/arraysort.java: New file.
      	* testsuite/libjava.jar/arraysort.jar: New file.
      	* testsuite/libjava.jar/arraysort.out: New file.
      	* testsuite/libjava.jar/arraysort.xfail: New file.
      
      From-SVN: r238311
      Matthew Fortune committed
    • libstdc++/71856 Define _GLIBCXX_PARALLEL_ASSERTIONS · e383deac
      	PR libstdc++/71856
      	* include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
      	* include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
      	Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
      	on _GLIBCXX_ASSERTIONS.
      	* include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
      	Include <unistd.h> for sleep.
      	* include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
      	* include/parallel/merge.h: Likewise.
      	* include/parallel/multiway_merge.h: Likewise.
      	* include/parallel/partition.h: Likewise.
      	* include/parallel/queue.h: Likewise.
      	* include/parallel/sort.h: Likewise.
      	* testsuite/25_algorithms/headers/algorithm/
      	parallel_algorithm_assert.cc: New.
      
      From-SVN: r238307
      Jonathan Wakely committed
    • Make basic_string::replace forward to different overload · 17f8dc93
      	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
      	(replace(__const_iterator, __const_iterator, initializer_list<C>)):
      	Forward to different overload.
      
      From-SVN: r238306
      Jonathan Wakely committed
    • Make __allocated_ptr::_S_raw_ptr static · 260d92cd
      	* include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
      	static.
      
      From-SVN: r238305
      Jonathan Wakely committed
    • Revert "Add non-const overload of std::string::data()" · 2d60da10
      This reverts r238291 aka 4300aa2087d90cd2d55852fa38f082a89bc7e72d.
      
      From-SVN: r238303
      Jonathan Wakely committed
    • tree-vect-data-refs.c (vect_no_alias_p): New function. · 6fa3d4b4
      	* tree-vect-data-refs.c (vect_no_alias_p): New function.
      	(vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
      	resolve alias checks which are known at compilation time.
      	Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
      	alias checks are resolved.  Move dump info for too many runtime
      	alias checks to here...
      	* tree-vect-loop.c (vect_analyze_loop_2): ...From here.
      
      	gcc/testsuite
      	* gcc.dg/vect/vect-35-big-array.c: Refine comment and test.
      	* gcc.dg/vect/vect-35.c: Ditto.
      	* gcc.dg/vect/vect-alias-check-2.c: New test.
      
      From-SVN: r238301
      Bin Cheng committed
    • Fix Fortran DO loop fallback · 65f18bc6
      	* gfortran.dg/ldist-1.f90: Revert change introduces in r238114.
      	* gfortran.dg/vect/pr62283.f: Add -fno-ipa-icf to additional
      	options.
      	* gfortran.dg/pr42108.f90: Update expected dump scan.
      
      From-SVN: r238300
      Martin Liska committed
    • re PR tree-optimization/24574 (a!=0?a/10:0 is not reduced to a/10) · 9737f35b
      2016-07-13  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/24574
      	* tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
      	position and add shift, rotate, divison and modulo support
      	for left zero.
      	(value_replacement): Pass in argument position to absorbing_element_p.
      
      	* gcc.dg/pr24574.c: New testcase.
      
      From-SVN: r238299
      Richard Biener committed
    • Fix some bogus testsuite failures for avr. · 62c0ea4b
      gcc/testsuite/
      
              * c-c++-common/Wduplicated-cond-3.c (fn10): Use smaller
              const literal.
              * c-c++-common/builtin-arith-overflow-2.c: Skip for avr.
              * c-c++-common/pr68833-1.c: Require int32plus.
              * gcc.dg/ipa/pr63551.c: Likewise.
              * gcc.dg/ipa/pr63595.c: Require ptr32plus.
              * gcc.dg/ipa/pr64041.c: Require int32plus.
      
      From-SVN: r238294
      Senthil Kumar Selvaraj committed
    • Fix ChangeLog. · 05505e9d
      From-SVN: r238293
      Ville Voutilainen committed
    • Implement P0307R2, Making Optional Greater Equal Again. · 86c0ec1d
      	* include/experimental/optional (_Has_addressof): Fix the comment.
      	* include/std/optional (_Has_addressof): Likewise.
      	(operator=(_Up&&)): Constrain.
      	(operator=(const optional<_Up>&)): Likewise.
      	(operator=(optional<_Up>&&)): Likewise.
      	(__optional_relop_t): New.
      	(operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
      	(operator!=(const optional<_Tp>&, const optional<_Tp>&)):
      	Constrain and make transparent.
      	(operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
      	(operator>(const optional<_Tp>&, const optional<_Tp>&)):
      	Constrain and make transparent.
      	(operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
      	(operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
      	(operator==(const optional<_Tp>&, const _Tp&): Constrain.
      	(operator==(const _Tp&, const optional<_Tp>&)): Likewise.
      	(operator!=(const optional<_Tp>&, _Tp const&)):
      	Constrain and make transparent.
      	(operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
      	(operator<(const optional<_Tp>&, const _Tp&)): Constrain.
      	(operator<(const _Tp&, const optional<_Tp>&)): Likewise.
      	(operator>(const optional<_Tp>&, const _Tp&)):
      	Constrain and make transparent.
      	(operator>(const _Tp&, const optional<_Tp>&)): Likewise.
      	(operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
      	(operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
      	(operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
      	(operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
      	* testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
      	* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
      	* testsuite/20_util/optional/relops/1.cc: Likewise.
      	* testsuite/20_util/optional/relops/2.cc: Likewise.
      	* testsuite/20_util/optional/relops/3.cc: Likewise.
      	* testsuite/20_util/optional/relops/4.cc: Likewise.
      	* testsuite/20_util/optional/requirements.cc: Add tests to verify
      	that optional's relops are transparent and don't synthesize
      	operators. Also test that assignment sfinaes.
      
      From-SVN: r238292
      Ville Voutilainen committed
    • Add non-const overload of std::string::data() · ceea48fc
      Also fix confusion between pointer and _CharT*, so that allocators with
      fancy pointers work correctly.
      
      	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
      	New function.
      	(_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
      	instead of _M_data().
      	(basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
      	Likewise.
      	(append(const basic_string&)): Likewise.
      	(append(const basic_string&, size_type, size_type)): Likewise.
      	(assign(const basic_string&, size_type, size_type)): Likewise.
      	(insert(size_type, const basic_string&)): Likewise.
      	(insert(size_type, const basic_string&, size_type, size_type)):
      	Likewise.
      	(replace(size_type, size_type, const basic_string&, size_type,
      	size_type)): Likewise.
      	(replace(__const_iterator, __const_iterator, const basic_string&)):
      	Likewise.
      	(c_str(), data()): Use c_str() instead of _M_data().
      	(data()): Add non-const overload as per LWG 2391 and P0272R1.
      	(compare(const basic_string&)): Use data() instead of _M_data().
      	[!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
      	* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
      	Pass raw pointers to _S_copy.
      	(_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
      	_S_assign.
      	(find(const _CharT*, size_type, size_type)): Use data instead of
      	_M_data().
      	* testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
      	* testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
      	* testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
      
      From-SVN: r238291
      Jonathan Wakely committed
    • re PR ipa/71633 ([CHKP] internal compiler error: in inline_call) · c7ed8938
      gcc/
      
      	PR ipa/71633
      	* ipa-inline-transform.c (inline_call): Support
      	instrumented thunks.
      
      gcc/testsuite/
      
      	PR ipa/71633
      	* g++.dg/pr71633.C: New test.
      
      From-SVN: r238290
      Ilya Enkovich committed
    • arm.h (TARGET_HAVE_CBZ): Define. · 5ce15300
      2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
          (TARGET_IDIV): Set for all Thumb targets provided they have hardware
          divide feature.
          * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
          Baseline.  Make initial alternative TARGET_32BIT only.
          (udivsi3): Likewise.
          * config/arm/thumb1.md (thumb1_cbz): New define_insn.
          * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
          target.
      
          gcc/testsuite/
          * lib/target-supports.exp (check_effective_target_arm_thumb1_cbz_ok):
          Add new arm_thumb1_cbz_ok effective target.
          * gcc.target/arm/cbz.c: New test.
      
      From-SVN: r238289
      Thomas Preud'homme committed
    • arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT. · 2b9509a3
      2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
          * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
          availability with TARGET_HAVE_MOVT.
          (thumb_legitimate_constant_p): Strip the high part of a label_ref.
          (thumb1_rtx_costs): Also return 0 if setting a half word constant and
          MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
          UINTVAL.
          (thumb1_size_rtx_costs): Make set of half word constant also cost 1
          extra instruction if MOVW is available.  Use a cost variable
          incremented by COSTS_N_INSNS (1) when the condition match rather than
          returning an arithmetic expression based on COSTS_N_INSNS.  Make
          constant with bottom half word zero cost 2 instruction if MOVW is
          available.
          * config/arm/arm.md (define_attr "arch"): Add v8mb.
          (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
          target is ARMv8-M Baseline.
          (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
          (arm_movtas_ze): Likewise.
          * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
          alternative for constants satisfying j constraint.
          (thumb1_movsi_insn): Likewise.
          (movsi splitter for K alternative): Tighten condition to not trigger
          if movt is available and j constraint is satisfied.
          (Pe immediate splitter): Likewise.
          (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
          constant fitting in an halfword to use MOVW.
          * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
          effective target.
      
          gcc/testsuite/
          * lib/target-supports.exp (check_effective_target_arm_thumb1_movt_ok):
          Define effective target.
          * gcc.target/arm/pr42574.c: Require arm_thumb1_ok and
          !arm_thumb1_movt_ok to exclude ARMv8-M Baseline.
          * gcc.target/arm/movhi_movw.c: New test.
          * gcc.target/arm/movsi_movw.c: Likewise.
          * gcc.target/arm/movdi_movw.c: Likewise.
      
      From-SVN: r238288
      Thomas Preud'homme committed
    • re PR tree-optimization/71104 (ICE: verify_ssa failed (with vfork / error:… · 7f15b177
      re PR tree-optimization/71104 (ICE: verify_ssa failed (with vfork /  error: definition in block 3 does not dominate use in block 7 ))
      
      2016-07-13  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/71104
      	* gimplify.c (gimplify_modify_expr): Gimplify the RHS before
      	gimplifying the LHS.  Make sure to gimplify a returning twice
      	call LHS without using SSA names.
      
      	* gcc.dg/pr71104-1.c: New testcase.
      	* gcc.dg/pr71104-2.c: Likewise.
      
      From-SVN: r238287
      Richard Biener committed
    • remove unnecessary calls to vec::release · 4a0e3b5a
      There's no point in calling release () on an auto_vec just before it goes
      out of scope.
      
      gcc/ChangeLog:
      
      2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree-data-ref.c (find_data_references_in_stmt): Remove
      	unnecessary call to vec::release.
      	(graphite_find_data_references_in_stmt): Likewise.
      	* tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
      	* tree-vect-stmts.c (vectorizable_condition): Likewise.
      
      From-SVN: r238286
      Trevor Saunders committed
    • use auto_vec for more local variables · 8c681247
      gcc/c/ChangeLog:
      
      2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* c-parser.c (c_parser_generic_selection): Make type of variable
      	auto_vec.
      	(c_parser_omp_declare_simd): Likewise.
      
      gcc/ChangeLog:
      
      2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* cfgexpand.c (expand_used_vars): Make the type of a local variable auto_vec.
      	* genmatch.c (lower_for): Likewise.
      	* haifa-sched.c (haifa_sched_init): Likewise.
      	(add_to_speculative_block): Likewise.
      	(create_check_block_twin): Likewise.
      	* predict.c (handle_missing_profiles): Likewise.
      	* tree-data-ref.c (loop_nest_has_data_refs): Likewise.
      	* tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
      	* tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Likewise.
      	(maybe_lower_iteration_bound): Likewise.
      	* tree-ssa-sccvn.c (DFS): Likewise.
      	* tree-stdarg.c (reachable_at_most_once): Likewise.
      	* tree-vect-stmts.c (vectorizable_conversion): Likewise.
      	(vectorizable_store): Likewise.
      
      From-SVN: r238285
      Trevor Saunders committed
    • tree-ssa-sccvn.c: use auto_vec for sccvn_dom_walker::cond_stack · fcd21591
      gcc/ChangeLog:
      
      2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
      	(sccvn_dom_walker): make cond_stack an auto_vec.
      
      From-SVN: r238284
      Trevor Saunders committed
    • ree.c: use auto_vec in ext_state · 4a5a779a
      gcc/ChangeLog:
      
      2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* ree.c (struct ext_state): Make type of members auto_vec.
      	(find_and_remove_re): Adjust.
      
      From-SVN: r238283
      Trevor Saunders committed
    • cfgexpand.c: use auto_vec in stack_vars_data · 06dc18b3
      gcc/ChangeLog:
      
      2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* cfgexpand.c (struct stack_vars_data): Make type of fields
      	auto_vec.
      	(expand_used_vars): Adjust.
      
      From-SVN: r238282
      Trevor Saunders committed
    • ipa.c: remove static_{ctors,dtors} globals · 37a51997
      gcc/ChangeLog:
      
      2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* ipa.c (record_cdtor_fn): Adjust.
      	(build_cdtor_fns): Likewise.
      	(ipa_cdtor_merge): Make static_ctors and static_dtors local
      	variables.
      
      From-SVN: r238281
      Trevor Saunders committed
    • genextract.c: add [cd]tors to accum_extract · 3cc578b9
      gcc/ChangeLog:
      
      2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* genextract.c (struct accum_extract): Add constructor and make
      	members auto_vec.
      	(gen_insn): Adjust.
      
      From-SVN: r238280
      Trevor Saunders committed
    • c-decl.c: add [cd]tors to c_struct_parse_info · bf4fa671
      gcc/c/ChangeLog:
      
      2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* c-decl.c (struct c_struct_parse_info): Change member types
      	from vec to auto_vec.
      	(start_struct): Adjust.
      	(finish_struct): Likewise.
      
      From-SVN: r238279
      Trevor Saunders committed
    • tree.c: add [cd]tors to free_lang_data_d · 74ea4cd5
      gcc/ChangeLog:
      
      2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* tree.c (struct free_lang_data_d): Add constructor and change
      	types of members to ones that automatically manage resources.
      	(fld_worklist_push): Adjust.
      	(find_decls_types): Likewise.
      	(find_decls_types_in_eh_region): Likewise.
      	(free_lang_data_in_cgraph): Stop manually creating and
      	destroying members of free_lang_data_d.
      
      From-SVN: r238278
      Trevor Saunders committed
    • Daily bump. · 4aa59659
      From-SVN: r238277
      GCC Administrator committed
  2. 12 Jul, 2016 11 commits