@@ -31,16 +31,18 @@ SOFTWARE.
3131
3232
3333#ifndef DAKING_HAS_TSAN
34- # if defined(__SANITIZE_THREAD__)
35- # include < sanitizer/tsan_interface.h>
36- extern " C" {
37- void AnnotateBenignRaceSized (const char * f, int l, const volatile void * mem, unsigned int size, const char * desc);
38- }
39- # define DAKING_HAS_TSAN 1
40- # define DAKING_NO_TSAN __attribute__ ((no_sanitize(" thread" )))
41- # define DAKING_TSAN_ANNOTATE_IGNORED (mem, size, desc ) AnnotateBenignRaceSized(__FILE__, __LINE__, mem, size, desc)
42- # define DAKING_TSAN_ANNOTATE_ACQUIRE (mem ) __tsan_acquire(mem)
43- # define DAKING_TSAN_ANNOTATE_RELEASE (mem ) __tsan_release(mem)
34+ # if defined(__has_feature)
35+ # if __has_feature(thread_sanitizer)
36+ # include < sanitizer/tsan_interface.h>
37+ extern " C" {
38+ void AnnotateBenignRaceSized (const char * f, int l, const volatile void * mem, unsigned int size, const char * desc);
39+ }
40+ # define DAKING_HAS_TSAN 1
41+ # define DAKING_NO_TSAN __attribute__ ((no_sanitize(" thread" )))
42+ # define DAKING_TSAN_ANNOTATE_IGNORED (mem, size, desc ) AnnotateBenignRaceSized(__FILE__, __LINE__, mem, size, desc)
43+ # define DAKING_TSAN_ANNOTATE_ACQUIRE (mem ) __tsan_acquire(mem)
44+ # define DAKING_TSAN_ANNOTATE_RELEASE (mem ) __tsan_release(mem)
45+ # endif
4446# else
4547# define DAKING_HAS_TSAN 0
4648# define DAKING_NO_TSAN
0 commit comments