Tested x86_64-linux. Pushed to trunk. -- >8 --
This copies the better tests from gcc-12 to trunk. libstdc++-v3/ChangeLog: PR libstdc++/106201 * testsuite/27_io/filesystem/iterators/106201.cc: Improve test. * testsuite/experimental/filesystem/iterators/106201.cc: New test. --- .../testsuite/27_io/filesystem/iterators/106201.cc | 8 +++++--- .../experimental/filesystem/iterators/106201.cc | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc diff --git a/libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc b/libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc index 4a64e675816..c5fefd9ac3f 100644 --- a/libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc +++ b/libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc @@ -5,8 +5,10 @@ // PR libstdc++/106201 constraint recursion in path(Source const&) constructor. #include <filesystem> -#include <ranges> -using I = std::counted_iterator<std::filesystem::directory_iterator>; +#include <iterator> +#include <concepts> +namespace fs = std::filesystem; +using I = std::counted_iterator<fs::directory_iterator>; static_assert( std::swappable<I> ); -using R = std::counted_iterator<std::filesystem::recursive_directory_iterator>; +using R = std::counted_iterator<fs::recursive_directory_iterator>; static_assert( std::swappable<R> ); diff --git a/libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc b/libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc new file mode 100644 index 00000000000..017b72ef5f6 --- /dev/null +++ b/libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc @@ -0,0 +1,14 @@ +// { dg-options "-std=gnu++20" } +// { dg-do compile { target c++20 } } +// { dg-require-filesystem-ts "" } + +// PR libstdc++/106201 constraint recursion in path(Source const&) constructor. + +#include <experimental/filesystem> +#include <iterator> +#include <concepts> +namespace fs = std::experimental::filesystem; +using I = std::counted_iterator<fs::directory_iterator>; +static_assert( std::swappable<I> ); +using R = std::counted_iterator<fs::recursive_directory_iterator>; +static_assert( std::swappable<R> ); -- 2.38.1