From: Jonathan Wakely Date: Thu, 10 Sep 2020 17:48:25 +0000 (+0100) Subject: libstdc++: Fix -Wdeprecated-declarations warnings X-Git-Tag: basepoints/gcc-12~5135 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0943b558171ffc731577c428d6c5f81897b6a034;p=thirdparty%2Fgcc.git libstdc++: Fix -Wdeprecated-declarations warnings libstdc++-v3/ChangeLog: * include/experimental/bits/shared_ptr.h (shared_ptr(auto_ptr&&)) (operator=(auto_ptr&&)): Add diagnostic pragmas to suppress warnings for uses of std::auto_ptr. * include/experimental/type_traits (is_literal_type_v): Likewise, for use of std::is_literal_type. * include/std/condition_variable (condition_variable_any::_Unlock): Likewise, for use of std::uncaught_exception. --- diff --git a/libstdc++-v3/include/experimental/bits/shared_ptr.h b/libstdc++-v3/include/experimental/bits/shared_ptr.h index 953f5b78a5f0..a32c1eef8956 100644 --- a/libstdc++-v3/include/experimental/bits/shared_ptr.h +++ b/libstdc++-v3/include/experimental/bits/shared_ptr.h @@ -137,10 +137,13 @@ inline namespace fundamentals_v2 : _Base_type(__r) { } #if _GLIBCXX_USE_DEPRECATED +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" template> shared_ptr(std::auto_ptr<_Tp1>&& __r) : _Base_type(std::move(__r)) { _M_enable_shared_from_this_with(static_cast<_Tp1*>(this->get())); } +#pragma GCC diagnostic pop #endif template _Compatible<_Tp1, shared_ptr&> operator=(std::auto_ptr<_Tp1>&& __r) @@ -194,6 +199,7 @@ inline namespace fundamentals_v2 __shared_ptr<_Tp>::operator=(std::move(__r)); return *this; } +#pragma GCC diagnostic pop #endif template diff --git a/libstdc++-v3/include/experimental/type_traits b/libstdc++-v3/include/experimental/type_traits index a92c385c0295..11001bf184a4 100644 --- a/libstdc++-v3/include/experimental/type_traits +++ b/libstdc++-v3/include/experimental/type_traits @@ -114,9 +114,9 @@ template #pragma GCC diagnostic ignored "-Wdeprecated-declarations" template constexpr bool is_pod_v = is_pod<_Tp>::value; -#pragma GCC diagnostic pop template constexpr bool is_literal_type_v = is_literal_type<_Tp>::value; +#pragma GCC diagnostic pop template constexpr bool is_empty_v = is_empty<_Tp>::value; template diff --git a/libstdc++-v3/include/std/condition_variable b/libstdc++-v3/include/std/condition_variable index 2db9dff6c31a..a08cfc627059 100644 --- a/libstdc++-v3/include/std/condition_variable +++ b/libstdc++-v3/include/std/condition_variable @@ -266,6 +266,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { explicit _Unlock(_Lock& __lk) : _M_lock(__lk) { __lk.unlock(); } +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" ~_Unlock() noexcept(false) { if (uncaught_exception()) @@ -280,6 +282,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION else _M_lock.lock(); } +#pragma GCC diagnostic pop _Unlock(const _Unlock&) = delete; _Unlock& operator=(const _Unlock&) = delete;