summaryrefslogtreecommitdiff
path: root/tools/llvm-readobj/Win64EHDumper.h
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2014-05-25 21:37:59 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2014-05-25 21:37:59 +0000
commitd29bdc72bbefc938a23b51ac4282548d6e36d317 (patch)
tree46e466c7949f7f7a47c276194af1d7bd643d9a32 /tools/llvm-readobj/Win64EHDumper.h
parentb6a667f0335027a8ed673d29af11fc6653781c11 (diff)
downloadllvm-d29bdc72bbefc938a23b51ac4282548d6e36d317.tar.gz
llvm-d29bdc72bbefc938a23b51ac4282548d6e36d317.tar.bz2
llvm-d29bdc72bbefc938a23b51ac4282548d6e36d317.tar.xz
tools: avoid use of std::function
Remove the use of the std::function and replace the capturing lambda with a non-capturing one, opting to pass the user data down to the context. This is needed as std::function is not yet available on all hosted platforms (it requires RTTI, which breaks on Windows). Thanks to Nico Rieck for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209607 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-readobj/Win64EHDumper.h')
-rw-r--r--tools/llvm-readobj/Win64EHDumper.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/tools/llvm-readobj/Win64EHDumper.h b/tools/llvm-readobj/Win64EHDumper.h
index d0c129c68b..2eac81048b 100644
--- a/tools/llvm-readobj/Win64EHDumper.h
+++ b/tools/llvm-readobj/Win64EHDumper.h
@@ -13,8 +13,6 @@
#include "StreamWriter.h"
#include "llvm/Support/Win64EH.h"
-#include <functional>
-
namespace llvm {
namespace object {
class COFFObjectFile;
@@ -28,15 +26,17 @@ class Dumper {
raw_ostream &OS;
public:
- typedef std::function<error_code(const object::coff_section *, uint64_t,
- object::SymbolRef &)> SymbolResolver;
+ typedef 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: