[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