aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLogan Chien <tzuhsiang.chien@gmail.com>2014-07-16 22:01:43 +0800
committerLogan Chien <tzuhsiang.chien@gmail.com>2014-09-16 00:03:44 +0800
commit801224161c992d0f4e18e486834c420475334680 (patch)
tree42fefe774a46f8186706338f51ca242e4ca3a95f
parente12ddddb86edcd220a9656c6f0990c748d81700d (diff)
downloadllvm-801224161c992d0f4e18e486834c420475334680.tar.gz
[ndk][pndk] Update MemoryBuffer API usage.
-rw-r--r--tools/ndk-link/AndroidBitcodeLinker.cpp25
-rw-r--r--tools/ndk-link/Archive.cpp18
-rw-r--r--tools/ndk-link/ArchiveWriter.cpp9
3 files changed, 28 insertions, 24 deletions
diff --git a/tools/ndk-link/AndroidBitcodeLinker.cpp b/tools/ndk-link/AndroidBitcodeLinker.cpp
index dd5c9ae3312..624521d5447 100644
--- a/tools/ndk-link/AndroidBitcodeLinker.cpp
+++ b/tools/ndk-link/AndroidBitcodeLinker.cpp
@@ -89,23 +89,24 @@ std::string* AndroidBitcodeLinker::GenerateBitcode() {
Module *
AndroidBitcodeLinker::LoadAndroidBitcode(AndroidBitcodeItem &Item) {
- std::string ParseErrorMessage;
- const StringRef &FN = Item.getFile();
-
- std::unique_ptr<MemoryBuffer> Buffer;
- if (std::error_code ec = MemoryBuffer::getFileOrSTDIN(FN.data(), Buffer)) {
- Error = "Error reading file '" + FN.str() + "'" + ": " + ec.message();
+ const StringRef &FileName = Item.getFile();
+ ErrorOr<std::unique_ptr<MemoryBuffer>> Buffer =
+ MemoryBuffer::getFileOrSTDIN(FileName);
+ if (!Buffer) {
+ Error = "Error reading file '" + FileName.str() + "'" + ": " +
+ Buffer.getError().message();
return nullptr;
}
- MemoryBuffer *buffer = Buffer.get();
- BitcodeWrapper *wrapper = new BitcodeWrapper(buffer->getBufferStart(), buffer->getBufferSize());
- Item.setWrapper(wrapper);
+ MemoryBuffer *BufferPtr = Buffer.get().get();
+ BitcodeWrapper *Wrapper = new BitcodeWrapper(BufferPtr->getBufferStart(),
+ BufferPtr->getBufferSize());
+ Item.setWrapper(Wrapper);
assert(Item.getWrapper() != 0);
- ErrorOr<Module *> Result = parseBitcodeFile(buffer, Config.getContext());
+ ErrorOr<Module *> Result = parseBitcodeFile(BufferPtr, Config.getContext());
if (!Result) {
- Error = "Bitcode file '" + FN.str() + "' could not be loaded."
- + Result.getError().message();
+ Error = "Bitcode file '" + FileName.str() + "' could not be loaded." +
+ Result.getError().message();
errs() << Error << '\n';
return nullptr;
}
diff --git a/tools/ndk-link/Archive.cpp b/tools/ndk-link/Archive.cpp
index 509ed9cd74c..c57aedc3c60 100644
--- a/tools/ndk-link/Archive.cpp
+++ b/tools/ndk-link/Archive.cpp
@@ -136,13 +136,14 @@ Archive::Archive(StringRef filename, LLVMContext &C)
bool
Archive::mapToMemory(std::string* ErrMsg) {
- std::unique_ptr<MemoryBuffer> File;
- if (std::error_code ec = MemoryBuffer::getFile(archPath.str(), File)) {
+ ErrorOr<std::unique_ptr<MemoryBuffer> > File =
+ MemoryBuffer::getFile(archPath.str());
+ if (!File) {
if (ErrMsg)
- *ErrMsg = ec.message();
+ *ErrMsg = File.getError().message();
return true;
}
- mapfile = File.release();
+ mapfile = File.get().release();
base = mapfile->getBufferStart();
return false;
}
@@ -200,14 +201,15 @@ bool llvm::GetBitcodeSymbols(StringRef fName,
LLVMContext& Context,
std::vector<std::string>& symbols,
std::string* ErrMsg) {
- std::unique_ptr<MemoryBuffer> Buffer;
- if (std::error_code ec = MemoryBuffer::getFileOrSTDIN(fName.str(), Buffer)) {
+ ErrorOr<std::unique_ptr<MemoryBuffer> > Buffer =
+ MemoryBuffer::getFileOrSTDIN(fName.str());
+ if (!Buffer) {
if (ErrMsg) *ErrMsg = "Could not open file '" + fName.str() + "'" + ": "
- + ec.message();
+ + Buffer.getError().message();
return true;
}
- ErrorOr<Module *> Result = parseBitcodeFile(Buffer.get(), Context);
+ ErrorOr<Module *> Result = parseBitcodeFile(Buffer.get().get(), Context);
if (!Result) {
if (ErrMsg) *ErrMsg = Result.getError().message();
return true;
diff --git a/tools/ndk-link/ArchiveWriter.cpp b/tools/ndk-link/ArchiveWriter.cpp
index 9bc7ae9a61d..d9d00dc048c 100644
--- a/tools/ndk-link/ArchiveWriter.cpp
+++ b/tools/ndk-link/ArchiveWriter.cpp
@@ -152,13 +152,14 @@ Archive::writeMember(
const char *data = (const char*)member.getData();
MemoryBuffer *mFile = 0;
if (!data) {
- std::unique_ptr<MemoryBuffer> File;
- if (std::error_code ec = MemoryBuffer::getFile(member.getPath(), File)) {
+ ErrorOr<std::unique_ptr<MemoryBuffer> > File =
+ MemoryBuffer::getFile(member.getPath());
+ if (!File) {
if (ErrMsg)
- *ErrMsg = ec.message();
+ *ErrMsg = File.getError().message();
return true;
}
- mFile = File.release();
+ mFile = File.get().release();
data = mFile->getBufferStart();
fSize = mFile->getBufferSize();
}