OSDN Git Service

[Orc][RPC] Add a HandlerTratis specialization for free functions.
authorLang Hames <lhames@gmail.com>
Wed, 8 Feb 2017 00:13:51 +0000 (00:13 +0000)
committerLang Hames <lhames@gmail.com>
Wed, 8 Feb 2017 00:13:51 +0000 (00:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@294392 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ExecutionEngine/Orc/RPCUtils.h
unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp

index c0ea948..be620d4 100644 (file)
@@ -417,6 +417,11 @@ private:
   }
 };
 
+// Handler traits for free functions.
+template <typename RetT, typename... ArgTs>
+class HandlerTraits<RetT(*)(ArgTs...)>
+  : public HandlerTraits<RetT(ArgTs...)> {};
+
 // Handler traits for class methods (especially call operators for lambdas).
 template <typename Class, typename RetT, typename... ArgTs>
 class HandlerTraits<RetT (Class::*)(ArgTs...)>
index d21a4ac..71de38d 100644 (file)
@@ -145,6 +145,15 @@ private:
 };
 
 
+void freeVoidBool(bool B) {
+};
+
+TEST(DummyRPC, TestFreeFunctionHandler) {
+  Queue Q1, Q2;
+  DummyRPCEndpoint Server(Q2, Q1);
+  Server.addHandler<DummyRPCAPI::VoidBool>(freeVoidBool);
+};
+
 TEST(DummyRPC, TestAsyncVoidBool) {
   Queue Q1, Q2;
   DummyRPCEndpoint Client(Q1, Q2);