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