diff --git a/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp b/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp --- a/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp +++ b/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp @@ -152,8 +152,11 @@ const int SIG_SETMASK = 2; #endif -#define COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED \ - (!cur_thread_init()->is_inited) +// All tsan interceptors check for initialization and/or initialize things +// as necessary lazily, so we can pretend everything is initialized in this +// check to avoid double-checking for initialization (this is only necessary for +// sanitizers that don't handle initialization on common grounds). +#define COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED false namespace __tsan { struct SignalDesc {