From 0cc7a63fc0f8e23e0dc01a36de9a369671bdd4d5 Mon Sep 17 00:00:00 2001 From: Sebastian Hahn 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