//
//===----------------------------------------------------------------------===//
-#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;
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: