]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Avoid redundant calls to filesystem::status_known
authorJonathan Wakely <jwakely@redhat.com>
Fri, 5 Jan 2018 22:47:46 +0000 (22:47 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 5 Jan 2018 22:47:46 +0000 (22:47 +0000)
Backport from mainline
2018-01-04  Jonathan Wakely  <jwakely@redhat.com>

* include/experimental/fs_ops.h (exists(const path&, error_code&))):
Only check status_known once.

From-SVN: r256295

libstdc++-v3/ChangeLog
libstdc++-v3/include/experimental/bits/fs_ops.h

index 67e67763cd1ca3f8a3b91eec139859a7daf93ad0..64b559902486baad823f9b4f168f0fb5759b907b 100644 (file)
@@ -1,5 +1,11 @@
 2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
 
+       Backport from mainline
+       2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/experimental/fs_ops.h (exists(const path&, error_code&))):
+       Only check status_known once.
+
        Backport from mainline
        2017-10-25  Jonathan Wakely  <jwakely@redhat.com>
 
index 62a9826d6e5ebe4923e730b71f2db02999d802ca..7b30a30138e19971511e8b4ada9776895820f605 100644 (file)
@@ -131,8 +131,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   {
     auto __s = status(__p, __ec);
     if (status_known(__s))
-      __ec.clear();
-    return exists(__s);
+      {
+       __ec.clear();
+       return __s.type() != file_type::not_found;
+      }
+    return false;
   }
 
   uintmax_t file_size(const path& __p);