1. 16 Jun, 2017 26 commits
    • profile.c (compare_freqs): New function. · 28ae04d4
      	* profile.c (compare_freqs): New function.
      	(branch_prob): Sort edge list.
      	(find_spanning_tree): Assume that the list is priority sorted.
      
      From-SVN: r249270
      Jan Hubicka committed
    • cp-tree.h (build_this_parm, [...]): Add FN parm. · e249fcad
      	gcc/cp/
      	* cp-tree.h (build_this_parm, cp_build_parm_decl)
      	build_artificial_parm): Add FN parm.
      	* decl.c (start_cleanup_fn): Adjust.
      	(build_this_parm): Add FN parm, pass it through.
      	(grokfndecl): Adjust parm building.
      	* decl2.c (cp_build_parm_decl): Add FN parm, set context.
      	(build_artificial_parm): Add FN parm, pass through.
      	(maybe_retrofit_in_chrg): Adjust parm building.
      	(start_static_storage_duration_function): Likwise.
      	* lambda.c (maybe_aadd_lambda_conv_op): Likewise.
      	* method.c (implicitly_declare_fn): Likewise.
      	* parser.c (inject_this_parameter): Likewise.
      
      	libcc1/
      	* libcp1plugin.cc (plugin_build_decl): Adjust parm building.
      (--This line, and those below, will be ignored--
      
      M    gcc/cp/parser.c
      M    gcc/cp/ChangeLog
      M    gcc/cp/decl.c
      M    gcc/cp/lambda.c
      M    gcc/cp/cp-tree.h
      M    gcc/cp/method.c
      M    gcc/cp/decl2.c
      M    libcc1/libcp1plugin.cc
      M    libcc1/ChangeLog
      
      From-SVN: r249268
      Nathan Sidwell committed
    • Add std::get_deleter overload with correct signature · 78a8b676
      	* include/bits/shared_ptr.h (get_deleter): Add overload matching
      	standard signature.
      	* include/bits/shared_ptr_base.h (__shared_ptr): Declare new
      	get_deleter overload as a friend.
      	* testsuite/20_util/shared_ptr/misc/get_deleter.cc: New.
      
      From-SVN: r249267
      Jonathan Wakely committed
    • Symbol tables are insert only. · d7b11178
      	* cp-tree.h (default_hash_traits <lang_identifier *>): Don't
      	derive from pointer_hash.  Make undeletable.
      
      From-SVN: r249266
      Nathan Sidwell committed
    • class.c (resort_type_method_vec): Avoid potential unsigned overflow. · ba27a39d
      	* class.c (resort_type_method_vec): Avoid potential unsigned
      	overflow.
      
      From-SVN: r249265
      Nathan Sidwell committed
    • Don't defer noexcept_deferred_spec. · 0d1dc586
      	* cp-tree.h (unevaluated_noexcept_spec): Don't declare.
      	* decl.c (cxx_init_decl_processing): Initialize
      	noexcept_deferred_spec.
      	* except.c (unevaluated_noexcept_spec): Delete.
      	* class.c (deduce_noexcept_on_destructor): Use
      	noexcept_deferred_spec directly.
      	* method.c (implicitly_declare_fn): Likewise.
      
      From-SVN: r249264
      Nathan Sidwell committed
    • Make keyed_classes a vector. · 6a2dfd9a
      	* cp-tree.h (CPTI_KEYED_CLASSES, keyed_classes): Delete.
      	(keyed_classes): Declare as vector.
      	* decl.c (keyed_classes): Define.
      	(cxx_init_decl_processing): Allocate it.
      	(record_key_method_defined): Use vec_safe_push.
      	* class.c (finish_struct_1): Likewise.
      	* pt.c (instantiate_class_template_1): Likewise.
      	* decl2.c (c_parse_final_cleanups): Reverse iterate keyed_classes.
      
      From-SVN: r249263
      Nathan Sidwell committed
    • Fix keyboard flub. · 8c1ca7ee
      From-SVN: r249262
      Nathan Sidwell committed
    • re PR libstdc++/81092 (Missing symbols for new std::wstring constructors) · fb7a1633
      	PR libstdc++/81092
      	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
      
      From-SVN: r249260
      Jakub Jelinek committed
    • Make rtti lazier · ac9a1c7e
      	Make rtti lazier
      	* rtti.c (enum tinfo_kind): Add TK_DERIVED_TYPES,
      	TK_VMI_CLASS_TYPES, TK_MAX.  Delete TK_FIXED.
      	(tinfo_names): New.
      	(typeid_ok_p): Add quotes to error messages.  Use get_tinfo_desc.
      	(get_tinfo_decl): Use get_tinfo_desc.
      	(get_pseudo_ti_init): Likewise. Adjust VMI construction.
      	(create_pseudo_type_info): Delete.
      	(get_pseudo_ti_index): Just determine the index.
      	(get_tinfo_desc): New.  Create all types lazily.
      	(create_tinfo_types): Just allocate the descriptor array.
      	(emit_support_tinfos): Use non-inserting type lookup.  Set builtin
      	location.
      
      From-SVN: r249258
      Nathan Sidwell committed
    • Fix std::wbuffer_convert::sync() · bfe8a528
      	* include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition.
      	* testsuite/22_locale/conversions/buffer/2.cc: New.
      
      From-SVN: r249255
      Jonathan Wakely committed
    • re PR tree-optimization/81090 ([graphite] ICE in loop_preheader_edge) · 01f1c24e
      2017-06-16  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/81090
      	* passes.def (pass_record_bounds): Remove.
      	* tree-pass.h (make_pass_record_bounds): Likewise.
      	* tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
      	make_pass_record_bounds): Likewise.
      	* tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
      	not free niter estimates at the beginning but at the end.
      	* tree-scalar-evolution.c (scev_finalize): Free niter estimates.
      
      	* gcc.dg/graphite/pr81090.c: New testcase.
      
      From-SVN: r249249
      Richard Biener committed
    • PR libstdc++/81092 add std::wstring symbols and bump library version · 4317778a
      	PR libstdc++/81092
      	* acinclude.m4: Bump libtool_VERSION.
      	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
      	* config/abi/pre/gnu.ver: Add wstring constructor symbols to
      	GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol
      	to new GLIBCXX_3.4.25 version.
      	* doc/xml/manual/abi.xml: Document new versions.
      	* doc/html/*: Regenerate.
      	* testsuite/21_strings/basic_string/cons/char/8.cc: Use base object
      	constructors to ensure required symbols are exported.
      	* testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise.
      	* testsuite/util/testsuite_abi.cc: Add new version.
      
      From-SVN: r249246
      Jonathan Wakely committed
    • tree-switch-conversion.c (emit_case_bit_tests): Adjust initializer to workaround… · 66846c07
      tree-switch-conversion.c (emit_case_bit_tests): Adjust initializer to workaround ICE in host GCC 4.8.
      
      2017-06-16  Richard Biener  <rguenther@suse.de>
      
      	* tree-switch-conversion.c (emit_case_bit_tests): Adjust
      	initializer to workaround ICE in host GCC 4.8.
      
      From-SVN: r249245
      Richard Biener committed
    • ipa-inline-transform.c (update_noncloned_frequencies): Update also counts. · 7d72a77f
      	* ipa-inline-transform.c (update_noncloned_frequencies): Update also
      	counts.
      	(clone_inlined_nodes): Update.
      
      From-SVN: r249244
      Jan Hubicka committed
    • re PR fortran/80983 ([F03] memory leak when calling procedure-pointer component… · 8d94f932
      re PR fortran/80983 ([F03] memory leak when calling procedure-pointer component with allocatable result)
      
      2017-06-16  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/80983
      	* gfortran.dg/proc_ptr_comp_51.f90: Repair test case.
      
      From-SVN: r249243
      Janus Weil committed
    • Update prefetch tuning parameters for qdf24xx. · 70c51b58
      	* config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
      	prefetch settings, and enable prefetching by default at -O3.
      
      Change-Id: I2f0da54a8c262f6fbd0dcfde4584141bb09f1013
      
      From-SVN: r249242
      Maxim Kuvyrkov committed
    • Enable -fprefetch-loop-arrays at given optimization level. · 16b2cafd
      	* config/aarch64/aarch64.c (aarch64_override_options_internal):
      	Set flag_prefetch_loop_arrays according to tuning data.
      
      Change-Id: Id41411e671e0a55dc7268e0ad0a4e8ff1421c90a
      
      From-SVN: r249241
      Maxim Kuvyrkov committed
    • Add prefetch configuration to aarch64 backend. · 9d2c6e2e
      	* config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
      	New tune structure.
      	(struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
      	[Unrelated to main purpose of the patch] Place the pointer field last
      	to enable type checking errors when tune structure are wrongly merged.
      	* config/aarch64/aarch64.c (generic_prefetch_tune,)
      	(exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
      	(thunderx2t99_prefetch_tune): New tune constants.
      	(tune_params *_tunings): Update all tunings (no functional change).
      	(aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
      	PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
      	from tunings structures.
      
      Change-Id: I1ddbac1863dcf078a2e5b14dd904debc76a7da94
      
      From-SVN: r249240
      Maxim Kuvyrkov committed
    • re PR sanitizer/81094 (-fsanitize=object-size does not instrument aggregate call arguments) · b783399a
      	PR sanitizer/81094
      	* ubsan.c (instrument_null): Add T argument, use it instead
      	of computing it based on IS_LHS.
      	(instrument_object_size): Likewise.
      	(pass_ubsan::execute): Adjust instrument_null and
      	instrument_object_size callers to pass gimple_get_lhs or
      	gimple_assign_rhs1 result to it.  Use instrument_null instead of
      	calling get_base_address and instrument_mem_ref.  Handle
      	aggregate call arguments for object-size sanitization.
      
      	* c-c++-common/ubsan/object-size-11.c: New test.
      
      From-SVN: r249239
      Jakub Jelinek committed
    • Fix missing returns in libstdc++ header and tests · 6ec3c9c8
      	* include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
      	return statement.
      	* testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
      	Return void.
      	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
      	Likewise.
      	* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add
      	missing return statements.
      	* testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
      	Likewise.
      	* testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
      	Return void.
      	* testsuite/special_functions/14_expint/pr68397.cc: Likewise.
      
      From-SVN: r249238
      Jonathan Wakely committed
    • re PR tree-optimization/81089 (ICE: tree check: expected ssa_name, have… · 32e37414
      re PR tree-optimization/81089 (ICE: tree check: expected ssa_name, have integer_cst in register_edge_assert_for_2, at tree-vrp.c:5023)
      
      2017-06-16  Yury Gribov  <tetra2005@gmail.com>
      
      	PR tree-optimization/81089
      	* tree-vrp.c (is_masked_range_test): Validate operands of
      	subexpression.
      
      From-SVN: r249237
      Yury Gribov committed
    • Don't use >& for I/O redirection · 0186cacf
      	* Makefile.am (check-go-tool): Don't use >& for I/O redirection.
      	* Makefile.in: Regenerate.
      
      From-SVN: r249236
      Rainer Orth committed
    • stl_bvector.h (__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)): Change signature. · 7d594224
      2017-06-16  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/stl_bvector.h
      	(__fill_bvector(_Bit_type*, unsigned int, unsigned int, bool)):
      	Change signature.
      	(std::fill(_Bit_iterator, _Bit_iterator, bool)): Adapt.
      	(_Bvector_impl_data): New.
      	(_Bvector_impl): Inherits from latter.
      	(_Bvector_impl(_Bit_alloc_type&&)): Delete.
      	(_Bvector_impl(_Bvector_impl&&)): New, default.
      	(_Bvector_base()): Default.
      	(_Bvector_base(_Bvector_base&&)): Default.
      	(_Bvector_base::_M_move_data(_Bvector_base&&)): New.
      	(vector(vector&&, const allocator_type&)): Use latter.
      	(vector<bool>::operator=(vector&&)): Likewise.
      	(vector<bool>::vector()): Default.
      	(vector<bool>::vector(vector&&)): Default.
      	(vector<bool>::assign(_InputIterator, _InputIterator)): Use
      	_M_assign_aux.
      	(vector<bool>::assign(initializer_list<bool>)): Likewise.
      	(vector<bool>::_M_initialize_value(bool)): New.
      	(vector<bool>(size_type, const bool&, const allocator_type&)): Use
      	latter.
      	(vector<bool>::_M_initialize_dispatch(_Integer, _Integer, __true_type)):
      	Likewise.
      	(vector<bool>::_M_fill_assign(size_t, bool)): Likewise.
      
      From-SVN: r249235
      François Dumont committed
    • PR c++/80560 - warn on undefined memory operations involving non-trivial types · c3684b7b
      gcc/c-family/ChangeLog:
      
      	PR c++/80560
      	* c.opt (-Wclass-memaccess): New option.
      
      gcc/cp/ChangeLog:
      
      	PR c++/80560
      	* call.c (first_non_public_field, maybe_warn_class_memaccess): New
      	functions.
      	(has_trivial_copy_assign_p, has_trivial_copy_p): Ditto.
      	(build_cxx_call): Call maybe_warn_class_memaccess.
      
      gcc/ChangeLog:
      
      	PR c++/80560
      	* dumpfile.c (dump_register): Avoid calling memset to initialize
      	a class with a default ctor.
      	* gcc.c (struct compiler): Remove const qualification.
      	* genattrtab.c (gen_insn_reserv): Replace memset with initialization.
      	* hash-table.h: Ditto.
      	* ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
      	  assignment.
      	* ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
      	* omp-low.c (lower_omp_ordered_clauses): Replace memset with
      	default ctor.
      	* params.h (struct param_info): Make struct members non-const.
      	* tree-switch-conversion.c (emit_case_bit_tests): Replace memset
      	with default initialization.
      	* vec.h (vec_copy_construct, vec_default_construct): New helper
      	functions.
      	(vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
      	with vec_copy_construct.
      	(vect<T>::quick_grow_cleared): Replace memset with default ctor.
      	(vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
      	* doc/invoke.texi (-Wclass-memaccess): Document.
      
      libcpp/ChangeLog:
      
      	PR c++/80560
      	* line-map.c (line_maps::~line_maps): Avoid calling htab_delete
      	with a null pointer.
      	(linemap_init): Avoid calling memset on an object of a non-trivial
      	type.
      
      libitm/ChangeLog:
      
      	PR c++/80560
      	* beginend.cc (GTM::gtm_thread::rollback): Avoid calling memset
      	on an object of a non-trivial type.
      	(GTM::gtm_transaction_cp::commit): Use assignment instead of memcpy
      	to copy an object.
      	* method-ml.cc (orec_iterator::reinit): Avoid -Wclass-memaccess.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/80560
      	* g++.dg/Wclass-memaccess.C: New test.
      
      From-SVN: r249234
      Martin Sebor committed
    • Daily bump. · 6a382041
      From-SVN: r249233
      GCC Administrator committed
  2. 15 Jun, 2017 13 commits
    • re PR ada/81105 (system-freebsd-x86.ads renamed but referenced by… · cb55f77d
      re PR ada/81105 (system-freebsd-x86.ads renamed but referenced by gcc/ada/gcc-interface/Makefile.in)
      
      	PR ada/81105
      	* gcc-interface/Makefile.in (x86 kfreebsd): Adjust system.ads setting.
      	(i[3456]86-pc-gnu): Likewise.
      	(x86_64 kfreebsd): Likewise.
      
      From-SVN: r249228
      Nicolas Boulenguez committed
    • re PR fortran/80983 ([F03] memory leak when calling procedure-pointer component… · d0e7a9fd
      re PR fortran/80983 ([F03] memory leak when calling procedure-pointer component with allocatable result)
      
      2017-06-15  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/80983
      	* trans-expr.c (gfc_conv_procedure_call): Deallocate the result of
      	scalar allocatable procedure-pointer components.
      
      
      2017-06-15  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/80983
      	* gfortran.dg/proc_ptr_comp_51.f90: New test.
      
      From-SVN: r249227
      Janus Weil committed
    • 2017-06-15 François Dumont <fdumont@gcc.gnu.org> · 0356a074
      	* src/c++98/tree.cc  [!_GLIBCXX_INLINE_VERSION]
      	(_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.
      
      From-SVN: r249226
      François Dumont committed
    • Revert accidental checkin. · 3a849280
      From-SVN: r249225
      Jan Hubicka committed
    • re PR lto/69866 (lto1: internal compiler error: in add_symbol_to_partition_1, at… · d1eed638
      re PR lto/69866 (lto1: internal compiler error: in add_symbol_to_partition_1, at lto/lto-partition.c:158)
      
      
      	PR lto/69866
      	* lto-symtab.c (lto_symtab_merge_symbols): Drop useless definitions
      	that resolved externally.
      
      	* gcc.dg/lto/pr69866_0.c: New test.
      	* gcc.dg/lto/pr69866_1.c: Likewise.
      
      From-SVN: r249224
      Jan Hubicka committed
    • Update comment about is_leaf · 55dabf65
      crtl->is_leaf has a comment above it referring to "Local Register
      Allocation". However this is set by IRA and not LRA since the meaning
      of Local Register Allocator in GCC has changed quite drastically since
      1999 when this comment was introduced above the variable
      current_function_is_leaf. From memory gcc in those days had "local"
      and "global" register allocation - however all of this has changed
      quite a bit drastically since.
      
      This patch merely updates the comment as I did some head scratching
      this morning about how this could be set before Local Register
      Allocator especially given the comment in ira.c as below.
      
      
       /* Determine if the current function is a leaf before running IRA
           since this can impact optimizations done by the prologue and
           epilogue thus changing register elimination offsets.  */
        crtl->is_leaf = leaf_function_p ();
      
      From-SVN: r249223
      Ramana Radhakrishnan committed
    • Fix problems with the MSP430 port's handling of persistent data. · 61f5d852
      	PR target/78818
      gcc	* config/msp430/msp430.c (msp430_data_attr): Check that it's possible
      	for a variable to have a section before checking if the section has a
      	name.
      	Set section to.persistent if persistent	attribute is set.
      	Warn if .persistent attribute is used on an automatic variable.
      
      tests	* gcc.target/msp430/pr78818-real.c: New template for tests.
      	* gcc.target/msp430/pr78818-auto.c: New test.
      	* gcc.target/msp430/pr78818-data-region.c: New test.
      	* gcc.target/msp430/pr78818-data-sec.c: New test.
      	* gcc.target/msp430/pr78818-auto-warn.c: New test.
      
      From-SVN: r249222
      Jozef Lawrynowicz committed
    • re PR rtl-optimization/80474 (ipa-cp wrongly adding LO(symbol) twice) · 0948d23f
      	PR rtl-optimization/80474
      	* reorg.c (update_block): Do not ignore instructions in a delay slot.
      
      From-SVN: r249219
      Eric Botcazou committed
    • Use pthread effective-target in testsuite · d1236680
      	* testsuite: Add dg-require-effective-target pthread to -pthread
      	tests.
      	Remove explicit target lists from dg-do and dg-options.
      
      	* testsuite/30_threads/async/forced_unwind.cc: Remove explit
      	target list from dg-options.
      	* testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.
      
      	* 30_threads/shared_mutex/cons/1.cc: Likewise.
      	Pass -pthread for all targets.
      	* 30_threads/shared_mutex/try_lock/1.cc: Likewise.
      	* 30_threads/shared_mutex/try_lock/2.cc: Likewise.
      	* 30_threads/shared_mutex/unlock/1.cc: Likewise.
      
      	* testsuite/30_threads/this_thread/57060.cc: Require c++11 via
      	dg-require-effective-target.
      
      From-SVN: r249217
      Rainer Orth committed
    • [ARM] Make gcc.target/arm/its.c more robust · 6820664a
      2017-06-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/testsuite/
          * gcc.target/arm/its.c: Check that no IT blocks has more than 2
          instructions in it rather than the number of IT blocks being 2.
          Transfer scan directive arm_thumb2 restriction to the whole
          testcase and restrict further to Thumb-only targets.
      
      From-SVN: r249215
      Thomas Preud'homme committed
    • sdiv_costs_1.c: Use dg-add-options. · 41c540fc
      2017-06-15  Tamar Christina  <tamar.christina@arm.com>
      
      	* gcc.target/arm/sdiv_costs_1.c:
      	Use dg-add-options.
      
      From-SVN: r249214
      Tamar Christina committed
    • rs6000: Don't use REGNO in the add<mode>3 expander · dfc10762
      The argument could be a subreg of reg instead, which means we have to
      use reg_or_subregno instead of REGNO.
      
      
      	* config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
      	of REGNO.
      
      From-SVN: r249213
      Segher Boessenkool committed
    • Daily bump. · 0f251244
      From-SVN: r249212
      GCC Administrator committed
  3. 14 Jun, 2017 1 commit