aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Support/MemoryBuffer.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-07-16 19:44:17 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-07-16 19:44:17 +0000
commitc1b49b56d4132efa2e06deb8f23508d0de4c8800 (patch)
treeac30ab59f60f12465f5b7ffd0823b08a711770e8 /lib/Support/MemoryBuffer.cpp
parent1a9c39e52a2b1ce474dec773e77d12ae4c335a71 (diff)
downloadexternal_llvm-c1b49b56d4132efa2e06deb8f23508d0de4c8800.tar.gz
external_llvm-c1b49b56d4132efa2e06deb8f23508d0de4c8800.tar.bz2
external_llvm-c1b49b56d4132efa2e06deb8f23508d0de4c8800.zip
Add a wrapper for open.
This centralizes the handling of O_BINARY and opens the way for hiding more differences (like how open behaves with directories). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186447 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/MemoryBuffer.cpp')
-rw-r--r--lib/Support/MemoryBuffer.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/lib/Support/MemoryBuffer.cpp b/lib/Support/MemoryBuffer.cpp
index a7553d1c96..be1d9c7874 100644
--- a/lib/Support/MemoryBuffer.cpp
+++ b/lib/Support/MemoryBuffer.cpp
@@ -41,7 +41,6 @@
#define S_ISBLK(x) (0)
#endif
#endif
-#include <fcntl.h>
using namespace llvm;
//===----------------------------------------------------------------------===//
@@ -253,13 +252,10 @@ error_code MemoryBuffer::getFile(const char *Filename,
OwningPtr<MemoryBuffer> &result,
int64_t FileSize,
bool RequiresNullTerminator) {
- int OpenFlags = O_RDONLY;
-#ifdef O_BINARY
- OpenFlags |= O_BINARY; // Open input file in binary mode on win32.
-#endif
- int FD = ::open(Filename, OpenFlags);
- if (FD == -1)
- return error_code(errno, posix_category());
+ int FD;
+ error_code EC = sys::fs::openFileForRead(Filename, FD);
+ if (EC)
+ return EC;
error_code ret = getOpenFile(FD, Filename, result, FileSize, FileSize,
0, RequiresNullTerminator);