aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Analysis/ThreadSafety.cpp
diff options
context:
space:
mode:
authorAaron Puchert <aaronpuchert@alice-dsl.net>2025-08-03 19:50:17 +0200
committerGitHub <noreply@github.com>2025-08-03 19:50:17 +0200
commita048aeb06e5de571eadd646860c320b9a67d1efc (patch)
tree954d6e6bb271409180d58df2538c09244f94ba65 /clang/lib/Analysis/ThreadSafety.cpp
parent408fe1d369df926eecd6c15ce939d38652b4b58d (diff)
downloadllvm-a048aeb06e5de571eadd646860c320b9a67d1efc.zip
llvm-a048aeb06e5de571eadd646860c320b9a67d1efc.tar.gz
llvm-a048aeb06e5de571eadd646860c320b9a67d1efc.tar.bz2
Thread safety analysis: Don't warn on acquiring reentrant capability (#150857)
The point of reentrant capabilities is that they can be acquired multiple times, so they should probably be excluded from requiring a negative capability on acquisition via -Wthread-safety-negative. However, we still propagate explicit negative requirements.
Diffstat (limited to 'clang/lib/Analysis/ThreadSafety.cpp')
-rw-r--r--clang/lib/Analysis/ThreadSafety.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Analysis/ThreadSafety.cpp b/clang/lib/Analysis/ThreadSafety.cpp
index 80e7c8e..dadb0b7 100644
--- a/clang/lib/Analysis/ThreadSafety.cpp
+++ b/clang/lib/Analysis/ThreadSafety.cpp
@@ -1331,7 +1331,7 @@ void ThreadSafetyAnalyzer::addLock(FactSet &FSet,
FSet.removeLock(FactMan, NegC);
}
else {
- if (inCurrentScope(*Entry) && !Entry->asserted())
+ if (inCurrentScope(*Entry) && !Entry->asserted() && !Entry->reentrant())
Handler.handleNegativeNotHeld(Entry->getKind(), Entry->toString(),
NegC.toString(), Entry->loc());
}