mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 15:17:25 +00:00
llvm-readobj: teach it to handle MachO Universal Archive correctly
Patch by Chilledheart (rwindz0@gmail.com). Reviewed By: rafael Differential Revision: http://reviews.llvm.org/D8773 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234758 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -325,13 +325,12 @@ static void dumpArchive(const Archive *Arc) {
|
||||
static void dumpMachOUniversalBinary(const MachOUniversalBinary *UBinary) {
|
||||
for (const MachOUniversalBinary::ObjectForArch &Obj : UBinary->objects()) {
|
||||
ErrorOr<std::unique_ptr<MachOObjectFile>> ObjOrErr = Obj.getAsObjectFile();
|
||||
if (std::error_code EC = ObjOrErr.getError()) {
|
||||
reportError(UBinary->getFileName(), EC.message());
|
||||
continue;
|
||||
}
|
||||
|
||||
if (MachOObjectFile *MachOObj = ObjOrErr.get().get())
|
||||
dumpObject(MachOObj);
|
||||
if (ObjOrErr)
|
||||
dumpObject(&*ObjOrErr.get());
|
||||
else if (ErrorOr<std::unique_ptr<Archive>> AOrErr = Obj.getAsArchive())
|
||||
dumpArchive(&*AOrErr.get());
|
||||
else
|
||||
reportError(UBinary->getFileName(), ObjOrErr.getError().message());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user