svn commit: r356466 - in stable/12/contrib/llvm-project/libcxx/include: . ext

Dimitry Andric dim at FreeBSD.org
Tue Jan 7 20:06:28 UTC 2020


Author: dim
Date: Tue Jan  7 20:06:26 2020
New Revision: 356466
URL: https://svnweb.freebsd.org/changeset/base/356466

Log:
  MFC r356005:
  
  Merge commit f97936fab from llvm git (by Eric Fiselier):
  
    [libc++] Cleanup and enable multiple warnings.
  
    Too many warnings are being disabled too quickly. Warnings are
    important to keeping libc++ correct. This patch re-enables two
    warnings: -Wconstant-evaluated and -Wdeprecated-copy.
  
    In future, all warnings disabled for the test suite should require an
    attached bug. The bug should state the plan for re-enabling that
    warning, or a strong case why it should remain disabled.
  
  This should fix a number of new g++ 9 warnings.
  
  Requested by:	rlibby

Modified:
  stable/12/contrib/llvm-project/libcxx/include/__bit_reference
  stable/12/contrib/llvm-project/libcxx/include/__hash_table
  stable/12/contrib/llvm-project/libcxx/include/__tree
  stable/12/contrib/llvm-project/libcxx/include/ext/hash_map
  stable/12/contrib/llvm-project/libcxx/include/random
  stable/12/contrib/llvm-project/libcxx/include/valarray
Directory Properties:
  stable/12/   (props changed)
  stable/12/contrib/llvm-project/libcxx/   (props changed)

Modified: stable/12/contrib/llvm-project/libcxx/include/__bit_reference
==============================================================================
--- stable/12/contrib/llvm-project/libcxx/include/__bit_reference	Tue Jan  7 20:01:59 2020	(r356465)
+++ stable/12/contrib/llvm-project/libcxx/include/__bit_reference	Tue Jan  7 20:06:26 2020	(r356466)
@@ -1108,8 +1108,12 @@ class __bit_iterator (public)
 #endif
     {}
 
+    // avoid re-declaring a copy constructor for the non-const version.
+    using __type_for_copy_to_const =
+      _If<_IsConst, __bit_iterator<_Cp, false>, struct __private_nat>;
+
     _LIBCPP_INLINE_VISIBILITY
-    __bit_iterator(const __bit_iterator<_Cp, false>& __it) _NOEXCEPT
+    __bit_iterator(const __type_for_copy_to_const& __it) _NOEXCEPT
         : __seg_(__it.__seg_), __ctz_(__it.__ctz_) {}
 
     _LIBCPP_INLINE_VISIBILITY reference operator*() const _NOEXCEPT

Modified: stable/12/contrib/llvm-project/libcxx/include/__hash_table
==============================================================================
--- stable/12/contrib/llvm-project/libcxx/include/__hash_table	Tue Jan  7 20:01:59 2020	(r356465)
+++ stable/12/contrib/llvm-project/libcxx/include/__hash_table	Tue Jan  7 20:06:26 2020	(r356466)
@@ -825,10 +825,12 @@ class __hash_node_destructor (private)
 
     allocator_type& __na_;
 
-    __hash_node_destructor& operator=(const __hash_node_destructor&);
-
 public:
     bool __value_constructed;
+
+    __hash_node_destructor(__hash_node_destructor const&) = default;
+    __hash_node_destructor& operator=(const __hash_node_destructor&) = delete;
+
 
     _LIBCPP_INLINE_VISIBILITY
     explicit __hash_node_destructor(allocator_type& __na,

Modified: stable/12/contrib/llvm-project/libcxx/include/__tree
==============================================================================
--- stable/12/contrib/llvm-project/libcxx/include/__tree	Tue Jan  7 20:01:59 2020	(r356465)
+++ stable/12/contrib/llvm-project/libcxx/include/__tree	Tue Jan  7 20:06:26 2020	(r356466)
@@ -775,10 +775,13 @@ class __tree_node_destructor (private)
     typedef __tree_node_types<pointer> _NodeTypes;
     allocator_type& __na_;
 
-    __tree_node_destructor& operator=(const __tree_node_destructor&);
 
 public:
     bool __value_constructed;
+
+
+    __tree_node_destructor(const __tree_node_destructor &) = default;
+    __tree_node_destructor& operator=(const __tree_node_destructor&) = delete;
 
     _LIBCPP_INLINE_VISIBILITY
     explicit __tree_node_destructor(allocator_type& __na, bool __val = false) _NOEXCEPT

Modified: stable/12/contrib/llvm-project/libcxx/include/ext/hash_map
==============================================================================
--- stable/12/contrib/llvm-project/libcxx/include/ext/hash_map	Tue Jan  7 20:01:59 2020	(r356465)
+++ stable/12/contrib/llvm-project/libcxx/include/ext/hash_map	Tue Jan  7 20:06:26 2020	(r356466)
@@ -315,11 +315,12 @@ class __hash_map_node_destructor (private)
 
     allocator_type& __na_;
 
-    __hash_map_node_destructor& operator=(const __hash_map_node_destructor&);
-
 public:
     bool __first_constructed;
     bool __second_constructed;
+
+    __hash_map_node_destructor(__hash_map_node_destructor const&) = default;
+    __hash_map_node_destructor& operator=(const __hash_map_node_destructor&) = delete;
 
     _LIBCPP_INLINE_VISIBILITY
     explicit __hash_map_node_destructor(allocator_type& __na)

Modified: stable/12/contrib/llvm-project/libcxx/include/random
==============================================================================
--- stable/12/contrib/llvm-project/libcxx/include/random	Tue Jan  7 20:01:59 2020	(r356465)
+++ stable/12/contrib/llvm-project/libcxx/include/random	Tue Jan  7 20:06:26 2020	(r356466)
@@ -6105,6 +6105,7 @@ class _LIBCPP_TEMPLATE_VIS piecewise_constant_distribu
         template<class _UnaryOperation>
             param_type(size_t __nw, result_type __xmin, result_type __xmax,
                        _UnaryOperation __fw);
+        param_type(param_type const&) = default;
         param_type & operator=(const param_type& __rhs);
 
         _LIBCPP_INLINE_VISIBILITY
@@ -6428,6 +6429,7 @@ class _LIBCPP_TEMPLATE_VIS piecewise_linear_distributi
         template<class _UnaryOperation>
             param_type(size_t __nw, result_type __xmin, result_type __xmax,
                        _UnaryOperation __fw);
+        param_type(param_type const&) = default;
         param_type & operator=(const param_type& __rhs);
 
         _LIBCPP_INLINE_VISIBILITY

Modified: stable/12/contrib/llvm-project/libcxx/include/valarray
==============================================================================
--- stable/12/contrib/llvm-project/libcxx/include/valarray	Tue Jan  7 20:01:59 2020	(r356465)
+++ stable/12/contrib/llvm-project/libcxx/include/valarray	Tue Jan  7 20:06:26 2020	(r356466)
@@ -1256,6 +1256,8 @@ class _LIBCPP_TEMPLATE_VIS slice_array (public)
     _LIBCPP_INLINE_VISIBILITY
     operator>>=(const _Expr& __v) const;
 
+    slice_array(slice_array const&) = default;
+
     _LIBCPP_INLINE_VISIBILITY
     const slice_array& operator=(const slice_array& __sa) const;
 
@@ -1505,11 +1507,6 @@ class _LIBCPP_TYPE_VIS gslice (public)
 
 #endif  // _LIBCPP_CXX03_LANG
 
-//  gslice(const gslice&)            = default;
-//  gslice(gslice&&)                 = default;
-//  gslice& operator=(const gslice&) = default;
-//  gslice& operator=(gslice&&)      = default;
-
     _LIBCPP_INLINE_VISIBILITY
     size_t           start()  const {return __1d_.size() ? __1d_[0] : 0;}
 
@@ -1645,10 +1642,7 @@ class _LIBCPP_TEMPLATE_VIS gslice_array (public)
     _LIBCPP_INLINE_VISIBILITY
     void operator=(const value_type& __x) const;
 
-//  gslice_array(const gslice_array&)            = default;
-//  gslice_array(gslice_array&&)                 = default;
-//  gslice_array& operator=(const gslice_array&) = default;
-//  gslice_array& operator=(gslice_array&&)      = default;
+    gslice_array(const gslice_array&)            = default;
 
 private:
     gslice_array(const gslice& __gs, const valarray<value_type>& __v)
@@ -1977,17 +1971,14 @@ class _LIBCPP_TEMPLATE_VIS mask_array (public)
     _LIBCPP_INLINE_VISIBILITY
     operator>>=(const _Expr& __v) const;
 
+    mask_array(const mask_array&) = default;
+
     _LIBCPP_INLINE_VISIBILITY
     const mask_array& operator=(const mask_array& __ma) const;
 
     _LIBCPP_INLINE_VISIBILITY
     void operator=(const value_type& __x) const;
 
-//  mask_array(const mask_array&)            = default;
-//  mask_array(mask_array&&)                 = default;
-//  mask_array& operator=(const mask_array&) = default;
-//  mask_array& operator=(mask_array&&)      = default;
-
 private:
     _LIBCPP_INLINE_VISIBILITY
     mask_array(const valarray<bool>& __vb, const valarray<value_type>& __v)
@@ -2336,16 +2327,13 @@ class _LIBCPP_TEMPLATE_VIS indirect_array (public)
     _LIBCPP_INLINE_VISIBILITY
     operator>>=(const _Expr& __v) const;
 
+    indirect_array(const indirect_array&) = default;
+
     _LIBCPP_INLINE_VISIBILITY
     const indirect_array& operator=(const indirect_array& __ia) const;
 
     _LIBCPP_INLINE_VISIBILITY
     void operator=(const value_type& __x) const;
-
-//  indirect_array(const indirect_array&)            = default;
-//  indirect_array(indirect_array&&)                 = default;
-//  indirect_array& operator=(const indirect_array&) = default;
-//  indirect_array& operator=(indirect_array&&)      = default;
 
 private:
      _LIBCPP_INLINE_VISIBILITY


More information about the svn-src-all mailing list