diff options
author | halyavin <halyavin@yandex-team.com> | 2023-09-26 11:14:38 +0300 |
---|---|---|
committer | halyavin <halyavin@yandex-team.com> | 2023-09-26 11:42:52 +0300 |
commit | 7fcf8b470c7f4b97acf6f2833afa770c1372f231 (patch) | |
tree | c7583ae7054d92eb5788c03760b6b9c50f7cc6c6 /contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp | |
parent | 4c226ec97b09cd6fc38f8a0bbe57f52d384abe3f (diff) | |
download | ydb-7fcf8b470c7f4b97acf6f2833afa770c1372f231.tar.gz |
Update libc++ to 9b03c08e (6 Mar 2022).
Notable changes:
* don't warn that coroutines are not supported when using experimental/coroutine
* add _LIBCPP_HIDE_FROM_ABI to __quoted_proxy constructors
* ADL-proof calls of __quoted
* fix ctype facet `is` method for Windows
* change return type of bit_width to int (LWG3656)
* make private __wrap_iter constructors explicit
* fix delayed initialization of `__fill_` in basic_ios
* ranges::iter_move cleanup
* ADL-proof __synth_three_way
* reject random number generators with signed types
* use C++ overloads from math.h on AIX
* add explicit to some internal constructors
* replace _LIBCPP_HAS_NO_STRONG_ENUMS with C++ version check
* use `inline constexpr bool` instead of `constexpr bool` for helpers in ranges
* reject uniform_int_distribution<bool>, uniform_int_distribution<char> and all user types
* allow std::mergeable and std::sortable even with incomplete ranges
* fix double close bug in std::filesystem::remove_all
* remove recursion in basic_string::insert because it interferes with constexpr
* fix error checking of wctob_l calls
* pack _Flags class on AIX
* fix integer type in __estimate_column_width exposed by AIX
* qualify all std::move calls with std
* make chrono includes granular
* set std::numeric_limits::tinyness_before to true on ARM
* add ranges::in_found_result and ranges::min_max_result
Diffstat (limited to 'contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp')
-rw-r--r-- | contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp b/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp index 9e0abc83b1..82d321942a 100644 --- a/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp +++ b/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp @@ -1420,12 +1420,14 @@ uintmax_t remove_all_impl(int parent_directory, const path& p, error_code& ec) { if (fd != -1) { // If that worked, iterate over the contents of the directory and // remove everything in it, recursively. - scope_exit close_fd([=] { ::close(fd); }); DIR* stream = ::fdopendir(fd); if (stream == nullptr) { + ::close(fd); ec = detail::capture_errno(); return 0; } + // Note: `::closedir` will also close the associated file descriptor, so + // there should be no call to `close(fd)`. scope_exit close_stream([=] { ::closedir(stream); }); uintmax_t count = 0; |