[llvm] r234737 - Fix SupportsSeeking detection on windows.
Rafael Espindola
rafael.espindola at gmail.com
Mon Apr 13 04:09:48 PDT 2015
Author: rafael
Date: Mon Apr 13 06:09:48 2015
New Revision: 234737
URL: http://llvm.org/viewvc/llvm-project?rev=234737&view=rev
Log:
Fix SupportsSeeking detection on windows.
Will be tested by existing tests once used (soon).
Modified:
llvm/trunk/lib/Support/raw_ostream.cpp
Modified: llvm/trunk/lib/Support/raw_ostream.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/raw_ostream.cpp?rev=234737&r1=234736&r2=234737&view=diff
==============================================================================
--- llvm/trunk/lib/Support/raw_ostream.cpp (original)
+++ llvm/trunk/lib/Support/raw_ostream.cpp Mon Apr 13 06:09:48 2015
@@ -525,7 +525,14 @@ raw_fd_ostream::raw_fd_ostream(int fd, b
// Get the starting position.
off_t loc = ::lseek(FD, 0, SEEK_CUR);
+#ifdef LLVM_ON_WIN32
+ // MSVCRT's _lseek(SEEK_CUR) doesn't return -1 for pipes.
+ sys::fs::file_status Status;
+ std::error_code EC = status(FD, Status);
+ SupportsSeeking = !EC && Status.type() == sys::fs::file_type::regular_file;
+#else
SupportsSeeking = loc != (off_t)-1;
+#endif
if (!SupportsSeeking)
pos = 0;
else
More information about the llvm-commits
mailing list