mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
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
This commit is contained in:
@@ -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 {
|
||||
|
Reference in New Issue
Block a user