From 001bbe581a54f4b0707f14c74425eae4481ffbf5 Mon Sep 17 00:00:00 2001 From: GCC Administrator Date: Thu, 5 Oct 2023 00:20:16 +0000 Subject: [PATCH] Daily bump. --- gcc/DATESTAMP | 2 +- libstdc++-v3/ChangeLog | 270 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 271 insertions(+), 1 deletion(-) diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 32b8a8b69120..4d6ec8016114 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20231004 +20231005 diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index fa2d9e3c93b2..f47e17531004 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,273 @@ +2023-10-04 Jonathan Wakely + + * testsuite/20_util/integer_comparisons/greater_equal_neg.cc: + Add -O2 to dg-options. + * testsuite/20_util/integer_comparisons/greater_neg.cc: + Likewise. + * testsuite/20_util/integer_comparisons/less_equal_neg.cc: + Likewise. + * testsuite/lib/prune.exp: Prune 'in constexpr expansion'. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2022-02-01 Jonathan Wakely + + * testsuite/27_io/filesystem/iterators/97731.cc: New test. + * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: + Check follow_directory_symlink option. + * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc: + Likewise. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2023-06-06 Jonathan Wakely + + PR libstdc++/108178 + * src/filesystem/ops-common.h (do_copy_file): Check for empty + files by trying to read a character. + * testsuite/27_io/filesystem/operations/copy_file_108178.cc: + New test. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2023-06-06 Jonathan Wakely + + * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set + close-on-exec flag on file descriptors. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2023-03-20 Jonathan Wakely + + * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix + formatting. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2023-02-02 Jonathan Wakely + + * src/filesystem/ops-common.h [AVR] (__unsupported): Always use + errc::function_not_supported instead of errc::not_supported. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2022-06-28 Jonathan Wakely + + * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]: + Always store pathname if we don't have openat or unlinkat, + because the full path is needed to open sub-directories and + remove entries. + +2023-10-04 Alexandre Oliva + + Backported from master: + 2022-06-27 Alexandre Oliva + + * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if + _GLIBCXX_HAVE_OPENAT. + +2023-10-04 Alexandre Oliva + + Backported from master: + 2022-06-24 Alexandre Oliva + + * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for + openat. + * configure, config.h.in: Rebuilt. + * src/filesystem/dir-common.h (openat): Use ::openat if + _GLIBCXX_HAVE_OPENAT. + * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if + _GLIBCXX_HAVE_OPENAT. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2022-02-10 Jonathan Wakely + + * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine + when is not available. + (_GLIBCXX_HAVE_UNLINKAT): Likewise. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2022-02-08 Jonathan Wakely + + * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first + parameter to _Dir_base&&. + * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove. + * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first + parameter to _Dir_base&&. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2022-02-08 Jonathan Wakely + + PR libstdc++/104161 + * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase): + [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member, + instead of checking for errno values indicating a directory. + * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar + logic to non-throwing overload. + (fs::remove_all(const path&, error_code&)): Add comments. + * src/filesystem/ops-common.h: Likewise. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2022-02-04 Jonathan Wakely + + * src/filesystem/dir-common.h (_Dir_base::openat): Change return + type to use portable posix::DIR alias. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2022-02-04 Jonathan Wakely + + PR libstdc++/104161 + * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd + and unlinkat. + * config.h.in: Regenerate. + * configure: Regenerate. + * include/bits/fs_dir.h (recursive_directory_iterator): Declare + remove_all overloads as friends. + (recursive_directory_iterator::__erase): Declare new member + function. + * include/bits/fs_fwd.h (remove, remove_all): Declare. + * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to + constructor. Pass file descriptor argument to base constructor. + (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink) + (_Dir::unlink, _Dir::rmdir): Define new member functions. + (directory_iterator): Pass filename_only argument to _Dir + constructor. + (recursive_directory_iterator::_Dir_stack): Adjust constructor + parameters to take a _Dir rvalue instead of creating one. + (_Dir_stack::orig): Add data member for storing original path. + (_Dir_stack::report_error): Define new member function. + (__directory_iterator_nofollow): Move here from dir-common.h and + fix value to be a power of two. + (__directory_iterator_filename_only): Define new constant. + (recursive_directory_iterator): Construct _Dir object and move + into _M_dirs stack. Pass skip_permission_denied argument to first + advance call. + (recursive_directory_iterator::increment): Use _Dir::open_subdir. + (recursive_directory_iterator::__erase): Define new member + function. + * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove. + (fs::remove_all): Use new recursive_directory_iterator::__erase + member function. + * src/filesystem/dir-common.h (_Dir_base): Add int parameter to + constructor and use openat to implement nofollow semantics. + (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat): + Define new member functions. + (__directory_iterator_nofollow): Move to fs_dir.cc. + * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to + base constructor. + (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member + functions. + (recursive_directory_iterator::_Dir_stack): Adjust constructor + parameters to take a _Dir rvalue instead of creating one. + (recursive_directory_iterator): Check for new nofollow option. + Construct _Dir object and move into _M_dirs stack. Pass + skip_permission_denied argument to first advance call. + (recursive_directory_iterator::increment): Use _Dir::open_subdir. + * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2022-01-25 Jonathan Wakely + + PR libstdc++/104161 + * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for + fdopendir. + * config.h.in: Regenerate. + * configure: Regenerate. + * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor + and pass it to base class constructor. + (directory_iterator): Pass nofollow flag to _Dir constructor. + (fs::recursive_directory_iterator::increment): Likewise. + * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for + directory_iterator constructor. Move error check outside loop. + * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to + constructor and when it's set use ::open with O_NOFOLLOW and + O_DIRECTORY. + * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor + and pass it to base class constructor. + (directory_iterator): Pass nofollow flag to _Dir constructor. + (fs::recursive_directory_iterator::increment): Likewise. + * src/filesystem/ops.cc (remove_all): Use nofollow option for + directory_iterator constructor. Move error check outside loop. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2021-10-02 Jonathan Wakely + + * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name. + * src/filesystem/ops-common.h (__last_system_error): Add + explicit cast to avoid narrowing conversion. + (do_space): Fix type in function name. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2021-10-01 Jonathan Wakely + + PR libstdc++/99327 + * src/filesystem/ops-common.h (__unsupported): New function to + return a suitable error code for missing functionality. + (posix::off_t): New typedef. + (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op + fallback implementations. + (do_copy_file): Replace uses of errc::not_supported. + * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir) + (fs::create_directory, fs::create_directory_symlink) + (fs::create_hard_link, fs::create_symlink, fs::current_path) + (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count) + (fs::last_write_time, fs::permissions, fs::read_symlink): + Replace uses of errc::not_supported. + (fs::resize_file): Qualify off_t. + * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir) + (fs::create_directory, fs::create_directory_symlink) + (fs::create_hard_link, fs::create_symlink, fs::current_path) + (fs::equivalent, do_stat, fs::file_size, fs::last_write_time) + (fs::permissions, fs::read_symlink, fs::system_complete): + Replace uses of errc::not_supported. + (fs::resize_file): Qualify off_t and enable unconditionally. + * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise. + +2023-10-04 Jonathan Wakely + + Backported from master: + 2021-10-01 Jonathan Wakely + + * src/filesystem/ops-common.h (last_error): New helper function. + (filesystem::do_space): Use last_error(). + * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link) + (fs::equivalent, fs::remove, fs::temp_directory_path): Use + last_error(). + * src/filesystem/ops.cc (fs::create_hard_link) + (fs::remove, fs::temp_directory_path): Likewise. + +2023-10-04 Jonathan Wakely + + Revert: + 2023-03-16 Jonathan Wakely + + * src/c++17/fs_ops.cc [AVR] (not_supported): Define as a macro + for function_not_supported. + * src/filesystem/ops-common.h [AVR] (ENOTSUP): Define as a macro + for ENOSYS. + 2023-10-02 Tim Song Backported from master: -- 2.47.2