* assert that the return value is one of the documented values on msdn.
* on FILE_TYPE_UNKNOWN, check GetLastError.
Unfortunately I can't think of a way to get a FILE_TYPE_UNKNOWN on a test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186595
91177308-0d34-0410-b5e6-
96231b3b80d8
switch (::GetFileType(FileHandle)) {
default:
switch (::GetFileType(FileHandle)) {
default:
- case FILE_TYPE_UNKNOWN:
+ llvm_unreachable("Don't know anything about this file type");
+ case FILE_TYPE_UNKNOWN: {
+ DWORD Err = ::GetLastError();
+ if (Err != NO_ERROR)
+ return windows_error(Err);
+ Result = file_status(file_type::type_unknown);
+ return error_code::success();
+ }
case FILE_TYPE_DISK:
break;
case FILE_TYPE_CHAR:
case FILE_TYPE_DISK:
break;
case FILE_TYPE_CHAR: