From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by sourceware.org (Postfix) with ESMTP id 3B1F23985425 for ; Thu, 29 Oct 2020 11:44:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 3B1F23985425 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-466-hCRcbYJhNXiRP6Ol9PovDg-1; Thu, 29 Oct 2020 07:44:25 -0400 X-MC-Unique: hCRcbYJhNXiRP6Ol9PovDg-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8DA1264149; Thu, 29 Oct 2020 11:44:24 +0000 (UTC) Received: from localhost (unknown [10.33.36.7]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3CA3E5B4A4; Thu, 29 Oct 2020 11:44:24 +0000 (UTC) Date: Thu, 29 Oct 2020 11:44:23 +0000 From: Jonathan Wakely To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: [committed] libstdc++: Fix some warnings in headers Message-ID: <20201029114423.GA2327676@redhat.com> MIME-Version: 1.0 X-Clacks-Overhead: GNU Terry Pratchett X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="fUYQa+Pmc3FrFX/N" Content-Disposition: inline X-Spam-Status: No, score=-14.2 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Oct 2020 11:44:29 -0000 --fUYQa+Pmc3FrFX/N Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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. Tested x86_64-linux. Committed to trunk. --fUYQa+Pmc3FrFX/N Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="patch.txt" commit eb6b71b83c9f099808bc50c6a467a0caf4002e50 Author: Jonathan Wakely Date: Thu Oct 29 11:43:55 2020 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. diff --git a/libstdc++-v3/include/bits/hashtable_policy.h b/libstdc++-v3/include/bits/hashtable_policy.h index f5ce7209957..cea5e549d25 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 15e4289bf95..3cbd0d5913e 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 2ae4af02c89..c26b28a6965 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 543783ba034..368b2d7379a 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 c50391d68c3..ec141ea01c7 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 84a9f1d526d..9b77fac6478 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 > forbidden? diff --git a/libstdc++-v3/include/ext/debug_allocator.h b/libstdc++-v3/include/ext/debug_allocator.h index 9946faa10a6..8b3941682eb 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 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 f99b26b0cf1..0ab174f19a5 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 --fUYQa+Pmc3FrFX/N--