Orc/LLVMBuild.txt: Prune redundant "Target" in libdeps.
[oota-llvm.git] / tools / llvm-readobj / ObjDumper.h
index 6918e28cb93a7176bfbe789eac707bd0499600f9..27e658fc731a51aeecbbb5318e970308fd2251f6 100644 (file)
@@ -7,20 +7,17 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_READOBJ_OBJDUMPER_H
-#define LLVM_READOBJ_OBJDUMPER_H
+#ifndef LLVM_TOOLS_LLVM_READOBJ_OBJDUMPER_H
+#define LLVM_TOOLS_LLVM_READOBJ_OBJDUMPER_H
 
-namespace llvm {
+#include <memory>
+#include <system_error>
 
+namespace llvm {
 namespace object {
   class ObjectFile;
 }
 
-class error_code;
-
-template<typename T>
-class OwningPtr;
-
 class StreamWriter;
 
 class ObjDumper {
@@ -40,21 +37,33 @@ public:
   virtual void printNeededLibraries() { }
   virtual void printProgramHeaders() { }
 
+  // Only implemented for ARM ELF at this time.
+  virtual void printAttributes() { }
+
+  // Only implemented for MIPS ELF at this time.
+  virtual void printMipsPLTGOT() { }
+
+  // Only implemented for PE/COFF.
+  virtual void printCOFFImports() { }
+  virtual void printCOFFExports() { }
+  virtual void printCOFFDirectives() { }
+  virtual void printCOFFBaseReloc() { }
+
 protected:
   StreamWriter& W;
 };
 
-error_code createCOFFDumper(const object::ObjectFile *Obj,
-                            StreamWriter& Writer,
-                            OwningPtr<ObjDumper> &Result);
+std::error_code createCOFFDumper(const object::ObjectFile *Obj,
+                                 StreamWriter &Writer,
+                                 std::unique_ptr<ObjDumper> &Result);
 
-error_code createELFDumper(const object::ObjectFile *Obj,
-                           StreamWriter& Writer,
-                           OwningPtr<ObjDumper> &Result);
+std::error_code createELFDumper(const object::ObjectFile *Obj,
+                                StreamWriter &Writer,
+                                std::unique_ptr<ObjDumper> &Result);
 
-error_code createMachODumper(const object::ObjectFile *Obj,
-                             StreamWriter& Writer,
-                             OwningPtr<ObjDumper> &Result);
+std::error_code createMachODumper(const object::ObjectFile *Obj,
+                                  StreamWriter &Writer,
+                                  std::unique_ptr<ObjDumper> &Result);
 
 } // namespace llvm