From b0c211081d089037914f36d2a90f066fe0884624 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 10 Sep 2020 18:48:25 +0100 Subject: [PATCH] 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. (cherry picked from commit 0943b558171ffc731577c428d6c5f81897b6a034) --- libstdc++-v3/include/experimental/bits/shared_ptr.h | 6 ++++++ libstdc++-v3/include/experimental/type_traits | 2 +- libstdc++-v3/include/std/condition_variable | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/include/experimental/bits/shared_ptr.h b/libstdc++-v3/include/experimental/bits/shared_ptr.h index 953f5b78a5f..a32c1eef895 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 a92c385c029..11001bf184a 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 2db9dff6c31..a08cfc62705 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; -- 2.39.3