From 0e93fa9d16b44dd93fbb7f40715ad344812185b0 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Fri, 23 May 2014 01:22:46 +0000 Subject: [PATCH] Attempt to placate compilers that warn on casts between pointer-to-object and pointer-to-function types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209490 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/STLExtras.h | 40 ++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/include/llvm/ADT/STLExtras.h b/include/llvm/ADT/STLExtras.h index 5b7b88b9008..1cef3933b5d 100644 --- a/include/llvm/ADT/STLExtras.h +++ b/include/llvm/ADT/STLExtras.h @@ -67,11 +67,11 @@ template class function_ref; template class function_ref { - Ret (*callback)(void *callable, Params ...params); - void *callable; + Ret (*callback)(intptr_t callable, Params ...params); + intptr_t callable; template - static Ret callback_fn(void *callable, Params ...params) { + static Ret callback_fn(intptr_t callable, Params ...params) { return (*reinterpret_cast(callable))( std::forward(params)...); } @@ -80,7 +80,7 @@ public: template function_ref(Callable &&callable) : callback(callback_fn::type>), - callable(reinterpret_cast(&callable)) {} + callable(reinterpret_cast(&callable)) {} Ret operator()(Params ...params) const { return callback(callable, std::forward(params)...); } @@ -90,11 +90,11 @@ public: template class function_ref { - Ret (*callback)(void *callable); - void *callable; + Ret (*callback)(intptr_t callable); + intptr_t callable; template - static Ret callback_fn(void *callable) { + static Ret callback_fn(intptr_t callable) { return (*reinterpret_cast(callable))(); } @@ -102,17 +102,17 @@ public: template function_ref(Callable &&callable) : callback(callback_fn::type>), - callable(reinterpret_cast(&callable)) {} + callable(reinterpret_cast(&callable)) {} Ret operator()() const { return callback(callable); } }; template class function_ref { - Ret (*callback)(void *callable, Param1 param1); - void *callable; + Ret (*callback)(intptr_t callable, Param1 param1); + intptr_t callable; template - static Ret callback_fn(void *callable, Param1 param1) { + static Ret callback_fn(intptr_t callable, Param1 param1) { return (*reinterpret_cast(callable))( std::forward(param1)); } @@ -121,7 +121,7 @@ public: template function_ref(Callable &&callable) : callback(callback_fn::type>), - callable(reinterpret_cast(&callable)) {} + callable(reinterpret_cast(&callable)) {} Ret operator()(Param1 param1) { return callback(callable, std::forward(param1)); } @@ -129,11 +129,11 @@ public: template class function_ref { - Ret (*callback)(void *callable, Param1 param1, Param2 param2); - void *callable; + Ret (*callback)(intptr_t callable, Param1 param1, Param2 param2); + intptr_t callable; template - static Ret callback_fn(void *callable, Param1 param1, Param2 param2) { + static Ret callback_fn(intptr_t callable, Param1 param1, Param2 param2) { return (*reinterpret_cast(callable))( std::forward(param1), std::forward(param2)); @@ -143,7 +143,7 @@ public: template function_ref(Callable &&callable) : callback(callback_fn::type>), - callable(reinterpret_cast(&callable)) {} + callable(reinterpret_cast(&callable)) {} Ret operator()(Param1 param1, Param2 param2) { return callback(callable, std::forward(param1), @@ -153,11 +153,11 @@ public: template class function_ref { - Ret (*callback)(void *callable, Param1 param1, Param2 param2, Param3 param3); - void *callable; + Ret (*callback)(intptr_t callable, Param1 param1, Param2 param2, Param3 param3); + intptr_t callable; template - static Ret callback_fn(void *callable, Param1 param1, Param2 param2, + static Ret callback_fn(intptr_t callable, Param1 param1, Param2 param2, Param3 param3) { return (*reinterpret_cast(callable))( std::forward(param1), @@ -169,7 +169,7 @@ public: template function_ref(Callable &&callable) : callback(callback_fn::type>), - callable(reinterpret_cast(&callable)) {} + callable(reinterpret_cast(&callable)) {} Ret operator()(Param1 param1, Param2 param2, Param3 param3) { return callback(callable, std::forward(param1), -- 2.34.1