[compiler-rt] [TSan] Destroy ScopedReport on early return in ReportDestroyLocked (PR #228631)

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Sat Oct 3 11:06:12 PDT 2026


https://github.com/vitalybuka updated https://github.com/llvm/llvm-project/pull/228631

>From 8aec77939037caa330c0aecd45eae57fcd8e8d84 Mon Sep 17 00:00:00 2001
From: Vitaly Buka <vitalybuka at google.com>
Date: Fri, 2 Oct 2026 18:38:54 -0700
Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20initia?=
 =?UTF-8?q?l=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Created using spr 1.3.7
---
 compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp b/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
index 30f5e964939d034..7210168af22c3d4 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp
@@ -604,8 +604,10 @@ void ReportDestroyLocked(ThreadState *thr, uptr pc, uptr addr,
     DynamicMutexSet mset;
     uptr tag;
     if (!RestoreStack(EventType::kLock, last_lock.sid(), last_lock.epoch(),
-                      addr, 0, kAccessWrite, &tid, &trace, mset, &tag))
+                      addr, 0, kAccessWrite, &tid, &trace, mset, &tag)) {
+      rep->~ScopedReport();
       return;
+    }
     rep->AddStack(trace, true);
     rep->AddLocation(addr, 1);
 #if SANITIZER_APPLE



More information about the llvm-commits mailing list