From 0cc7a63fc0f8e23e0dc01a36de9a369671bdd4d5 Mon Sep 17 00:00:00 2001
From: Sebastian Hahn <sebastian@torproject.org>
Date: Tue, 8 Nov 2011 08:09:40 +0100
Subject: [PATCH] Don't warn when compiling with --disable-threads

STMT_VOID semantics suggested by nick, thanks!
---
 changes/bug4437     | 5 +++++
 src/common/compat.h | 6 +++++-
 2 files changed, 10 insertions(+), 1 deletion(-)
 create mode 100644 changes/bug4437

diff --git a/changes/bug4437 b/changes/bug4437
new file mode 100644
index 0000000000..985c670b15
--- /dev/null
+++ b/changes/bug4437
@@ -0,0 +1,5 @@
+  o Minor bugfixes:
+    - Don't warn about unused log_mutex in log.c when building with
+      --disable-threads using a recent GCC. Fixes bug 4437; bugfix on
+      0.1.0.6-rc which introduced --disable-threads.
+
diff --git a/src/common/compat.h b/src/common/compat.h
index eb79b04449..7e6058a547 100644
--- a/src/common/compat.h
+++ b/src/common/compat.h
@@ -177,6 +177,10 @@ extern INLINE double U64_TO_DBL(uint64_t x) {
 /** Expands to a syntactically valid empty statement.  */
 #define STMT_NIL (void)0
 
+/** Expands to a syntactically valid empty statement, explicitly (void)ing its
+ * argument. */
+#define STMT_VOID(a) while (0) { (void)(a); }
+
 #ifdef __GNUC__
 /** STMT_BEGIN and STMT_END are used to wrap blocks inside macros so that
  * the macro can be used as if it were a single C statement. */
@@ -610,7 +614,7 @@ void tor_threads_init(void);
 #else
 #define tor_mutex_new() ((tor_mutex_t*)tor_malloc(sizeof(int)))
 #define tor_mutex_init(m) STMT_NIL
-#define tor_mutex_acquire(m) STMT_NIL
+#define tor_mutex_acquire(m) STMT_VOID(m)
 #define tor_mutex_release(m) STMT_NIL
 #define tor_mutex_free(m) STMT_BEGIN tor_free(m); STMT_END
 #define tor_mutex_uninit(m) STMT_NIL
-- 
GitLab