diff options
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.h')
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.h b/llvm/tools/llvm-objdump/llvm-objdump.h index ffc1361..fd75f55 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.h +++ b/llvm/tools/llvm-objdump/llvm-objdump.h @@ -18,6 +18,7 @@ #include "llvm/Support/Compiler.h" #include "llvm/Support/DataTypes.h" #include "llvm/Support/FormattedStream.h" +#include <memory> namespace llvm { class StringRef; @@ -30,6 +31,12 @@ class Arg; namespace object { class RelocationRef; struct VersionEntry; + +class COFFObjectFile; +class ELFObjectFileBase; +class MachOObjectFile; +class WasmObjectFile; +class XCOFFObjectFile; } // namespace object namespace objdump { @@ -71,10 +78,12 @@ class Dumper { public: Dumper(const object::ObjectFile &O) : O(O) {} + virtual ~Dumper() {} void reportUniqueWarning(Error Err); void reportUniqueWarning(const Twine &Msg); + virtual void printPrivateHeaders(bool MachOOnlyFirst); void printSymbolTable(StringRef ArchiveName, StringRef ArchitectureName = StringRef(), bool DumpDynamic = false); @@ -85,6 +94,12 @@ public: void printRelocations(); }; +std::unique_ptr<Dumper> createCOFFDumper(const object::COFFObjectFile &Obj); +std::unique_ptr<Dumper> createELFDumper(const object::ELFObjectFileBase &Obj); +std::unique_ptr<Dumper> createMachODumper(const object::MachOObjectFile &Obj); +std::unique_ptr<Dumper> createWasmDumper(const object::WasmObjectFile &Obj); +std::unique_ptr<Dumper> createXCOFFDumper(const object::XCOFFObjectFile &Obj); + // Various helper functions. /// Creates a SectionFilter with a standard predicate that conditionally skips |