1. 05 Feb, 2019 8 commits
    • PR libstdc++/89130 restore support for non-MoveConstructible types · 258bd1d6
      The changes to "relocate" std::vector elements can lead to new errors
      outside the immediate context, because moving the elements to new
      storage no longer makes use of the move-if-noexcept utilities. This
      means that types with deleted moves no longer degenerate to copies, but
      are just ill-formed. The errors happen while instantiating the
      noexcept-specifier for __relocate_object_a, when deciding whether to try
      to relocate.
      
      This patch introduces indirections to avoid the ill-formed
      instantiations of std::__relocate_object_a. In order to avoid using
      if-constexpr prior to C++17 this is done by tag dispatching. After this
      patch all uses of std::__relocate_a are guarded by checks that will
      support sensible code (i.e. code not using custom allocators that fool
      the new checks).
      
      	PR libstdc++/89130
      	* include/bits/alloc_traits.h (__is_copy_insertable_impl): Rename to
      	__is_alloc_insertable_impl. Replace single type member with two
      	members, one for each of copy and move insertable.
      	(__is_move_insertable): New trait for internal use.
      	* include/bits/stl_vector.h (vector::_S_nothrow_relocate(true_type))
      	(vector::_S_nothrow_relocate(true_type)): New functions to
      	conditionally check if __relocate_a can throw.
      	(vector::_S_use_relocate()): Dispatch to _S_nothrow_relocate based
      	on __is_move_insertable.
      	(vector::_S_do_relocate): New overloaded functions to conditionally
      	call __relocate_a.
      	(vector::_S_relocate): New function that dispatches to _S_do_relocate
      	based on _S_use_relocate.
      	* include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
      	(vector::_M_default_append): Call _S_relocate instead of __relocate_a.
      	* testsuite/23_containers/vector/modifiers/push_back/89130.cc: New.
      
      From-SVN: r268537
      Jonathan Wakely committed
    • PR libstdc++/89090 avoid C++17 features in C++11/C++14 code · 27812872
      Although GCC and Clang both allow these features pre-C++17 in system
      headers, Clang does issue warnings with -Wsystem-headers. It can also
      complicate bisection and/or testcase reduction if # line markers are
      stripped, because the code won't be known to come from system headers.
      
      	PR libstdc++/89090
      	* include/bits/stl_uninitialized.h (__relocate_a_1): Make unused
      	parameter unnamed. Add message to static assertion.
      	* include/bits/vector.tcc (vector::reserve, vector::_M_realloc_insert)
      	(vector::_M_default_append): Use _GLIBCXX17_CONSTEXPR for if constexpr
      	in C++11 code.
      
      From-SVN: r268536
      Jonathan Wakely committed
    • GCOV: remove misleading branches and calls info for -f option (PR gcov-profile/89000). · e4b52fca
      2019-02-05  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/89000
      	* gcov.c (function_summary): Remove argument.
      	(file_summary): New function.
      	(print_usage): Replace tabs with spaces.
      	(generate_results): Use new function file_summary.
      
      From-SVN: r268533
      Martin Liska committed
    • Rename __is_trivially_relocatable to __is_bitwise_relocatable. · 9aa2470a
      2019-02-05  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR libstdc++/87106
      	* include/bits/stl_uninitialized.h (__is_trivially_relocatable):
      	Rename...
      	(__is_bitwise_relocatable): ... to this.
      	(__relocate_a_1): Adapt.
      	* include/bits/stl_deque.h (__is_trivially_relocatable): Rename...
      	(__is_bitwise_relocatable): ... to this.
      
      From-SVN: r268532
      Marc Glisse committed
    • re PR target/89186 (ICE in mark_addressable at gcc/gimple-expr.c:894 since r268138) · c8010d70
      	PR target/89186
      	* optabs.c (prepare_cmp_insn): Pass x and y to
      	emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
      
      	* g++.dg/ext/vector36.C: New test.
      
      From-SVN: r268531
      Jakub Jelinek committed
    • re PR middle-end/89150 (Tree form bitmaps break GC) · 7eeb6fc2
      2019-02-05  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/89150
      	* bitmap.h (struct bitmap_obstack): Do not mark GTY.
      	(struct bitmap_element): Drop chain_prev so we properly recurse on
      	the prev member, supporting tree views.
      	(struct bitmap_head): GTY skip the obstack member.
      
      From-SVN: r268530
      Richard Biener committed
    • [PR87770] test partial specializations for type dependence · e1bbb0bc
      When instantiating a partial specialization of a template member
      function for a full specialization of a class template, we test
      whether the context of variables local to the partial specialization,
      i.e., the partial specialization itself, is dependent, and this ICEs
      in type_dependent_expression_p, when checking that the function type
      isn't type-dependent because it is not in a type-dependent scope.
      
      We shouldn't have got that far: the previous block in
      type_dependent_expression_p catches cases in which the function itself
      takes template arguments of its own, but it only did so for primary
      templates, not for partial specializations.  This patch fixes that.
      
      
      for  gcc/cp/ChangeLog
      
      	PR c++/87770
      	* pt.c (instantiates_primary_template_p): New.
      	(type_dependent_expression_p): Use it.
      
      for  gcc/testsuite/ChangeLog
      
      	PR c++/87770
      	* g++.dg/pr87770.C: New.
      
      From-SVN: r268529
      Alexandre Oliva committed
    • Daily bump. · ca0107a7
      From-SVN: r268528
      GCC Administrator committed
  2. 04 Feb, 2019 16 commits
  3. 03 Feb, 2019 6 commits
  4. 02 Feb, 2019 9 commits
  5. 01 Feb, 2019 1 commit