Index: compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp =================================================================== --- compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp +++ compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp @@ -2058,11 +2058,12 @@ ThreadSignalContext *sctx = SigCtx(thr); CHECK_NE(sctx, 0); int prev = sctx->int_signal_send; - if (pid == (int)internal_getpid()) { + bool same_pid = (pid == (int)internal_getpid()); + if (same_pid) { sctx->int_signal_send = sig; } int res = REAL(kill)(pid, sig); - if (pid == (int)internal_getpid()) { + if (same_pid) { CHECK_EQ(sctx->int_signal_send, sig); sctx->int_signal_send = prev; } @@ -2074,11 +2075,12 @@ ThreadSignalContext *sctx = SigCtx(thr); CHECK_NE(sctx, 0); int prev = sctx->int_signal_send; - if (tid == pthread_self()) { + bool same_thread = (tid == pthread_self()); + if (same_thread) { sctx->int_signal_send = sig; } int res = REAL(pthread_kill)(tid, sig); - if (tid == pthread_self()) { + if (same_thread) { CHECK_EQ(sctx->int_signal_send, sig); sctx->int_signal_send = prev; }