Sorry for the repeated emails. I did more digging and we were indeed handling DT_UNKNOWN incorrectly. I've fixed that in r337768.
/Eric On Mon, Jul 23, 2018 at 4:43 PM Eric Fiselier <e...@efcs.ca> wrote: > Hi Jonas, > > I believe I fixed the issue, and I've recommitted the change as r337765. > Please let me know if you still see the failures. I think there might be a > lingering issues with how we handle DT_UNKNOWN. > > /Eric > > On Mon, Jul 23, 2018 at 3:53 PM Eric Fiselier <e...@efcs.ca> wrote: > >> I think I've found the bug, but I need to spend some more time on it. >> >> I've reverted in for now in r337749. >> >> /Eric >> >> On Mon, Jul 23, 2018 at 1:25 PM Eric Fiselier <e...@efcs.ca> wrote: >> >>> Thanks. I'm looking into this. >>> >>> /Eric >>> >>> On Mon, Jul 23, 2018 at 12:58 PM Jonas Hahnfeld <hah...@hahnjo.de> >>> wrote: >>> >>>> Hi Eric, >>>> >>>> this breaks >>>> test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp >>>> >>>> for me: >>>> In access_denied_on_recursion_test_case():176 Assertion TEST_CHECK(ec) >>>> failed. >>>> in file: >>>> >>>> <<<LLVM>>>/projects/libcxx/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp >>>> >>>> In access_denied_on_recursion_test_case():177 Assertion TEST_CHECK(it >>>> == >>>> endIt) failed. >>>> in file: >>>> >>>> <<<LLVM>>>/projects/libcxx/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp >>>> >>>> In access_denied_on_recursion_test_case():189 Assertion >>>> TEST_REQUIRE_THROW(filesystem_error,++it) failed. >>>> in file: >>>> >>>> <<<LLVM>>>/projects/libcxx/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp >>>> >>>> In test_PR35078():285 Assertion TEST_REQUIRE(it != endIt) failed. >>>> in file: >>>> >>>> <<<LLVM>>>/projects/libcxx/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp >>>> >>>> In test_PR35078_with_symlink():384 Assertion TEST_CHECK(ec) failed. >>>> in file: >>>> >>>> <<<LLVM>>>/projects/libcxx/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp >>>> >>>> In test_PR35078_with_symlink():385 Assertion TEST_CHECK(ec == >>>> eacess_ec) >>>> failed. >>>> in file: >>>> >>>> <<<LLVM>>>/projects/libcxx/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp >>>> >>>> In test_PR35078_with_symlink_file():461 Assertion TEST_CHECK(*it == >>>> symFile) failed. >>>> in file: >>>> >>>> <<<LLVM>>>/projects/libcxx/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp >>>> >>>> In test_PR35078_with_symlink_file():467 Assertion TEST_REQUIRE(it != >>>> EndIt) failed. >>>> in file: >>>> >>>> <<<LLVM>>>/projects/libcxx/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp >>>> >>>> Summary for testsuite recursive_directory_iterator_increment_tests: >>>> 5 of 9 test cases passed. >>>> 156 of 164 assertions passed. >>>> 0 unsupported test cases. >>>> >>>> Do you have an idea? I'm on a local XFS mount, the sources are on NFS... >>>> >>>> Thanks, >>>> Jonas >>>> >>>> On 2018-07-23 06:55, Eric Fiselier via cfe-commits wrote: >>>> > Author: ericwf >>>> > Date: Sun Jul 22 21:55:57 2018 >>>> > New Revision: 337669 >>>> > >>>> > URL: http://llvm.org/viewvc/llvm-project?rev=337669&view=rev >>>> > Log: >>>> > Use possibly cached directory entry values when performing recursive >>>> > directory iteration. >>>> > >>>> > Modified: >>>> > libcxx/trunk/src/experimental/filesystem/directory_iterator.cpp >>>> > >>>> > Modified: >>>> > libcxx/trunk/src/experimental/filesystem/directory_iterator.cpp >>>> > URL: >>>> > >>>> http://llvm.org/viewvc/llvm-project/libcxx/trunk/src/experimental/filesystem/directory_iterator.cpp?rev=337669&r1=337668&r2=337669&view=diff >>>> > >>>> ============================================================================== >>>> > --- libcxx/trunk/src/experimental/filesystem/directory_iterator.cpp >>>> > (original) >>>> > +++ libcxx/trunk/src/experimental/filesystem/directory_iterator.cpp >>>> > Sun Jul 22 21:55:57 2018 >>>> > @@ -359,13 +359,13 @@ bool recursive_directory_iterator::__try >>>> > bool skip_rec = false; >>>> > std::error_code m_ec; >>>> > if (!rec_sym) { >>>> > - file_status st = curr_it.__entry_.symlink_status(m_ec); >>>> > + file_status st(curr_it.__entry_.__get_sym_ft(&m_ec)); >>>> > if (m_ec && status_known(st)) >>>> > m_ec.clear(); >>>> > if (m_ec || is_symlink(st) || !is_directory(st)) >>>> > skip_rec = true; >>>> > } else { >>>> > - file_status st = curr_it.__entry_.status(m_ec); >>>> > + file_status st(curr_it.__entry_.__get_ft(&m_ec)); >>>> > if (m_ec && status_known(st)) >>>> > m_ec.clear(); >>>> > if (m_ec || !is_directory(st)) >>>> > >>>> > >>>> > _______________________________________________ >>>> > cfe-commits mailing list >>>> > cfe-commits@lists.llvm.org >>>> > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >>>> >>>
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits