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 <jwak...@redhat.com>
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);
 }
 

Reply via email to