aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/std/ranges
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@redhat.com>2025-03-14 16:10:35 -0400
committerPatrick Palka <ppalka@redhat.com>2025-03-14 16:10:35 -0400
commit2f03a8d7be9775312c50abdc99109aaf8641bda3 (patch)
tree18dd515422bde8d614e2d7b7f2f0cc66bff61317 /libstdc++-v3/testsuite/std/ranges
parentb2de4b0926bddbb97b991dd95592c714ee519e1e (diff)
downloadgcc-2f03a8d7be9775312c50abdc99109aaf8641bda3.zip
gcc-2f03a8d7be9775312c50abdc99109aaf8641bda3.tar.gz
gcc-2f03a8d7be9775312c50abdc99109aaf8641bda3.tar.bz2
libstdc++: Missing 'constexpr' in vector's from_range ctor [PR119282]
A missing 'constexpr' in the non-forward (and non-sized) branch of our recently implemented vector from_range ctor was causing this valid example to be rejected with a cryptic error. PR libstdc++/119282 libstdc++-v3/ChangeLog: * include/bits/stl_vector.h (vector::vector(from_range_t)): Add missing 'constexpr' to local class _Clear. * testsuite/std/ranges/conv/1.cc (test_pr119282): New test. Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
Diffstat (limited to 'libstdc++-v3/testsuite/std/ranges')
-rw-r--r--libstdc++-v3/testsuite/std/ranges/conv/1.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/std/ranges/conv/1.cc b/libstdc++-v3/testsuite/std/ranges/conv/1.cc
index 09fd515..231cb9d 100644
--- a/libstdc++-v3/testsuite/std/ranges/conv/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/conv/1.cc
@@ -466,6 +466,18 @@ test_composition()
auto str = adaptor(" ");
}
+constexpr bool
+test_pr119282()
+{
+ // PR libstdc++/119282
+ auto v = std::array{1, 2, 3}
+ | std::views::transform([](auto x) { return std::array{x}; })
+ | std::views::join
+ | std::ranges::to<std::vector>();
+ VERIFY( std::ranges::size(v) == 3 );
+ return true;
+}
+
int main()
{
test_p1206r7_examples();
@@ -480,4 +492,5 @@ int main()
test_constexpr();
test_sfinae();
test_composition();
+ static_assert(test_pr119282());
}