From 07dd185755a791ab19e6a63274cf2cb69f087a6c Mon Sep 17 00:00:00 2001 From: Jonathan Wakely <jwakely@redhat.com> Date: Thu, 6 May 2021 15:28:55 +0100 Subject: [PATCH] libstdc++: Improve static assert messages The message used for static assertions should be phrased so that it's unambiguous whether the condition should be true or false. The message should definitely not state the negative condition. libstdc++-v3/ChangeLog: * include/bits/stl_algobase.h (__copy_move, __copy_move_backward): Improve static_assert messages. * testsuite/25_algorithms/copy/58982.cc: Adjust expected output. * testsuite/25_algorithms/copy_n/58982.cc: Likewise. --- libstdc++-v3/include/bits/stl_algobase.h | 4 ++-- libstdc++-v3/testsuite/25_algorithms/copy/58982.cc | 2 +- libstdc++-v3/testsuite/25_algorithms/copy_n/58982.cc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libstdc++-v3/include/bits/stl_algobase.h b/libstdc++-v3/include/bits/stl_algobase.h index a76b00bda756..d001b5f9dae6 100644 --- a/libstdc++-v3/include/bits/stl_algobase.h +++ b/libstdc++-v3/include/bits/stl_algobase.h @@ -424,7 +424,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION is_move_assignable<_Tp>, is_copy_assignable<_Tp>>; // trivial types can have deleted assignment - static_assert( __assignable::type::value, "type is not assignable" ); + static_assert( __assignable::type::value, "type must be assignable" ); #endif const ptrdiff_t _Num = __last - __first; if (_Num) @@ -735,7 +735,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER is_move_assignable<_Tp>, is_copy_assignable<_Tp>>; // trivial types can have deleted assignment - static_assert( __assignable::type::value, "type is not assignable" ); + static_assert( __assignable::type::value, "type must be assignable" ); #endif const ptrdiff_t _Num = __last - __first; if (_Num) diff --git a/libstdc++-v3/testsuite/25_algorithms/copy/58982.cc b/libstdc++-v3/testsuite/25_algorithms/copy/58982.cc index f47bf9f3e458..151a7e25ba23 100644 --- a/libstdc++-v3/testsuite/25_algorithms/copy/58982.cc +++ b/libstdc++-v3/testsuite/25_algorithms/copy/58982.cc @@ -38,5 +38,5 @@ test01(T* result) T t[1]; std::copy(t, t+1, result); // { dg-error "here|deleted" } } -// { dg-prune-output "not assignable" } +// { dg-prune-output "type must be assignable" } // { dg-prune-output "use of deleted" } diff --git a/libstdc++-v3/testsuite/25_algorithms/copy_n/58982.cc b/libstdc++-v3/testsuite/25_algorithms/copy_n/58982.cc index 133a2e2ed8fa..5ddc8ccee5e5 100644 --- a/libstdc++-v3/testsuite/25_algorithms/copy_n/58982.cc +++ b/libstdc++-v3/testsuite/25_algorithms/copy_n/58982.cc @@ -38,5 +38,5 @@ test01(T* result) T t[1]; std::copy_n(t, 1, result); // { dg-error "here|deleted" } } -// { dg-prune-output "not assignable" } +// { dg-prune-output "type must be assignable" } // { dg-prune-output "use of deleted" } -- GitLab