summaryrefslogtreecommitdiff
path: root/tools/llvm-nm
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-01-15 19:37:43 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-01-15 19:37:43 +0000
commit1fca78a9b1d78ac2e05174e8b8b0eda5fe4ab8b3 (patch)
tree442cb69d47dec1c6c5ba601e847365ee625328a7 /tools/llvm-nm
parent0893113a05af8b67799965685e96c11a59908a95 (diff)
downloadllvm-1fca78a9b1d78ac2e05174e8b8b0eda5fe4ab8b3.tar.gz
llvm-1fca78a9b1d78ac2e05174e8b8b0eda5fe4ab8b3.tar.bz2
llvm-1fca78a9b1d78ac2e05174e8b8b0eda5fe4ab8b3.tar.xz
Return an ErrorOr<Binary *> from createBinary.
I did write a version returning ErrorOr<OwningPtr<Binary> >, but it is too cumbersome to use without std::move. I will keep the patch locally and submit when we switch to c++11. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199326 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-nm')
-rw-r--r--tools/llvm-nm/llvm-nm.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/tools/llvm-nm/llvm-nm.cpp b/tools/llvm-nm/llvm-nm.cpp
index 6822c9dbd4..b5f6321f8b 100644
--- a/tools/llvm-nm/llvm-nm.cpp
+++ b/tools/llvm-nm/llvm-nm.cpp
@@ -580,9 +580,10 @@ static void DumpSymbolNamesFromFile(std::string &Filename) {
delete Result;
}
} else if (magic == sys::fs::file_magic::archive) {
- OwningPtr<Binary> arch;
- if (error(object::createBinary(Buffer.take(), arch), Filename))
+ ErrorOr<Binary *> BinaryOrErr = object::createBinary(Buffer.take());
+ if (error(BinaryOrErr.getError(), Filename))
return;
+ OwningPtr<Binary> arch(BinaryOrErr.get());
if (object::Archive *a = dyn_cast<object::Archive>(arch.get())) {
if (ArchiveMap) {
@@ -630,9 +631,10 @@ static void DumpSymbolNamesFromFile(std::string &Filename) {
}
}
} else if (magic == sys::fs::file_magic::macho_universal_binary) {
- OwningPtr<Binary> Bin;
- if (error(object::createBinary(Buffer.take(), Bin), Filename))
+ ErrorOr<Binary *> BinaryOrErr = object::createBinary(Buffer.take());
+ if (error(BinaryOrErr.getError(), Filename))
return;
+ OwningPtr<Binary> Bin(BinaryOrErr.get());
object::MachOUniversalBinary *UB =
cast<object::MachOUniversalBinary>(Bin.get());
@@ -647,9 +649,10 @@ static void DumpSymbolNamesFromFile(std::string &Filename) {
}
}
} else if (magic.is_object()) {
- OwningPtr<Binary> obj;
- if (error(object::createBinary(Buffer.take(), obj), Filename))
+ ErrorOr<Binary *> BinaryOrErr = object::createBinary(Buffer.take());
+ if (error(BinaryOrErr.getError(), Filename))
return;
+ OwningPtr<Binary> obj(BinaryOrErr.get());
if (object::ObjectFile *o = dyn_cast<ObjectFile>(obj.get()))
DumpSymbolNamesFromObject(o);
} else {