]> granicus.if.org Git - llvm/commitdiff
[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 c0ea94897be5609d65e8d34720f86ecab42288ee..be620d4f0d74ddf3ac46c80d6a336c5b65325f0a 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 d21a4acc08dc5289de2a2716b4347352d0933e89..71de38db442f3878d8dcf5b5f1691a672bbf3c71 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);