Force usage of assert() condition when NDEBUG is defined
[lttng-tools.git] / src / common / macros.h
index 53f5f96c752061448a6f5d1fc629166db2f345a3..2b16e5b68a42fe073b22904f8f645b465efd046a 100644 (file)
@@ -106,7 +106,7 @@ void *zmalloc(size_t len)
 
 #define member_sizeof(type, field)     sizeof(((type *) 0)->field)
 
-#define ASSERT_LOCKED(lock) assert(pthread_mutex_trylock(&lock))
+#define ASSERT_LOCKED(lock) LTTNG_ASSERT(pthread_mutex_trylock(&lock))
 
 /*
  * Get an aligned pointer to a value. This is meant
@@ -133,4 +133,15 @@ int lttng_strncpy(char *dst, const char *src, size_t dst_len)
        return 0;
 }
 
+#ifdef NDEBUG
+/*
+* Force usage of the assertion condition to prevent unused variable warnings
+* when `assert()` are disabled by the `NDEBUG` definition.
+*/
+# define LTTNG_ASSERT(_cond) ((void) sizeof((void) (_cond), 0))
+#else
+# include <assert.h>
+# define LTTNG_ASSERT(_cond) assert(_cond)
+#endif
+
 #endif /* _MACROS_H */
This page took 0.024125 seconds and 4 git commands to generate.