diff options
Diffstat (limited to 'llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp')
-rw-r--r-- | llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp b/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp index f621f3aa09cf..380f2e989fe4 100644 --- a/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp +++ b/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp @@ -64,9 +64,11 @@ void MachOLayoutBuilder::updateDySymTab(MachO::macho_load_command &MLC) { assert(std::is_sorted(O.SymTable.Symbols.begin(), O.SymTable.Symbols.end(), [](const std::unique_ptr<SymbolEntry> &A, const std::unique_ptr<SymbolEntry> &B) { - return (A->isLocalSymbol() && !B->isLocalSymbol()) || - (!A->isUndefinedSymbol() && - B->isUndefinedSymbol()); + bool AL = A->isLocalSymbol(), BL = B->isLocalSymbol(); + if (AL != BL) + return AL; + return !AL && !A->isUndefinedSymbol() && + B->isUndefinedSymbol(); }) && "Symbols are not sorted by their types."); @@ -318,6 +320,9 @@ Error MachOLayoutBuilder::layoutTail(uint64_t Offset) { case MachO::LC_SEGMENT: case MachO::LC_SEGMENT_64: case MachO::LC_VERSION_MIN_MACOSX: + case MachO::LC_VERSION_MIN_IPHONEOS: + case MachO::LC_VERSION_MIN_TVOS: + case MachO::LC_VERSION_MIN_WATCHOS: case MachO::LC_BUILD_VERSION: case MachO::LC_ID_DYLIB: case MachO::LC_LOAD_DYLIB: |