diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2022-01-31 21:12:53 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2022-02-01 21:56:16 +0000 |
commit | ec09a5335f0ade7071f6157dfd97dbb3de3e4f97 (patch) | |
tree | cca20f16242dda1452a0a0d179a859b097ecc767 /gcc | |
parent | 90263a48303a5ae552ea04c68ed7fa5da49b1876 (diff) | |
download | gcc-ec09a5335f0ade7071f6157dfd97dbb3de3e4f97.zip gcc-ec09a5335f0ade7071f6157dfd97dbb3de3e4f97.tar.gz gcc-ec09a5335f0ade7071f6157dfd97dbb3de3e4f97.tar.bz2 |
libstdc++: Reset filesystem::recursive_directory_iterator on error
The standard requires directory iterators to become equal to the end
iterator value if they report an error. Some members functions of
filesystem::recursive_directory_iterator fail to do that.
libstdc++-v3/ChangeLog:
* src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
Reset state to past-the-end iterator on error.
(fs::recursive_directory_iterator::pop(error_code&)): Likewise.
(fs::recursive_directory_iterator::pop()): Check _M_dirs before
it might get reset.
* src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
for the TS implementation.
* testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
* testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
Diffstat (limited to 'gcc')
0 files changed, 0 insertions, 0 deletions