[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