aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2022-01-31 21:12:53 +0000
committerJonathan Wakely <jwakely@redhat.com>2022-02-01 21:56:16 +0000
commitec09a5335f0ade7071f6157dfd97dbb3de3e4f97 (patch)
treecca20f16242dda1452a0a0d179a859b097ecc767 /libcpp
parent90263a48303a5ae552ea04c68ed7fa5da49b1876 (diff)
downloadgcc-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 'libcpp')
0 files changed, 0 insertions, 0 deletions