Files
gcc/libstdc++-v3/testsuite
Tomasz Kamiński f59cb28d53 libstdc++: Make testsuite_iterators constexpr and expand inplace_vector tests [PR119137]
All functions in testsuite_iterators.h are now marked constexpr,
targeting the earliest possible standard. Most functions use C++14 due
to multi-statement bodies, with exceptions:

* BoundsContainer and some constructors are C++11 compatible.
* OutputContainer is C++20 due to operator new/delete usage.

Before C++23, each constexpr templated function requires a constexpr
-suitable instantiation. Functions delegating to _GLIBCXX14_CONSTEXPR
must also be _GLIBCXX14_CONSTEXPR; e.g., forward_iterator_wrapper's
constructor calling input_iterator_wrapper's constructor, or
operator-> calling operator*.

For classes defined C++20 or later (e.g., test_range), constexpr is
applied unconditionally.

	PR libstdc++/119137

libstdc++-v3/ChangeLog:

	* testsuite/23_containers/inplace_vector/cons/from_range.cc: Run
	iterators and range test at compile-time.
	* testsuite/23_containers/inplace_vector/modifiers/assign.cc:
	Likewise.
	* testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc:
	Likewise.
	* testsuite/util/testsuite_iterators.h (__gnu_test::BoundsContainer)
	(__gnu_test::OutputContainer, __gnu_test::WritableObject)
	(__gnu_test::output_iterator_wrapper, __gnu_test::input_iterator_wrapper)
	(__gnu_test::forward_iterator_wrapper)
	(__gnu_test::bidirectional_iterator_wrapper)
	(__gnu_test::random_access_iterator_wrapper)
	(__gnu_test::test_container): Add appropriate _GLIBCXXNN_CONSTEXPR
	macros to member functions.
	(__gnu_test::contiguous_iterator_wrapper)
	(__gnu_test::input_iterator_wrapper_rval)
	(__gnu_test::test_range, __gnu_test::test_range_nocopy)
	(__gnu_test::test_sized_range_sized_sent)
	(__gnu_test::test_sized_range): Add constexpr specifier to member
	functions.
2025-07-22 16:13:12 +02:00
..