PR libstdc++/88881 fix filesystem::symlink_status for Windows
authorJonathan Wakely <jwakely@redhat.com>
Wed, 29 May 2019 22:00:53 +0000 (23:00 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 29 May 2019 22:00:53 +0000 (23:00 +0100)
commit3cb929a32af3986ad95ca511ea84d0863c29ce57
tree3aab7c7b08315be8684c214abba7437dce9fb60f
parente5ccb10ad04e5cc1c44ea4d50a501840927ad70e
PR libstdc++/88881 fix filesystem::symlink_status for Windows

The fix for PR 88881 only added a workaround to filesystem::status, but
filesystem::symlink_status is also affected by the _wstat bug and needs
the same workaround.

The recent change to optimize path::parent_path() means that the
workaround can be simplified to just use parent_path().

PR libstdc++/88881
* src/c++17/fs_ops.cc [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
(status(const path&, error_code&)): Use parent_path() to remove
trailing slash.
(symlink_status(const path&, error_code&)): Duplicate workaround for
bug in _wstat for paths with trailing slash.
* testsuite/27_io/filesystem/operations/remove_all.cc: Check path
with trailing slash.
* testsuite/27_io/filesystem/operations/status.cc: Likewise.
* testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.

From-SVN: r271755
libstdc++-v3/ChangeLog
libstdc++-v3/src/c++17/fs_ops.cc
libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc
libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc
libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc