[tor-commits] [tor/master] Try a different approach to making publish function seem used.
asn at torproject.org
asn at torproject.org
Wed Mar 27 12:31:31 UTC 2019
commit beedadbeacc00222e1bdebec638c1e8cd48a8b14
Author: Nick Mathewson <nickm at torproject.org>
Date: Tue Mar 12 19:25:31 2019 -0400
Try a different approach to making publish function seem used.
We want the DISPATCH_ADD_PUB() macro to count as making a
DECLARE_PUBLISH() invocation "used", so let's try a new approach
that preserves that idea. The old one apparently did not work for
some versions of osx clang.
---
src/lib/pubsub/pubsub_macros.h | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/lib/pubsub/pubsub_macros.h b/src/lib/pubsub/pubsub_macros.h
index e4fdd15ae..12cfa7d39 100644
--- a/src/lib/pubsub/pubsub_macros.h
+++ b/src/lib/pubsub/pubsub_macros.h
@@ -268,12 +268,20 @@
} \
EAT_SEMICOLON
+/**
+ * Add a fake use of the publish function for 'messagename', so that
+ * the compiler does not call it unused.
+ */
+#define DISPATCH__FAKE_USE_OF_PUBFN_(messagename) \
+ ( 0 ? (publish_fn__ ##messagename((msg_arg_type__##messagename)0), 1) \
+ : 1)
+
/*
* This macro is for internal use. It backs DISPATCH_ADD_PUB*()
*/
#define DISPATCH_ADD_PUB_(connector, channel, messagename, flags) \
( \
- ((void)publish_fn__ ##messagename), \
+ DISPATCH__FAKE_USE_OF_PUBFN_(messagename), \
pubsub_add_pub_((connector), \
&pub_binding__ ##messagename, \
get_channel_id(# channel), \
More information about the tor-commits
mailing list