Simplify. NFC.
[oota-llvm.git] / tools / llvm-readobj / Win64EHDumper.h
index d0c129c68b80a71d358e0975e4a0bf3dcfcdaae0..a80df9c4f94dde43807429801ad539a22334d415 100644 (file)
@@ -7,14 +7,12 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_TOOLS_READOBJ_WIN64EHPRINTER_H
-#define LLVM_TOOLS_READOBJ_WIN64EHPRINTER_H
+#ifndef LLVM_TOOLS_LLVM_READOBJ_WIN64EHDUMPER_H
+#define LLVM_TOOLS_LLVM_READOBJ_WIN64EHDUMPER_H
 
 #include "StreamWriter.h"
 #include "llvm/Support/Win64EH.h"
 
-#include <functional>
-
 namespace llvm {
 namespace object {
 class COFFObjectFile;
@@ -28,15 +26,18 @@ class Dumper {
   raw_ostream &OS;
 
 public:
-  typedef std::function<error_code(const object::coff_section *, uint64_t,
-                                   object::SymbolRef &)> SymbolResolver;
+  typedef std::error_code (*SymbolResolver)(const object::coff_section *,
+                                            uint64_t, object::SymbolRef &,
+                                            void *);
 
   struct Context {
     const object::COFFObjectFile &COFF;
     SymbolResolver ResolveSymbol;
+    void *UserData;
 
-    Context(const object::COFFObjectFile &COFF, SymbolResolver Resolver)
-      : COFF(COFF), ResolveSymbol(Resolver) {}
+    Context(const object::COFFObjectFile &COFF, SymbolResolver Resolver,
+            void *UserData)
+      : COFF(COFF), ResolveSymbol(Resolver), UserData(UserData) {}
   };
 
 private: