From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2181) id D9571385417E; Mon, 6 Feb 2023 14:25:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D9571385417E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1675693537; bh=Wx+Hr3HGUrMh8oBhNJV3M4zOYcTzcPPVMqexoSJx4l4=; h=From:To:Subject:Date:From; b=KBD+fIz6GWt5eHaSaloB7AAKbe8KZb6Q/N8726ymYlU95/FaMB0lvf4U36GhQGI9U 1dy71uYTiynYiHNAUB6hzzg5W8J6UE/6hSSXy1Fzyl551Amf7aMO+ZvVZc5hUKOBsU zdnVtam2x+XC45eppk7rR53bEDJEmBUx8rsNqIuo= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jonathan Wakely To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r13-5716] libstdc++: Fix testsuite warnings about new C++23 deprecations X-Act-Checkin: gcc X-Git-Author: Jonathan Wakely X-Git-Refname: refs/heads/master X-Git-Oldrev: aa02a69e15dfc4b276457b65fae283f1a06fb2a0 X-Git-Newrev: c76f55bf330e7cb823cb850aa2694b355038625f Message-Id: <20230206142537.D9571385417E@sourceware.org> Date: Mon, 6 Feb 2023 14:25:37 +0000 (GMT) List-Id: https://gcc.gnu.org/g:c76f55bf330e7cb823cb850aa2694b355038625f commit r13-5716-gc76f55bf330e7cb823cb850aa2694b355038625f Author: Jonathan Wakely Date: Sat Feb 4 00:04:55 2023 +0000 libstdc++: Fix testsuite warnings about new C++23 deprecations With the recent change to deprecate std::aligned_storage and std::aligned_union we need to adjust some tests that now fail with -std=c++23. libstdc++-v3/ChangeLog: * include/std/type_traits: Add diagnostic pragmas around references to deprecated std::aligned_storage and std::aligned_union traits. * testsuite/20_util/aligned_storage/requirements/alias_decl.cc: Add dg-warning for et c++23. * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/aligned_storage/value.cc: Likewise. * testsuite/20_util/aligned_union/1.cc: Likewise. * testsuite/20_util/aligned_union/requirements/alias_decl.cc: Likewise. Diff: --- libstdc++-v3/include/std/type_traits | 7 +++++++ .../testsuite/20_util/aligned_storage/requirements/alias_decl.cc | 3 +++ .../20_util/aligned_storage/requirements/explicit_instantiation.cc | 3 +++ libstdc++-v3/testsuite/20_util/aligned_storage/value.cc | 2 ++ libstdc++-v3/testsuite/20_util/aligned_union/1.cc | 2 ++ .../testsuite/20_util/aligned_union/requirements/alias_decl.cc | 3 +++ 6 files changed, 20 insertions(+) diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index d13af433a17..2bd607a8b8f 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -2123,6 +2123,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ? sizeof(_Tp) : __strictest_alignment<_Types...>::_S_size; }; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + /** * @brief Provide aligned storage for types. * @@ -2155,6 +2158,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template const size_t aligned_union<_Len, _Types...>::alignment_value; +#pragma GCC diagnostic pop /// @cond undocumented @@ -2586,6 +2590,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { } _GLIBCXX17_DEPRECATED_SUGGEST("std::invoke_result"); #if __cplusplus >= 201402L +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" /// Alias template for aligned_storage template::__type)> @@ -2593,6 +2599,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template using aligned_union_t _GLIBCXX23_DEPRECATED = typename aligned_union<_Len, _Types...>::type; +#pragma GCC diagnostic pop /// Alias template for decay template diff --git a/libstdc++-v3/testsuite/20_util/aligned_storage/requirements/alias_decl.cc b/libstdc++-v3/testsuite/20_util/aligned_storage/requirements/alias_decl.cc index fc230b66a9d..2e8e90efcd7 100644 --- a/libstdc++-v3/testsuite/20_util/aligned_storage/requirements/alias_decl.cc +++ b/libstdc++-v3/testsuite/20_util/aligned_storage/requirements/alias_decl.cc @@ -26,3 +26,6 @@ using namespace std; static_assert (is_same::type, aligned_storage_t<4>>(), "aligned_storage_t" ); + +// { dg-warning "deprecated" "" { target c++23 } 26 } +// { dg-warning "deprecated" "" { target c++23 } 27 } diff --git a/libstdc++-v3/testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc index 36dfe04b083..baec6667f30 100644 --- a/libstdc++-v3/testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc +++ b/libstdc++-v3/testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc @@ -29,3 +29,6 @@ namespace std template struct aligned_storage<1, alignment_of::value>; template struct aligned_storage<2>; } + +// { dg-warning "deprecated" "" { target c++23 } 29 } +// { dg-warning "deprecated" "" { target c++23 } 30 } diff --git a/libstdc++-v3/testsuite/20_util/aligned_storage/value.cc b/libstdc++-v3/testsuite/20_util/aligned_storage/value.cc index 16a5580a6b7..6e9df7ffc5d 100644 --- a/libstdc++-v3/testsuite/20_util/aligned_storage/value.cc +++ b/libstdc++-v3/testsuite/20_util/aligned_storage/value.cc @@ -59,3 +59,5 @@ void test01() static_assert(sizeof(aligned_storage<5>::type) >= 5, ""); static_assert(__alignof__(aligned_storage<5>::type) == align_msa, ""); } + +// { dg-warning "deprecated" "" { target c++23 } 0 } diff --git a/libstdc++-v3/testsuite/20_util/aligned_union/1.cc b/libstdc++-v3/testsuite/20_util/aligned_union/1.cc index b779884dcc2..7501529cbf4 100644 --- a/libstdc++-v3/testsuite/20_util/aligned_union/1.cc +++ b/libstdc++-v3/testsuite/20_util/aligned_union/1.cc @@ -64,6 +64,8 @@ void test01() static_assert(sizeof(au_type2::type) >= max_s+100, "Storage size (at least len)"); } +// { dg-warning "deprecated" "" { target c++23 } 57 } +// { dg-warning "deprecated" "" { target c++23 } 62 } int main() { diff --git a/libstdc++-v3/testsuite/20_util/aligned_union/requirements/alias_decl.cc b/libstdc++-v3/testsuite/20_util/aligned_union/requirements/alias_decl.cc index 6790d2aa828..41f2b0881af 100644 --- a/libstdc++-v3/testsuite/20_util/aligned_union/requirements/alias_decl.cc +++ b/libstdc++-v3/testsuite/20_util/aligned_union/requirements/alias_decl.cc @@ -26,3 +26,6 @@ using namespace std; static_assert (is_same::type, aligned_union_t<0, char, int>>(), "aligned_union_t" ); + +// { dg-warning "deprecated" "" { target c++23 } 26 } +// { dg-warning "deprecated" "" { target c++23 } 27 }