[llvm] r294392 - [Orc][RPC] Add a HandlerTratis specialization for free functions.

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 7 16:13:51 PST 2017


Author: lhames
Date: Tue Feb  7 18:13:51 2017
New Revision: 294392

URL: http://llvm.org/viewvc/llvm-project?rev=294392&view=rev
Log:
[Orc][RPC] Add a HandlerTratis specialization for free functions.

Modified:
    llvm/trunk/include/llvm/ExecutionEngine/Orc/RPCUtils.h
    llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp

Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/RPCUtils.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/Orc/RPCUtils.h?rev=294392&r1=294391&r2=294392&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ExecutionEngine/Orc/RPCUtils.h (original)
+++ llvm/trunk/include/llvm/ExecutionEngine/Orc/RPCUtils.h Tue Feb  7 18:13:51 2017
@@ -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...)>

Modified: llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp?rev=294392&r1=294391&r2=294392&view=diff
==============================================================================
--- llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp (original)
+++ llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp Tue Feb  7 18:13:51 2017
@@ -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);




More information about the llvm-commits mailing list