summaryrefslogtreecommitdiff
path: root/tools/llvm-nm
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-01-15 01:08:23 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-01-15 01:08:23 +0000
commit0be7e6ffb1683c700d620376f318382e7a237cb2 (patch)
tree54b5ad17ec4257a3129119fac6f910af5a4acde3 /tools/llvm-nm
parentcd94a7676a7f3a8b1c2ed42809b28d3319c671c1 (diff)
downloadllvm-0be7e6ffb1683c700d620376f318382e7a237cb2.tar.gz
llvm-0be7e6ffb1683c700d620376f318382e7a237cb2.tar.bz2
llvm-0be7e6ffb1683c700d620376f318382e7a237cb2.tar.xz
Make parseBitcodeFile return an ErrorOr<Module *>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199279 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-nm')
-rw-r--r--tools/llvm-nm/llvm-nm.cpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/tools/llvm-nm/llvm-nm.cpp b/tools/llvm-nm/llvm-nm.cpp
index 8449c29351..6822c9dbd4 100644
--- a/tools/llvm-nm/llvm-nm.cpp
+++ b/tools/llvm-nm/llvm-nm.cpp
@@ -570,16 +570,14 @@ static void DumpSymbolNamesFromFile(std::string &Filename) {
sys::fs::file_magic magic = sys::fs::identify_magic(Buffer->getBuffer());
LLVMContext &Context = getGlobalContext();
- std::string ErrorMessage;
if (magic == sys::fs::file_magic::bitcode) {
- Module *Result = 0;
- Result = ParseBitcodeFile(Buffer.get(), Context, &ErrorMessage);
- if (Result) {
+ ErrorOr<Module *> ModuleOrErr = parseBitcodeFile(Buffer.get(), Context);
+ if (error(ModuleOrErr.getError(), Filename)) {
+ return;
+ } else {
+ Module *Result = ModuleOrErr.get();
DumpSymbolNamesFromModule(Result);
delete Result;
- } else {
- error(ErrorMessage, Filename);
- return;
}
} else if (magic == sys::fs::file_magic::archive) {
OwningPtr<Binary> arch;
@@ -616,11 +614,10 @@ static void DumpSymbolNamesFromFile(std::string &Filename) {
OwningPtr<MemoryBuffer> buff;
if (error(i->getMemoryBuffer(buff)))
return;
- Module *Result = 0;
- if (buff)
- Result = ParseBitcodeFile(buff.get(), Context, &ErrorMessage);
- if (Result) {
+ ErrorOr<Module *> ModuleOrErr = parseBitcodeFile(buff.get(), Context);
+ if (ModuleOrErr) {
+ Module *Result = ModuleOrErr.get();
DumpSymbolNamesFromModule(Result);
delete Result;
}