[llvm-branch-commits] [NFC][TSan] Check IsFiredSuppression before ScopedReport in ReportErrnoSpoiling (PR #228811)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sat Oct 3 20:15:34 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-compiler-rt-sanitizer
Author: Vitaly Buka (vitalybuka)
<details>
<summary>Changes</summary>
Check IsFiredSuppression(ctx, ReportTypeErrnoInSignal, stack) and return
early before constructing ScopedReport in ReportErrnoSpoiling (matching
SignalUnsafeCall and ReportRace). This avoids acquiring
ScopedErrorReportLock and ThreadRegistryLock for already-suppressed
reports.
Assisted-by: Gemini
---
Full diff: https://github.com/llvm/llvm-project/pull/228811.diff
1 Files Affected:
- (modified) compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp (+4-6)
``````````diff
diff --git a/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp b/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
index 233985c419be1..4c0c39bb6cc82 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
@@ -2176,19 +2176,17 @@ static void ReportErrnoSpoiling(ThreadState *thr, uptr pc, int sig) {
// StackTrace::GetNestInstructionPc(pc) is used because return address is
// expected, OutputReport() will undo this.
ObtainCurrentStack(thr, StackTrace::GetNextInstructionPc(pc), &stack);
+ if (IsFiredSuppression(ctx, ReportTypeErrnoInSignal, stack))
+ return;
ScopedReport rep(ReportTypeErrnoInSignal);
- bool suppressed;
// Release locks before symbolizing and outputting the report to avoid
// deadlocks.
{
ThreadRegistryLock l(&ctx->thread_registry);
rep.SetSigNum(sig);
- suppressed = IsFiredSuppression(ctx, ReportTypeErrnoInSignal, stack);
- if (!suppressed)
- rep.AddStack(stack, true);
+ rep.AddStack(stack, true);
}
- if (!suppressed)
- OutputReport(thr, rep);
+ OutputReport(thr, rep);
}
static void CallUserSignalHandler(ThreadState *thr, bool sync, bool acquire,
``````````
</details>
https://github.com/llvm/llvm-project/pull/228811
More information about the llvm-branch-commits
mailing list