SmallVector<wchar_t, 128> path_utf16;
file_status st;
- if (error_code ec = status(path, st))
- return ec;
+ error_code EC = status(path, st);
+ if (EC) {
+ if (EC == windows_error::file_not_found ||
+ EC == windows_error::path_not_found) {
+ existed = false;
+ return error_code::success();
+ }
+ return EC;
+ }
if (error_code ec = UTF8ToUTF16(path.toStringRef(path_storage),
path_utf16))
Result = file_status(file_type::file_not_found);
else if (EC == windows_error::sharing_violation)
Result = file_status(file_type::type_unknown);
- else {
+ else
Result = file_status(file_type::status_error);
- return EC;
- }
- return error_code::success();
+ return EC;
}
error_code status(const Twine &path, file_status &result) {
ASSERT_NO_ERROR(fs::remove(Twine(TempPath2), TempFileExists));
EXPECT_TRUE(TempFileExists);
+ error_code EC = fs::status(TempPath2.c_str(), B);
+ EXPECT_EQ(EC, errc::no_such_file_or_directory);
+ EXPECT_EQ(B.type(), fs::file_type::file_not_found);
+
// Make sure Temp2 doesn't exist.
ASSERT_NO_ERROR(fs::exists(Twine(TempPath2), TempFileExists));
EXPECT_FALSE(TempFileExists);