aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/config/abi/pre/gnu.ver10
-rw-r--r--libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc9
3 files changed, 20 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index e2aa396..655c3d0 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,10 @@
2019-04-05 Jonathan Wakely <jwakely@redhat.com>
+ PR libstdc++/89986
+ * config/abi/pre/gnu.ver: Add missing exports.
+ * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Test
+ increment member.
+
* config/abi/pre/gnu.ver: Export new symbols.
* include/bits/fs_dir.h (recursive_directory_iterator::options())
(recursive_directory_iterator::recursion_pending())
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index 019b581..e8cf6f0 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 5288bd2..492727c 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);
}