https://gcc.gnu.org/g:e663f8f39fa6d6bec57c902230d93e2693363bcf
commit r15-6062-ge663f8f39fa6d6bec57c902230d93e2693363bcf Author: Giuseppe D'Angelo <giuseppe.dang...@kdab.com> Date: Mon Dec 9 02:44:30 2024 +0100 libstdc++: port tests away from is_trivial In preparation for the deprecation of is_trivial (P3247R2). Mostly a mechanical exercise, replacing is_trivial with is_trivially_copyable and/or is_trivially_default_constructible depending on the cases. libstdc++-v3/ChangeLog: * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc: Port away from is_trivial. * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc: Likewise. * testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc: Likewise. * testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc: Likewise. * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc: Likewise. * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc: Likewise. * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc: Likewise. * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc: Likewise. * testsuite/23_containers/vector/cons/94540.cc: Likewise. * testsuite/25_algorithms/copy/move_iterators/69478.cc: Likewise. * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: Likewise. * testsuite/25_algorithms/move/69478.cc: Likewise. * testsuite/25_algorithms/move_backward/69478.cc: Likewise. * testsuite/25_algorithms/rotate/constrained.cc: Likewise. * testsuite/25_algorithms/rotate_copy/constrained.cc: Likewise. Signed-off-by: Giuseppe D'Angelo <giuseppe.dang...@kdab.com> Diff: --- .../20_util/specialized_algorithms/uninitialized_copy/102064.cc | 6 ++++-- .../20_util/specialized_algorithms/uninitialized_copy_n/102064.cc | 6 ++++-- .../20_util/specialized_algorithms/uninitialized_default/94540.cc | 3 ++- .../20_util/specialized_algorithms/uninitialized_default_n/94540.cc | 3 ++- .../20_util/specialized_algorithms/uninitialized_fill/102064.cc | 6 ++++-- .../20_util/specialized_algorithms/uninitialized_fill_n/102064.cc | 6 ++++-- .../specialized_algorithms/uninitialized_value_construct/94540.cc | 3 ++- .../specialized_algorithms/uninitialized_value_construct_n/94540.cc | 3 ++- libstdc++-v3/testsuite/23_containers/vector/cons/94540.cc | 3 ++- libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/69478.cc | 3 ++- .../testsuite/25_algorithms/copy_backward/move_iterators/69478.cc | 3 ++- libstdc++-v3/testsuite/25_algorithms/move/69478.cc | 3 ++- libstdc++-v3/testsuite/25_algorithms/move_backward/69478.cc | 3 ++- libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc | 2 +- libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc | 2 +- 15 files changed, 36 insertions(+), 19 deletions(-) diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc index 27d37aab09f4..83caaaec1376 100644 --- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc +++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc @@ -19,7 +19,8 @@ private: Y::operator X() const { return X(); } #if __cplusplus >= 201103L -static_assert( std::is_trivial<X>::value, "" ); +static_assert( std::is_trivially_default_constructible<X>::value, "" ); +static_assert( std::is_trivially_copyable<X>::value, "" ); #endif void test01_pr102064() @@ -40,7 +41,8 @@ struct Z Z& operator=(int) = delete; }; -static_assert( std::is_trivial<Z>::value, "" ); +static_assert( std::is_trivially_default_constructible<Z>::value, "" ); +static_assert( std::is_trivially_copyable<Z>::value, "" ); void test02_pr102064() { diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc index 963e1531a71b..bb0850a34c1d 100644 --- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc +++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc @@ -18,7 +18,8 @@ private: Y::operator X() const { return X(); } -static_assert( std::is_trivial<X>::value, "" ); +static_assert( std::is_trivially_default_constructible<X>::value, "" ); +static_assert( std::is_trivially_copyable<X>::value, "" ); void test01_pr102064() { @@ -37,7 +38,8 @@ struct Z Z& operator=(int) = delete; }; -static_assert( std::is_trivial<Z>::value, "" ); +static_assert( std::is_trivially_default_constructible<Z>::value, "" ); +static_assert( std::is_trivially_copyable<Z>::value, "" ); void test02_pr102064() { diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc index 609fd268948a..20716cba987f 100644 --- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc +++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc @@ -23,7 +23,8 @@ // Assume that 9MB is larger than the stack limit. struct X { char data[9*1024*1024]; }; -static_assert( std::is_trivial<X>::value, "" ); +static_assert( std::is_trivially_default_constructible<X>::value, "" ); +static_assert( std::is_trivially_copyable<X>::value, "" ); int main() { diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc index fae3cf595870..2368aae56289 100644 --- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc +++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc @@ -23,7 +23,8 @@ // Assume that 9MB is larger than the stack limit. struct X { char data[9*1024*1024]; }; -static_assert( std::is_trivial<X>::value, "" ); +static_assert( std::is_trivially_default_constructible<X>::value, "" ); +static_assert( std::is_trivially_copyable<X>::value, "" ); int main() { diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc index 7eb49b543a41..14827cf93255 100644 --- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc +++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc @@ -19,7 +19,8 @@ private: Y::operator X() const { return X(); } #if __cplusplus >= 201103L -static_assert( std::is_trivial<X>::value, "" ); +static_assert( std::is_trivially_default_constructible<X>::value, "" ); +static_assert( std::is_trivially_copyable<X>::value, "" ); #endif void test01_pr102064() @@ -40,7 +41,8 @@ struct Z Z& operator=(int) = delete; }; -static_assert( std::is_trivial<Z>::value, "" ); +static_assert( std::is_trivially_default_constructible<Z>::value, "" ); +static_assert( std::is_trivially_copyable<Z>::value, "" ); void test02_pr102064() { diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc index e4f2139cf6da..3bac1ece67c6 100644 --- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc +++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc @@ -19,7 +19,8 @@ private: Y::operator X() const { return X(); } #if __cplusplus >= 201103L -static_assert( std::is_trivial<X>::value, "" ); +static_assert( std::is_trivially_default_constructible<X>::value, "" ); +static_assert( std::is_trivially_copyable<X>::value, "" ); #endif void test01_pr102064() @@ -40,7 +41,8 @@ struct Z Z& operator=(int) = delete; }; -static_assert( std::is_trivial<Z>::value, "" ); +static_assert( std::is_trivially_default_constructible<Z>::value, "" ); +static_assert( std::is_trivially_copyable<Z>::value, "" ); void test02_pr102064() { diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc index e891e81df933..4c5af9d8c7b9 100644 --- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc +++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc @@ -23,7 +23,8 @@ // Assume that 9MB is larger than the stack limit. struct X { char data[9*1024*1024]; }; -static_assert( std::is_trivial_v<X> ); +static_assert( std::is_trivially_copyable_v<X> ); +static_assert( std::is_trivially_default_constructible_v<X> ); int main() { diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc index 1c4db602490a..a1ee31c74134 100644 --- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc +++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc @@ -23,7 +23,8 @@ // Assume that 9MB is larger than the stack limit. struct X { char data[9*1024*1024]; }; -static_assert( std::is_trivial_v<X> ); +static_assert( std::is_trivially_copyable_v<X> ); +static_assert( std::is_trivially_default_constructible_v<X> ); int main() { diff --git a/libstdc++-v3/testsuite/23_containers/vector/cons/94540.cc b/libstdc++-v3/testsuite/23_containers/vector/cons/94540.cc index 603c1ec1d3e9..1691a75434f0 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/cons/94540.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/cons/94540.cc @@ -23,7 +23,8 @@ // Assume that 9MB is larger than the stack limit. struct X { char data[9*1024*1024]; }; -static_assert( std::is_trivial<X>::value, "" ); +static_assert( std::is_trivially_default_constructible<X>::value, "" ); +static_assert( std::is_trivially_copyable<X>::value, "" ); int main() { diff --git a/libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/69478.cc b/libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/69478.cc index 2d0ff728b8c0..84ead4831a6b 100644 --- a/libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/69478.cc +++ b/libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/69478.cc @@ -32,7 +32,8 @@ test01() trivial_rvalstruct(trivial_rvalstruct&&) = default; trivial_rvalstruct& operator=(trivial_rvalstruct&&) = default; }; - static_assert(std::is_trivial<trivial_rvalstruct>::value, ""); + static_assert(std::is_trivially_default_constructible<trivial_rvalstruct>::value, ""); + static_assert(std::is_trivially_copyable<trivial_rvalstruct>::value, ""); trivial_rvalstruct a[1], b[1]; copy(std::make_move_iterator(a), std::make_move_iterator(a + 1), b); diff --git a/libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/69478.cc b/libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/69478.cc index 572eaab8eff1..dde85ad8545d 100644 --- a/libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/69478.cc +++ b/libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/69478.cc @@ -32,7 +32,8 @@ test01() trivial_rvalstruct(trivial_rvalstruct&&) = default; trivial_rvalstruct& operator=(trivial_rvalstruct&&) = default; }; - static_assert(std::is_trivial<trivial_rvalstruct>::value, ""); + static_assert(std::is_trivially_default_constructible<trivial_rvalstruct>::value, ""); + static_assert(std::is_trivially_copyable<trivial_rvalstruct>::value, ""); trivial_rvalstruct a[1], b[1]; copy_backward(std::make_move_iterator(a), std::make_move_iterator(a+1), b+1); diff --git a/libstdc++-v3/testsuite/25_algorithms/move/69478.cc b/libstdc++-v3/testsuite/25_algorithms/move/69478.cc index 3cad8c8304a8..04a369080b12 100644 --- a/libstdc++-v3/testsuite/25_algorithms/move/69478.cc +++ b/libstdc++-v3/testsuite/25_algorithms/move/69478.cc @@ -32,7 +32,8 @@ test01() trivial_rvalstruct(trivial_rvalstruct&&) = default; trivial_rvalstruct& operator=(trivial_rvalstruct&&) = default; }; - static_assert(std::is_trivial<trivial_rvalstruct>::value, ""); + static_assert(std::is_trivially_default_constructible<trivial_rvalstruct>::value, ""); + static_assert(std::is_trivially_copyable<trivial_rvalstruct>::value, ""); trivial_rvalstruct a[1], b[1]; std::move(a, a + 1, b); diff --git a/libstdc++-v3/testsuite/25_algorithms/move_backward/69478.cc b/libstdc++-v3/testsuite/25_algorithms/move_backward/69478.cc index 5892f0b38abd..9a88dae4d5eb 100644 --- a/libstdc++-v3/testsuite/25_algorithms/move_backward/69478.cc +++ b/libstdc++-v3/testsuite/25_algorithms/move_backward/69478.cc @@ -32,7 +32,8 @@ test01() trivial_rvalstruct(trivial_rvalstruct&&) = default; trivial_rvalstruct& operator=(trivial_rvalstruct&&) = default; }; - static_assert(std::is_trivial<trivial_rvalstruct>::value, ""); + static_assert(std::is_trivially_default_constructible<trivial_rvalstruct>::value, ""); + static_assert(std::is_trivially_copyable<trivial_rvalstruct>::value, ""); trivial_rvalstruct a[1], b[1]; std::move_backward(a, a + 1, b + 1); diff --git a/libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc index 33f2633dfdd7..37a47e10b10b 100644 --- a/libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc +++ b/libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc @@ -41,7 +41,7 @@ struct X } }; -static_assert(!std::is_trivial_v<X>); +static_assert(!std::is_trivially_default_constructible_v<X>); template<template<typename, template<typename> typename> typename container, template<typename> typename wrapper, diff --git a/libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc index 2907e3bc5b31..85afbe3ea731 100644 --- a/libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc +++ b/libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc @@ -41,7 +41,7 @@ struct X } }; -static_assert(!std::is_trivial_v<X>); +static_assert(!std::is_trivially_default_constructible_v<X>); template<template<typename, template<typename> typename> typename container, template<typename> typename wrapper,