This is an automated email from the ASF dual-hosted git repository.

jdanek pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git

commit 385e0844587e964c439f256f21a24ae4cabfd86a
Author: Jiri DanÄ›k <[email protected]>
AuthorDate: Sun Dec 26 13:27:44 2021 +0100

    NO-JIRA Add macro to disable thread sanitizer
---
 src/qd_asan_interface.h | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/src/qd_asan_interface.h b/src/qd_asan_interface.h
index 06f57ca..8095e0c 100644
--- a/src/qd_asan_interface.h
+++ b/src/qd_asan_interface.h
@@ -29,10 +29,21 @@
 
 #if defined(__clang__)
 # define QD_HAS_ADDRESS_SANITIZER __has_feature(address_sanitizer)
-#elif defined (__GNUC__) && defined(__SANITIZE_ADDRESS__)
-# define QD_HAS_ADDRESS_SANITIZER __SANITIZE_ADDRESS__
+# define QD_HAS_THREAD_SANITIZER __has_feature(thread_sanitizer)
+#elif defined (__GNUC__)
+# if defined(__SANITIZE_ADDRESS__)
+#  define QD_HAS_ADDRESS_SANITIZER __SANITIZE_ADDRESS__
+# else
+#  define QD_HAS_ADDRESS_SANITIZER 0
+# endif
+# if defined(__SANITIZE_THREAD__)
+#  define QD_HAS_THREAD_SANITIZER __SANITIZE_THREAD__
+# else
+#  define QD_HAS_THREAD_SANITIZER 0
+# endif
 #else
 # define QD_HAS_ADDRESS_SANITIZER 0
+# define QD_HAS_THREAD_SANITIZER 0
 #endif
 
 #if QD_HAS_ADDRESS_SANITIZER
@@ -72,9 +83,15 @@ void __asan_unpoison_memory_region(void const volatile 
*addr, size_t size);
 // 
https://github.com/google/sanitizers/wiki/AddressSanitizer#turning-off-instrumentation
 
 #if QD_HAS_ADDRESS_SANITIZER
-# define ATTRIBUTE_NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address))
+# define ATTRIBUTE_NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address)) 
__attribute__((no_sanitize("address")))
 #else
 # define ATTRIBUTE_NO_SANITIZE_ADDRESS
 #endif  // QD_HAS_ADDRESS_SANITIZER
 
+#if QD_HAS_THREAD_SANITIZER
+# define ATTRIBUTE_NO_SANITIZE_THREAD __attribute__((no_sanitize_thread)) 
__attribute__((no_sanitize("thread")))
+#else
+# define ATTRIBUTE_NO_SANITIZE_THREAD
+#endif  // QD_HAS_THREAD_SANITIZER
+
 #endif  // __qd_asan_interface_h__

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to