The corresponding types are now trivially destructible, per changes
from P3074R7, see PR119059.

libstdc++-v3/ChangeLog:

        * testsuite/20_util/is_constructible/value-2.cc:
        Adjust expected value for C++26 (__cpp_trivial_union >= 202502L).
        * testsuite/20_util/is_destructible/value.cc: Likewise.
        * testsuite/20_util/is_nothrow_destructible/value.cc: Likewise.
---
Tested modified on x86_64-linux in all standard modes.
Pushed to trunk.

 libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc   | 4 ++++
 libstdc++-v3/testsuite/20_util/is_destructible/value.cc      | 4 ++++
 .../testsuite/20_util/is_nothrow_destructible/value.cc       | 5 +++++
 3 files changed, 13 insertions(+)

diff --git a/libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc 
b/libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc
index d8c2f680d6d..aabadc5c13d 100644
--- a/libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc
+++ b/libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc
@@ -715,7 +715,11 @@ static_assert(!std::is_constructible<const DelnAny, Empty, 
B, D>::value,
              "Error");
 
 // Deleted members in unions with non-trivial members:
+#if __cpp_trivial_union >= 202502L
+static_assert(std::is_constructible<NontrivialUnion>::value, "Error");
+#else
 static_assert(!std::is_constructible<NontrivialUnion>::value, "Error");
+#endif
 static_assert(!std::is_constructible<NontrivialUnion,
              const NontrivialUnion&>::value, "Error");
 
diff --git a/libstdc++-v3/testsuite/20_util/is_destructible/value.cc 
b/libstdc++-v3/testsuite/20_util/is_destructible/value.cc
index d6ce6949b9a..e3c8481b0f8 100644
--- a/libstdc++-v3/testsuite/20_util/is_destructible/value.cc
+++ b/libstdc++-v3/testsuite/20_util/is_destructible/value.cc
@@ -99,7 +99,11 @@ static_assert(!std::is_destructible<Del[]>::value, "Error");
 static_assert(!std::is_destructible<const Del[]>::value, "Error");
 
 // Deleted members in unions with non-trivial members:
+#if __cpp_trivial_union >= 202502L
+static_assert(std::is_destructible<NontrivialUnion>::value, "Error");
+#else
 static_assert(!std::is_destructible<NontrivialUnion>::value, "Error");
+#endif
 
 // Unusual copy:
 static_assert(std::is_destructible<UnusualCopy>::value, "Error");
diff --git a/libstdc++-v3/testsuite/20_util/is_nothrow_destructible/value.cc 
b/libstdc++-v3/testsuite/20_util/is_nothrow_destructible/value.cc
index 71860099dbd..5565d8111bb 100644
--- a/libstdc++-v3/testsuite/20_util/is_nothrow_destructible/value.cc
+++ b/libstdc++-v3/testsuite/20_util/is_nothrow_destructible/value.cc
@@ -96,8 +96,13 @@ static_assert(!std::is_nothrow_destructible<TD2>::value, 
"Error");
 static_assert(!std::is_nothrow_destructible<Aggr2>::value, "Error");
 static_assert(!std::is_nothrow_destructible<Aggr2[1]>::value, "Error");
 static_assert(!std::is_nothrow_destructible<TD1[1][2]>::value, "Error");
+#if __cpp_trivial_union >= 202502L
+static_assert(std::is_nothrow_destructible<Ut>::value, "Error");
+static_assert(std::is_nothrow_destructible<Ut[3]>::value, "Error");
+#else
 static_assert(!std::is_nothrow_destructible<Ut>::value, "Error");
 static_assert(!std::is_nothrow_destructible<Ut[3]>::value, "Error");
+#endif
 static_assert(!std::is_nothrow_destructible<AbstractDelDtor>::value, "Error");
 static_assert(!std::is_nothrow_destructible<Abstract2>::value, "Error");
 static_assert(!std::is_nothrow_destructible<Abstract3>::value, "Error");
-- 
2.54.0

Reply via email to