Don't warn when compiling with --disable-threads

STMT_VOID semantics suggested by nick, thanks!
This commit is contained in:
Sebastian Hahn 2011-11-08 08:09:40 +01:00
parent 8ba1cf3007
commit 0cc7a63fc0
2 changed files with 10 additions and 1 deletions

5
changes/bug4437 Normal file
View File

@ -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.

View File

@ -177,6 +177,10 @@ extern INLINE double U64_TO_DBL(uint64_t x) {
/** Expands to a syntactically valid empty statement. */ /** Expands to a syntactically valid empty statement. */
#define STMT_NIL (void)0 #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__ #ifdef __GNUC__
/** STMT_BEGIN and STMT_END are used to wrap blocks inside macros so that /** 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. */ * the macro can be used as if it were a single C statement. */
@ -610,7 +614,7 @@ void tor_threads_init(void);
#else #else
#define tor_mutex_new() ((tor_mutex_t*)tor_malloc(sizeof(int))) #define tor_mutex_new() ((tor_mutex_t*)tor_malloc(sizeof(int)))
#define tor_mutex_init(m) STMT_NIL #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_release(m) STMT_NIL
#define tor_mutex_free(m) STMT_BEGIN tor_free(m); STMT_END #define tor_mutex_free(m) STMT_BEGIN tor_free(m); STMT_END
#define tor_mutex_uninit(m) STMT_NIL #define tor_mutex_uninit(m) STMT_NIL