mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-15 23:31:37 +00:00
Fix windows' implementation of status when a file doesn't exist.
The unix one was returning no_such_file_or_directory, but the windows one was return success. Update the one one caller that was depending on the old behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187463 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
605b3427a9
commit
9ce8b2818d
@ -399,8 +399,15 @@ error_code remove(const Twine &path, bool &existed) {
|
||||
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))
|
||||
@ -611,11 +618,9 @@ handle_status_error:
|
||||
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) {
|
||||
|
@ -240,6 +240,10 @@ TEST_F(FileSystemTest, TempFiles) {
|
||||
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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user