aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2022-06-28 09:26:12 +0100
committerJonathan Wakely <jwakely@redhat.com>2022-06-28 12:08:35 +0100
commit835b19936bf30d693783bfa39145a4ce243bbd7c (patch)
treec3fd8c98d61c49c4068e9ca4a8d64dbffba6c801
parent020b7d98589bbc928b5a66b1ed56b42af8791355 (diff)
downloadgcc-835b19936bf30d693783bfa39145a4ce243bbd7c.zip
gcc-835b19936bf30d693783bfa39145a4ce243bbd7c.tar.gz
gcc-835b19936bf30d693783bfa39145a4ce243bbd7c.tar.bz2
libstdc++: Do not optimize away storing pathname if it's needed
libstdc++-v3/ChangeLog: * 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.
-rw-r--r--libstdc++-v3/src/c++17/fs_dir.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/libstdc++-v3/src/c++17/fs_dir.cc b/libstdc++-v3/src/c++17/fs_dir.cc
index 25b33ba..025317b 100644
--- a/libstdc++-v3/src/c++17/fs_dir.cc
+++ b/libstdc++-v3/src/c++17/fs_dir.cc
@@ -48,7 +48,7 @@ struct fs::_Dir : _Dir_base
[[maybe_unused]] bool filename_only, error_code& ec)
: _Dir_base(fdcwd(), p.c_str(), skip_permission_denied, nofollow, ec)
{
-#if _GLIBCXX_HAVE_DIRFD
+#if _GLIBCXX_HAVE_DIRFD && _GLIBCXX_HAVE_OPENAT && _GLIBCXX_HAVE_UNLINKAT
if (filename_only)
return; // Do not store path p when we aren't going to use it.
#endif