From 987b3ebb582e3dc243e48dc2522bce95c7f8b886 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Fri, 9 May 2025 23:19:34 +0000 Subject: [PATCH] [clang][ThreadSafety]: fix descrepency between capability attributes Fix the case where release_generic_capability did not correctly release when used as a reverse capability as enabled by commit 6a68efc959. --- clang/lib/Analysis/ThreadSafety.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/clang/lib/Analysis/ThreadSafety.cpp b/clang/lib/Analysis/ThreadSafety.cpp index 7e86af6b4a317..a963bcda0c2d0 100644 --- a/clang/lib/Analysis/ThreadSafety.cpp +++ b/clang/lib/Analysis/ThreadSafety.cpp @@ -2026,6 +2026,8 @@ void BuildLockset::handleCall(const Expr *Exp, const NamedDecl *D, ScopedEntry->addExclusiveUnlock(M); for (const auto &M : SharedLocksToRemove) ScopedEntry->addSharedUnlock(M); + for (const auto &M : GenericLocksToRemove) + ScopedEntry->addExclusiveUnlock(M); Analyzer->addLock(FSet, std::move(ScopedEntry)); } }