diff options
Diffstat (limited to 'tools/llvm-readobj/MachODumper.cpp')
-rw-r--r-- | tools/llvm-readobj/MachODumper.cpp | 43 |
1 files changed, 17 insertions, 26 deletions
diff --git a/tools/llvm-readobj/MachODumper.cpp b/tools/llvm-readobj/MachODumper.cpp index 35e4cfcb6b10..32a3866eb2f2 100644 --- a/tools/llvm-readobj/MachODumper.cpp +++ b/tools/llvm-readobj/MachODumper.cpp @@ -1,9 +1,8 @@ -//===-- MachODump.cpp - Object file dumping utility for llvm --------------===// +//===- MachODumper.cpp - Object file dumping utility for llvm -------------===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // @@ -34,8 +33,6 @@ public: void printFileHeaders() override; void printSectionHeaders() override; void printRelocations() override; - void printSymbols() override; - void printDynamicSymbols() override; void printUnwindInfo() override; void printStackMap() const override; @@ -53,6 +50,8 @@ private: template<class MachHeader> void printFileHeaders(const MachHeader &Header); + void printSymbols() override; + void printDynamicSymbols() override; void printSymbol(const SymbolRef &Symbol); void printRelocation(const RelocationRef &Reloc); @@ -163,6 +162,7 @@ static const EnumEntry<uint32_t> MachOHeaderCpuSubtypesARM[] = { static const EnumEntry<uint32_t> MachOHeaderCpuSubtypesARM64[] = { LLVM_READOBJ_ENUM_ENT(MachO, CPU_SUBTYPE_ARM64_ALL), + LLVM_READOBJ_ENUM_ENT(MachO, CPU_SUBTYPE_ARM64E), }; static const EnumEntry<uint32_t> MachOHeaderCpuSubtypesSPARC[] = { @@ -483,15 +483,8 @@ void MachODumper::printSectionHeaders(const MachOObjectFile *Obj) { } } - if (opts::SectionData) { - bool IsBSS = Section.isBSS(); - if (!IsBSS) { - StringRef Data; - error(Section.getContents(Data)); - - W.printBinaryBlock("SectionData", Data); - } - } + if (opts::SectionData && !Section.isBSS()) + W.printBinaryBlock("SectionData", unwrapOrError(Section.getContents())); } } @@ -660,18 +653,16 @@ void MachODumper::printStackMap() const { if (StackMapSection == object::SectionRef()) return; - StringRef StackMapContents; - StackMapSection.getContents(StackMapContents); - ArrayRef<uint8_t> StackMapContentsArray( - reinterpret_cast<const uint8_t*>(StackMapContents.data()), - StackMapContents.size()); + StringRef StackMapContents = unwrapOrError(StackMapSection.getContents()); + ArrayRef<uint8_t> StackMapContentsArray = + arrayRefFromStringRef(StackMapContents); if (Obj->isLittleEndian()) prettyPrintStackMap( - W, StackMapV2Parser<support::little>(StackMapContentsArray)); + W, StackMapParser<support::little>(StackMapContentsArray)); else - prettyPrintStackMap(W, - StackMapV2Parser<support::big>(StackMapContentsArray)); + prettyPrintStackMap( + W, StackMapParser<support::big>(StackMapContentsArray)); } void MachODumper::printNeededLibraries() { @@ -695,10 +686,10 @@ void MachODumper::printNeededLibraries() { } } - std::stable_sort(Libs.begin(), Libs.end()); + llvm::stable_sort(Libs); for (const auto &L : Libs) { - outs() << " " << L << "\n"; + W.startLine() << L << "\n"; } } |