[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