PR libstdc++/89986
* config/abi/pre/gnu.ver: Add missing exports.
* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Test
increment member.
Tested powerpc64le-linux, committed to trunk.
commit 0043393da0a00cfd04867ec63873ed42d0db23a7
Author: Jonathan Wakely <[email protected]>
Date: Fri Apr 5 14:56:16 2019 +0100
PR libstdc++/89986 export directory_iterator::increment
PR libstdc++/89986
* config/abi/pre/gnu.ver: Add missing exports.
* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Test
increment member.
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver
b/libstdc++-v3/config/abi/pre/gnu.ver
index 019b581df71..e8cf6f0a4a9 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -2200,13 +2200,14 @@ GLIBCXX_3.4.26 {
_ZNSt10filesystem16weakly_canonical*;
_ZNKSt10filesystem18directory_iteratordeEv;
+
_ZNSt10filesystem18directory_iteratorC[12]ERKNS_4pathENS_17directory_optionsEPSt10error_code;
+ _ZNSt10filesystem18directory_iterator9incrementERSt10error_code;
+ _ZNSt10filesystem18directory_iteratorppEv;
_ZNKSt10filesystem28recursive_directory_iterator7optionsEv;
_ZNKSt10filesystem28recursive_directory_iterator5depthEv;
_ZNKSt10filesystem28recursive_directory_iterator17recursion_pendingEv;
_ZNSt10filesystem28recursive_directory_iterator25disable_recursion_pendingEv;
_ZNKSt10filesystem28recursive_directory_iteratordeEv;
-
_ZNSt10filesystem18directory_iteratorC[12]ERKNS_4pathENS_17directory_optionsEPSt10error_code;
- _ZNSt10filesystem18directory_iteratorppEv;
_ZNSt10filesystem28recursive_directory_iterator3popERSt10error_code;
_ZNSt10filesystem28recursive_directory_iterator3popEv;
_ZNSt10filesystem28recursive_directory_iterator9incrementERSt10error_code;
@@ -2216,13 +2217,14 @@ GLIBCXX_3.4.26 {
_ZNSt10filesystem28recursive_directory_iteratorppEv;
_ZNKSt10filesystem7__cxx1118directory_iteratordeEv;
+
_ZNSt10filesystem7__cxx1118directory_iteratorC[12]ERKNS0_4pathENS_17directory_optionsEPSt10error_code;
+ _ZNSt10filesystem7__cxx1118directory_iterator9incrementERSt10error_code;
+ _ZNSt10filesystem7__cxx1118directory_iteratorppEv;
_ZNKSt10filesystem7__cxx1128recursive_directory_iterator7optionsEv;
_ZNKSt10filesystem7__cxx1128recursive_directory_iterator5depthEv;
_ZNKSt10filesystem7__cxx1128recursive_directory_iterator17recursion_pendingEv;
_ZNKSt10filesystem7__cxx1128recursive_directory_iteratordeEv;
_ZNSt10filesystem7__cxx1128recursive_directory_iterator25disable_recursion_pendingEv;
-
_ZNSt10filesystem7__cxx1118directory_iteratorC[12]ERKNS0_4pathENS_17directory_optionsEPSt10error_code;
- _ZNSt10filesystem7__cxx1118directory_iteratorppEv;
_ZNSt10filesystem7__cxx1128recursive_directory_iterator3popERSt10error_code;
_ZNSt10filesystem7__cxx1128recursive_directory_iterator3popEv;
_ZNSt10filesystem7__cxx1128recursive_directory_iterator9incrementERSt10error_code;
diff --git
a/libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
b/libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
index 5288bd297bd..492727c75b2 100644
--- a/libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
+++ b/libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
@@ -100,6 +100,15 @@ test02()
VERIFY( entry1.path() == p/"x" );
VERIFY( iter == end(iter) );
+ // Test post-increment (libstdc++/89986)
+ ec = bad_ec;
+ iter = fs::directory_iterator(p, ec);
+ VERIFY( !ec );
+ VERIFY( iter != end(iter) );
+ iter.increment(ec);
+ VERIFY( !ec );
+ VERIFY( iter == end(iter) );
+
remove_all(p, ec);
}