On Windows stat("foo/bar/../.") will resolve to "foo" even if that is a
non-directory and "foo/bar" does not exist. This is the expected
behaviour and consistent with boost::filesystem, so don't try to correct
it. The only unwanted behaviour is that stat("baz/") fails due to a
mingw bug (fixed in mingw-w64 v6.0.0) so add a workaround.
PR libstdc++/88881
* src/c++17/fs_ops.cc (canonical(const path&, error_code&))
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Normalize path, to match behaviour
of filesystem::exists.
(create_directories(const path&, error_code&)): Add assertions.
(status(const path&, error_code&)) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]:
Add workaround for bug in _wstat for paths with trailing slash.
* testsuite/27_io/filesystem/operations/create_directories.cc: Adjust
for expected behaviour on mingw.
* testsuite/experimental/filesystem/operations/create_directories.cc:
Likewise.
* testsuite/27_io/filesystem/operations/temp_directory_path.cc: Use
"TMP" instead of "TMPDIR" and clean environment before each test. Do
not test permissions on mingw targets.
From-SVN: r268034
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| 17_intro | Loading commit data... | |
| 18_support | Loading commit data... | |
| 19_diagnostics | Loading commit data... | |
| 20_util | Loading commit data... | |
| 21_strings | Loading commit data... | |
| 22_locale | Loading commit data... | |
| 23_containers | Loading commit data... | |
| 24_iterators | Loading commit data... | |
| 25_algorithms | Loading commit data... | |
| 26_numerics | Loading commit data... | |
| 27_io | Loading commit data... | |
| 28_regex | Loading commit data... | |
| 29_atomics | Loading commit data... | |
| 30_threads | Loading commit data... | |
| abi | Loading commit data... | |
| backward | Loading commit data... | |
| config | Loading commit data... | |
| data | Loading commit data... | |
| decimal | Loading commit data... | |
| experimental | Loading commit data... | |
| ext | Loading commit data... | |
| lib | Loading commit data... | |
| libstdc++-abi | Loading commit data... | |
| libstdc++-dg | Loading commit data... | |
| libstdc++-prettyprinters | Loading commit data... | |
| libstdc++-xmethods | Loading commit data... | |
| performance | Loading commit data... | |
| special_functions | Loading commit data... | |
| tr1 | Loading commit data... | |
| tr2 | Loading commit data... | |
| util | Loading commit data... | |
| Makefile.am | Loading commit data... | |
| Makefile.in | Loading commit data... |