In llvm::MemoryBuffer::getFile() remove an unnecessary stat call check.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 1 Mar 2013 22:48:51 +0000 (22:48 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 1 Mar 2013 22:48:51 +0000 (22:48 +0000)
The sys::fs::is_directory() check is unnecessary because, if the filename is
a directory, the function will fail anyway with the same error code returned.
Remove the check to avoid an unnecessary stat call.

Someone needs to review on windows and see if the check is necessary there or not.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176386 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/MemoryBuffer.cpp

index 691b6f50690e7e51b60b4f65e7eba127c9090790..4c558b37cfa14a0960497a2316f6cd807652c73b 100644 (file)
@@ -244,6 +244,8 @@ error_code MemoryBuffer::getFile(const char *Filename,
                                  OwningPtr<MemoryBuffer> &result,
                                  int64_t FileSize,
                                  bool RequiresNullTerminator) {
+  // FIXME: Review if this check is unnecessary on windows as well.
+#ifdef LLVM_ON_WIN32
   // First check that the "file" is not a directory
   bool is_dir = false;
   error_code err = sys::fs::is_directory(Filename, is_dir);
@@ -251,6 +253,7 @@ error_code MemoryBuffer::getFile(const char *Filename,
     return err;
   if (is_dir)
     return make_error_code(errc::is_a_directory);
+#endif
 
   int OpenFlags = O_RDONLY;
 #ifdef O_BINARY