diff options
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/llvm-readobj.cpp | 53 |
1 files changed, 1 insertions, 52 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp index e1ebbeb..543b0de 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.cpp +++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp @@ -21,7 +21,6 @@ #include "llvm-readobj.h" #include "ObjDumper.h" #include "WindowsResourceDumper.h" -#include "llvm/ADT/Optional.h" #include "llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h" #include "llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h" #include "llvm/MC/TargetRegistry.h" @@ -84,14 +83,6 @@ public: }; enum OutputFormatTy { bsd, sysv, posix, darwin, just_symbols }; - -enum SortSymbolKeyTy { - NAME = 0, - TYPE = 1, - UNKNOWN = 100, - // TODO: add ADDRESS, SIZE as needed. -}; - } // namespace namespace opts { @@ -122,7 +113,6 @@ static bool StringTable; static bool Symbols; static bool UnwindInfo; static cl::boolOrDefault SectionMapping; -static SmallVector<SortSymbolKeyTy> SortKeys; // ELF specific options. static bool DynamicTable; @@ -263,19 +253,6 @@ static void parseOptions(const opt::InputArgList &Args) { opts::ProgramHeaders = Args.hasArg(OPT_program_headers); opts::RawRelr = Args.hasArg(OPT_raw_relr); opts::SectionGroups = Args.hasArg(OPT_section_groups); - if (Arg *A = Args.getLastArg(OPT_sort_symbols_EQ)) { - std::string SortKeysString = A->getValue(); - for (StringRef KeyStr : llvm::split(A->getValue(), ",")) { - SortSymbolKeyTy KeyType = StringSwitch<SortSymbolKeyTy>(KeyStr) - .Case("name", SortSymbolKeyTy::NAME) - .Case("type", SortSymbolKeyTy::TYPE) - .Default(SortSymbolKeyTy::UNKNOWN); - if (KeyType == SortSymbolKeyTy::UNKNOWN) - error("--sort-symbols value should be 'name' or 'type', but was '" + - Twine(KeyStr) + "'"); - opts::SortKeys.push_back(KeyType); - } - } opts::VersionInfo = Args.hasArg(OPT_version_info); // Mach-O specific options. @@ -357,39 +334,11 @@ static void dumpObject(ObjectFile &Obj, ScopedPrinter &Writer, toString(std::move(ContentErr)); ObjDumper *Dumper; - Optional<SymbolComparator> SymComp; Expected<std::unique_ptr<ObjDumper>> DumperOrErr = createDumper(Obj, Writer); if (!DumperOrErr) reportError(DumperOrErr.takeError(), FileStr); Dumper = (*DumperOrErr).get(); - if (!opts::SortKeys.empty()) { - if (Dumper->canCompareSymbols()) { - SymComp = SymbolComparator(); - for (SortSymbolKeyTy Key : opts::SortKeys) { - switch (Key) { - case NAME: - SymComp->addPredicate([Dumper](SymbolRef LHS, SymbolRef RHS) { - return Dumper->compareSymbolsByName(LHS, RHS); - }); - break; - case TYPE: - SymComp->addPredicate([Dumper](SymbolRef LHS, SymbolRef RHS) { - return Dumper->compareSymbolsByType(LHS, RHS); - }); - break; - case UNKNOWN: - llvm_unreachable("Unsupported sort key"); - } - } - - } else { - reportWarning(createStringError( - errc::invalid_argument, - "--sort-symbols is not supported yet for this format"), - FileStr); - } - } Dumper->printFileSummary(FileStr, Obj, opts::InputFilenames, A); if (opts::FileHeaders) @@ -425,7 +374,7 @@ static void dumpObject(ObjectFile &Obj, ScopedPrinter &Writer, if (opts::UnwindInfo) Dumper->printUnwindInfo(); if (opts::Symbols || opts::DynamicSymbols) - Dumper->printSymbols(opts::Symbols, opts::DynamicSymbols, SymComp); + Dumper->printSymbols(opts::Symbols, opts::DynamicSymbols); if (!opts::StringDump.empty()) Dumper->printSectionsAsString(Obj, opts::StringDump); if (!opts::HexDump.empty()) |