liblttng-ctl: use export list to define exported symbols
[lttng-tools.git] / src / common / macros.h
index cce09a6cbb66b0474d25dabcf34a43e3728f71ef..97faf03280925fc3503a9ddb6d348093c07c1501 100644 (file)
@@ -77,7 +77,15 @@ void *zmalloc(size_t len)
 #define LTTNG_PACKED __attribute__((__packed__))
 #endif
 
-#define is_signed(type) (((type) (-1)) < 0)
+#ifndef LTTNG_NO_SANITIZE_ADDRESS
+#if defined(__clang__) || defined (__GNUC__)
+#define LTTNG_NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address))
+#else
+#define LTTNG_NO_SANITIZE_ADDRESS
+#endif
+#endif
+
+#define is_signed(type) (((type) -1) < (type) 1)
 
 /*
  * Align value to the next multiple of align. Returns val if it already is a
@@ -85,20 +93,9 @@ void *zmalloc(size_t len)
  */
 #define ALIGN_TO(value, align) ((value + (align - 1)) & ~(align - 1))
 
-/*
- * LTTNG_HIDDEN: set the hidden attribute for internal functions
- * On Windows, symbols are local unless explicitly exported,
- * see https://gcc.gnu.org/wiki/Visibility
- */
-#if defined(_WIN32) || defined(__CYGWIN__)
-#define LTTNG_HIDDEN
-#else
-#define LTTNG_HIDDEN __attribute__((visibility("hidden")))
-#endif
-
 #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
@@ -125,4 +122,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.024364 seconds and 4 git commands to generate.