aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2016-10-26 12:29:36 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2016-10-26 12:29:36 +0100
commit9dbe100a4157843d12b192e4aae504b43af4774b (patch)
treea8f58a83e6f36909a2b5fe605e719be8acf47939 /libstdc++-v3
parentd955ae42ccf81d040ca64a2a43916f640f6f46ee (diff)
downloadgcc-9dbe100a4157843d12b192e4aae504b43af4774b.zip
gcc-9dbe100a4157843d12b192e4aae504b43af4774b.tar.gz
gcc-9dbe100a4157843d12b192e4aae504b43af4774b.tar.bz2
PR78111 fix fallback code for filesystem::canonical
PR libstdc++/78111 * src/filesystem/ops.cc (canonical): Set error for non-existent path. From-SVN: r241549
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/src/filesystem/ops.cc6
2 files changed, 10 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 8287f71..7d02cf4 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2016-10-26 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/78111
+ * src/filesystem/ops.cc (canonical): Set error for non-existent path.
+
2016-10-26 Uros Bizjak <ubizjak@gmail.com>
* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Include <limits.h>
diff --git a/libstdc++-v3/src/filesystem/ops.cc b/libstdc++-v3/src/filesystem/ops.cc
index 32c9c5e..9abcee0 100644
--- a/libstdc++-v3/src/filesystem/ops.cc
+++ b/libstdc++-v3/src/filesystem/ops.cc
@@ -142,7 +142,11 @@ fs::canonical(const path& p, const path& base, error_code& ec)
#endif
if (!exists(pa, ec))
- return result;
+ {
+ if (!ec)
+ ec = make_error_code(std::errc::no_such_file_or_directory);
+ return result;
+ }
// else: we know there are (currently) no unresolvable symlink loops
result = pa.root_path();