]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Fix some test failures due trivial unions (P3074R7) change.
authorTomasz Kamiński <tkaminsk@redhat.com>
Mon, 25 May 2026 14:30:46 +0000 (16:30 +0200)
committerTomasz Kamiński <tkaminsk@redhat.com>
Mon, 25 May 2026 14:37:14 +0000 (16:37 +0200)
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.

libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc
libstdc++-v3/testsuite/20_util/is_destructible/value.cc
libstdc++-v3/testsuite/20_util/is_nothrow_destructible/value.cc

index d8c2f680d6dc25cce2f8fabdad0122b26f4f0a80..aabadc5c13d94278a94ac8313bdde1c53ba56e7c 100644 (file)
@@ -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");
 
index d6ce6949b9a27df2a6963a14f35cfb7bf41bfa1f..e3c8481b0f8e05ee5c834db33bbdcb0c43e4efe7 100644 (file)
@@ -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");
index 71860099dbd30a79b3b27c465137b665010f6280..5565d8111bbd8678a8fee1cc3765ebd1474395f9 100644 (file)
@@ -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");