1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00

Windows/Path.inc: Introduce file_type::character_file and file_type::fifo_file in sys::fs::getStatus(HANDLE).

It fixes llvm/test/Other/close-stderr.ll on msys.

FIXME: Provide unittests.
llvm-svn: 186588
This commit is contained in:
NAKAMURA Takumi 2013-07-18 17:00:54 +00:00
parent c1af8a0511
commit c3862f9446
2 changed files with 13 additions and 3 deletions

View File

@ -579,6 +579,19 @@ static error_code getStatus(HANDLE FileHandle, file_status &Result) {
if (FileHandle == INVALID_HANDLE_VALUE)
goto handle_status_error;
switch (::GetFileType(FileHandle)) {
default:
case FILE_TYPE_UNKNOWN:
case FILE_TYPE_DISK:
break;
case FILE_TYPE_CHAR:
Result = file_status(file_type::character_file);
return error_code::success();
case FILE_TYPE_PIPE:
Result = file_status(file_type::fifo_file);
return error_code::success();
}
BY_HANDLE_FILE_INFORMATION Info;
if (!::GetFileInformationByHandle(FileHandle, &Info))
goto handle_status_error;

View File

@ -9,9 +9,6 @@
; XFAIL: vg_leak
; REQUIRES: shell
; FIXME: sys::fs::status() doesn't work on pipes, since r186560.
; XFAIL: mingw32
; opt will fail to open /dev/null on native win32.
; XFAIL: win32