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
MFC after:	3 days
This commit is contained in:
Dimitry Andric 2019-12-22 11:58:44 +00:00
parent c14a5a8800
commit cd0c3137f8
6 changed files with 25 additions and 25 deletions

View File

@ -1108,8 +1108,12 @@ 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

View File

@ -825,11 +825,13 @@ 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,
bool __constructed = false) _NOEXCEPT

View File

@ -775,11 +775,14 @@ 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
: __na_(__na),

View File

@ -315,12 +315,13 @@ 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)
: __na_(__na),

View File

@ -6105,6 +6105,7 @@ public:
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 @@ public:
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

View File

@ -1256,6 +1256,8 @@ 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 @@ 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 @@ 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 @@ 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,17 +2327,14 @@ 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
indirect_array(const valarray<size_t>& __ia, const valarray<value_type>& __v)