aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2020-10-29 11:43:55 +0000
committerJonathan Wakely <jwakely@redhat.com>2020-10-29 11:43:55 +0000
commiteb6b71b83c9f099808bc50c6a467a0caf4002e50 (patch)
treef102c93889faa853f8d8eb7a9b05579509675b77
parent9df44b9403312d7cd9678bfb44cae3bb972d6355 (diff)
downloadgcc-eb6b71b83c9f099808bc50c6a467a0caf4002e50.zip
gcc-eb6b71b83c9f099808bc50c6a467a0caf4002e50.tar.gz
gcc-eb6b71b83c9f099808bc50c6a467a0caf4002e50.tar.bz2
libstdc++: Fix some warnings in headers
These are usually suppressed without -Wsystem-headers. libstdc++-v3/ChangeLog: * include/bits/hashtable_policy.h (_Local_iterator_base): Cast value to avoid -Wsign-compare warnings. * include/bits/regex.h (sub_match::_M_str): Avoid narrowing conversion. * include/bits/regex_compiler.tcc (_Compiler::_M_quantifier): Initialize variable to avoid -Wmaybe-uninitialized warning. * include/bits/shared_ptr_base.h (_Sp_counted_deleter::_Impl): Reorder mem-initializer-list to avoid -Wreorder warning. * include/bits/stl_tree.h (_Rb_tree_impl): Explicitly initialize base class in copy constructor. * include/debug/safe_iterator.h (_Safe_iterator): Likewise. * include/ext/debug_allocator.h: Reorder mem-initializer-list to avoid -Wreorder warning. * include/ext/throw_allocator.h (throw_allocator_limit) (throw_allocator_random): Add user-declared assignment operators to avoid -Wdeprecated-copy warnings.
-rw-r--r--libstdc++-v3/include/bits/hashtable_policy.h4
-rw-r--r--libstdc++-v3/include/bits/regex.h2
-rw-r--r--libstdc++-v3/include/bits/regex_compiler.tcc14
-rw-r--r--libstdc++-v3/include/bits/shared_ptr_base.h2
-rw-r--r--libstdc++-v3/include/bits/stl_tree.h1
-rw-r--r--libstdc++-v3/include/debug/safe_iterator.h2
-rw-r--r--libstdc++-v3/include/ext/debug_allocator.h4
-rw-r--r--libstdc++-v3/include/ext/throw_allocator.h10
8 files changed, 25 insertions, 14 deletions
diff --git a/libstdc++-v3/include/bits/hashtable_policy.h b/libstdc++-v3/include/bits/hashtable_policy.h
index f5ce720..cea5e54 100644
--- a/libstdc++-v3/include/bits/hashtable_policy.h
+++ b/libstdc++-v3/include/bits/hashtable_policy.h
@@ -1368,7 +1368,7 @@ namespace __detail
~_Local_iterator_base()
{
- if (_M_bucket_count != -1)
+ if (_M_bucket_count != size_t(-1))
_M_destroy();
}
@@ -1376,7 +1376,7 @@ namespace __detail
: __node_iter_base(__iter._M_cur), _M_bucket(__iter._M_bucket)
, _M_bucket_count(__iter._M_bucket_count)
{
- if (_M_bucket_count != -1)
+ if (_M_bucket_count != size_t(-1))
_M_init(*__iter._M_h());
}
diff --git a/libstdc++-v3/include/bits/regex.h b/libstdc++-v3/include/bits/regex.h
index 15e4289..3cbd0d5 100644
--- a/libstdc++-v3/include/bits/regex.h
+++ b/libstdc++-v3/include/bits/regex.h
@@ -994,7 +994,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
_M_str() const noexcept
{
if (this->matched)
- if (auto __len = this->second - this->first)
+ if (size_t __len = this->second - this->first)
return { std::__addressof(*this->first), __len };
return {};
}
diff --git a/libstdc++-v3/include/bits/regex_compiler.tcc b/libstdc++-v3/include/bits/regex_compiler.tcc
index 2ae4af0..c26b28a 100644
--- a/libstdc++-v3/include/bits/regex_compiler.tcc
+++ b/libstdc++-v3/include/bits/regex_compiler.tcc
@@ -233,16 +233,16 @@ namespace __detail
_StateSeqT __e(*_M_nfa, _M_nfa->_M_insert_dummy());
long __min_rep = _M_cur_int_value(10);
bool __infi = false;
- long __n;
+ long __n = 0;
// {3
if (_M_match_token(_ScannerT::_S_token_comma))
- if (_M_match_token(_ScannerT::_S_token_dup_count)) // {3,7}
- __n = _M_cur_int_value(10) - __min_rep;
- else
- __infi = true;
- else
- __n = 0;
+ {
+ if (_M_match_token(_ScannerT::_S_token_dup_count)) // {3,7}
+ __n = _M_cur_int_value(10) - __min_rep;
+ else
+ __infi = true;
+ }
if (!_M_match_token(_ScannerT::_S_token_interval_end))
__throw_regex_error(regex_constants::error_brace,
"Unexpected end of brace expression.");
diff --git a/libstdc++-v3/include/bits/shared_ptr_base.h b/libstdc++-v3/include/bits/shared_ptr_base.h
index 543783b..368b2d7 100644
--- a/libstdc++-v3/include/bits/shared_ptr_base.h
+++ b/libstdc++-v3/include/bits/shared_ptr_base.h
@@ -415,7 +415,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
public:
_Impl(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept
- : _M_ptr(__p), _Del_base(std::move(__d)), _Alloc_base(__a)
+ : _Del_base(std::move(__d)), _Alloc_base(__a), _M_ptr(__p)
{ }
_Deleter& _M_del() noexcept { return _Del_base::_S_get(*this); }
diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h
index c50391d..ec141ea 100644
--- a/libstdc++-v3/include/bits/stl_tree.h
+++ b/libstdc++-v3/include/bits/stl_tree.h
@@ -691,6 +691,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_Rb_tree_impl(const _Rb_tree_impl& __x)
: _Node_allocator(_Alloc_traits::_S_select_on_copy(__x))
, _Base_key_compare(__x._M_key_compare)
+ , _Rb_tree_header()
{ }
#if __cplusplus < 201103L
diff --git a/libstdc++-v3/include/debug/safe_iterator.h b/libstdc++-v3/include/debug/safe_iterator.h
index 84a9f1d..9b77fac 100644
--- a/libstdc++-v3/include/debug/safe_iterator.h
+++ b/libstdc++-v3/include/debug/safe_iterator.h
@@ -170,7 +170,7 @@ namespace __gnu_debug
* @brief Copy construction.
*/
_Safe_iterator(const _Safe_iterator& __x) _GLIBCXX_NOEXCEPT
- : _Iter_base(__x.base())
+ : _Iter_base(__x.base()), _Safe_base()
{
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// DR 408. Is vector<reverse_iterator<char*> > forbidden?
diff --git a/libstdc++-v3/include/ext/debug_allocator.h b/libstdc++-v3/include/ext/debug_allocator.h
index 9946faa..8b39416 100644
--- a/libstdc++-v3/include/ext/debug_allocator.h
+++ b/libstdc++-v3/include/ext/debug_allocator.h
@@ -112,10 +112,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<typename _Alloc2>
debug_allocator(const debug_allocator<_Alloc2>& __a2,
typename __convertible<_Alloc2>::__type = 0)
- : _M_allocator(__a2._M_allocator), _M_extra(_S_extra()) { }
+ : _M_extra(_S_extra()), _M_allocator(__a2._M_allocator) { }
debug_allocator(const _Alloc& __a)
- : _M_allocator(__a), _M_extra(_S_extra()) { }
+ : _M_extra(_S_extra()), _M_allocator(__a) { }
_GLIBCXX_NODISCARD pointer
allocate(size_type __n)
diff --git a/libstdc++-v3/include/ext/throw_allocator.h b/libstdc++-v3/include/ext/throw_allocator.h
index f99b26b..0ab174f 100644
--- a/libstdc++-v3/include/ext/throw_allocator.h
+++ b/libstdc++-v3/include/ext/throw_allocator.h
@@ -922,6 +922,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_USE_NOEXCEPT { }
~throw_allocator_limit() _GLIBCXX_USE_NOEXCEPT { }
+
+#if __cplusplus >= 201103L
+ throw_allocator_limit&
+ operator=(const throw_allocator_limit&) = default;
+#endif
};
#ifdef _GLIBCXX_USE_C99_STDINT_TR1
@@ -944,6 +949,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_USE_NOEXCEPT { }
~throw_allocator_random() _GLIBCXX_USE_NOEXCEPT { }
+
+#if __cplusplus >= 201103L
+ throw_allocator_random&
+ operator=(const throw_allocator_random&) = default;
+#endif
};
#endif // _GLIBCXX_USE_C99_STDINT_TR1