aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/VirtualFileSystem.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2014-05-05 21:57:46 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2014-05-05 21:57:46 +0000
commit26d56393c602df63526e878dbc5cca453601e9c5 (patch)
tree8b0369ca454315749ef93e13048368e10de04a93 /clang/lib/Basic/VirtualFileSystem.cpp
parent20a92ae3d2110ea6acbd9bbb3e9ecd2064bc34b5 (diff)
downloadllvm-26d56393c602df63526e878dbc5cca453601e9c5.zip
llvm-26d56393c602df63526e878dbc5cca453601e9c5.tar.gz
llvm-26d56393c602df63526e878dbc5cca453601e9c5.tar.bz2
[Basic/FileManager] Propagate whether a file 'IsVolatile' to the file opening functions.
Needs llvm r208007. llvm-svn: 208008
Diffstat (limited to 'clang/lib/Basic/VirtualFileSystem.cpp')
-rw-r--r--clang/lib/Basic/VirtualFileSystem.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/clang/lib/Basic/VirtualFileSystem.cpp b/clang/lib/Basic/VirtualFileSystem.cpp
index 9a88cfd..94a6c3d 100644
--- a/clang/lib/Basic/VirtualFileSystem.cpp
+++ b/clang/lib/Basic/VirtualFileSystem.cpp
@@ -67,12 +67,14 @@ FileSystem::~FileSystem() {}
error_code FileSystem::getBufferForFile(const llvm::Twine &Name,
std::unique_ptr<MemoryBuffer> &Result,
int64_t FileSize,
- bool RequiresNullTerminator) {
+ bool RequiresNullTerminator,
+ bool IsVolatile) {
std::unique_ptr<File> F;
if (error_code EC = openFileForRead(Name, F))
return EC;
- error_code EC = F->getBuffer(Name, Result, FileSize, RequiresNullTerminator);
+ error_code EC = F->getBuffer(Name, Result, FileSize, RequiresNullTerminator,
+ IsVolatile);
return EC;
}
@@ -95,7 +97,8 @@ public:
ErrorOr<Status> status() override;
error_code getBuffer(const Twine &Name, std::unique_ptr<MemoryBuffer> &Result,
int64_t FileSize = -1,
- bool RequiresNullTerminator = true) override;
+ bool RequiresNullTerminator = true,
+ bool IsVolatile = false) override;
error_code close() override;
void setName(StringRef Name) override;
};
@@ -117,10 +120,11 @@ ErrorOr<Status> RealFile::status() {
error_code RealFile::getBuffer(const Twine &Name,
std::unique_ptr<MemoryBuffer> &Result,
- int64_t FileSize, bool RequiresNullTerminator) {
+ int64_t FileSize, bool RequiresNullTerminator,
+ bool IsVolatile) {
assert(FD != -1 && "cannot get buffer for closed file");
return MemoryBuffer::getOpenFile(FD, Name.str().c_str(), Result, FileSize,
- RequiresNullTerminator);
+ RequiresNullTerminator, IsVolatile);
}
// FIXME: This is terrible, we need this for ::close.