]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Fix error handling in filesystem::equivalent [PR113250]
authorKen Matsui <kmatsui@gcc.gnu.org>
Thu, 11 Jan 2024 06:08:07 +0000 (22:08 -0800)
committerKen Matsui <kmatsui@gcc.gnu.org>
Thu, 11 Jan 2024 11:43:35 +0000 (03:43 -0800)
commitda19967df3ad5d123888ef24b4fd84be047df226
tree7ee1da6b4433a50b6c1a77cc69004c9b2474a4a5
parent0d9f8299316eb20fa5d00b92aecb4967f9b06846
libstdc++: Fix error handling in filesystem::equivalent [PR113250]

This patch made std::filesystem::equivalent correctly throw an exception
when either path does not exist as per [fs.op.equivalent]/4.

PR libstdc++/113250

libstdc++-v3/ChangeLog:

* src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
* src/filesystem/ops.cc (fs::equivalent): Likewise.
* testsuite/27_io/filesystem/operations/equivalent.cc: Handle
error codes.
* testsuite/experimental/filesystem/operations/equivalent.cc:
Likewise.

Signed-off-by: Ken Matsui <kmatsui@gcc.gnu.org>
Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
(cherry picked from commit df147e2ee7199d33d66959c6509ce9c21072077f)
libstdc++-v3/src/c++17/fs_ops.cc
libstdc++-v3/src/filesystem/ops.cc
libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc
libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc