aboutsummaryrefslogtreecommitdiffstats
path: root/fnet
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2021-04-30 12:52:16 +0200
committerTor Egge <Tor.Egge@online.no>2021-04-30 12:52:16 +0200
commit3e6a6c2a6be5183c63dc5a03109714a5b8ba2b1f (patch)
tree1f2a31993b683df6ca8b2196ae376ffccaf38ef5 /fnet
parentd639eeb5b983b5493f269190853735a01acd21a2 (diff)
Silence warning when casting to FRT_METOD_PT.
Diffstat (limited to 'fnet')
-rw-r--r--fnet/src/vespa/fnet/frt/invokable.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/fnet/src/vespa/fnet/frt/invokable.h b/fnet/src/vespa/fnet/frt/invokable.h
index 48e6aefe776..df4abd41f90 100644
--- a/fnet/src/vespa/fnet/frt/invokable.h
+++ b/fnet/src/vespa/fnet/frt/invokable.h
@@ -12,5 +12,22 @@ public:
typedef void (FRT_Invokable::*FRT_METHOD_PT)(FRT_RPCRequest *);
-#define FRT_METHOD(pt) ((FRT_METHOD_PT) &pt)
+namespace fnet::internal {
+
+template <class T>
+using frt_method_precast_pt = void (T::*)(FRT_RPCRequest *);
+
+template <class T>
+FRT_METHOD_PT
+frt_method_pt_cast(frt_method_precast_pt<T> pt)
+{
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wshift-negative-value"
+ return (FRT_METHOD_PT) pt;
+#pragma GCC diagnostic pop
+}
+
+}
+
+#define FRT_METHOD(pt) (fnet::internal::frt_method_pt_cast(&pt))